Содержание

Что такое проходной выключатель и где они прменяются

Если по каким-либо причинам есть необходимость включать/выключать освещение из разных мест коридора или комнаты, то оптимальным решением будет выключатель проходной: что это такое, как он устроен, возможные схемы подключения и варианты применения – все это надо понимать, чтобы его использование было максимально эффективным, а подключение наименее затратным.

Что такое проходной выключатель и как он работает

Правильнее всего это устройство будет назвать переключатель – выключатель он для пользователей скорее по привычке, так как используется он для включения-выключения освещения. Если называть его правильно, то намного проще понять, в чем он отличается от стандартных выключателей – это название наиболее полно отражает суть его воздействия на работающую электрическую цепь.

Дополнительные названия – перекидной, дублирующий или перекрестный переключатель.

Как и у стандартного выключателя, у проходного есть только два положения, но принципиальная разница в том, что в обычном устройстве строго определено, к примеру, вверх – это включено, а вниз – выключено, а у проходного эти стороны постоянно меняются.

Понятнее всего принцип работы проходного выключателя становится при сравнении электрических схем – между ним и стандартным устройством, которое показано на рисунке:

Если обычный в разомкнутом состоянии просто разрывает цепь, то в случае с проходным все зависит от положения сразу двух переключателей:

Из схемы понятно, что у каждого из выключателей должно быть три клеммы – одна для фазы, которая идет от источника питания и две на «управляющие» провода. Когда у любого из двух переключателей меняется положение, то цепь либо замыкается, либо размыкается – в зависимости от того, в каком состоянии она находилась до этого.

Дополнительно можно сформулировать еще одно отличие между выключателем и переключателем – последний всегда можно подключить как простой выключатель, а сделать наоборот не получится.

Важно! При ремонте такой цепи надо учитывать, что один из проводов между выключателями всегда находится под напряжением.

Где применяется проходной выключатель

Большинство обывателей не в курсе, что кроме обычного есть еще и выключатель проходной – узнают что это такое они обычно либо заранее от электриков, если грамотный специалист делает проводку, либо когда со временем приходится начать активно интересоваться, как можно одну лампу включать из разных мест.

Необходимость использования проходного выключателя чаще всего возникает в больших помещениях, длинных прямых и изогнутых коридорах, а также на лестничных маршах и коридорах.

Преимуществом их использования является возможность включать и выключать лампы и прочие электроприборы не только из двух, а с неограниченного количества мест – все зависит от количества переключателей. Примером случая, когда надо применять такое решение может быть лестница на второй или третий этаж дома – обычно им требуется дополнительное освещение, особенно при расположении на несущей стене.

Понятно, что когда выключатель здесь один, то включив свет и поднявшись наверх, выключить его уже не получится. Как вариант, можно установить два источника освещения, но придется бегать по лестнице туда-сюда – включить свет внизу, подняться наверх, зажечь верхний, спуститься вниз, выключить нижний и опять подняться наверх.

Выходом из положения также могут стать датчики движения, но их тоже придется ставить на каждом этаже, а стоимость таких устройств выше выключателей. Также надо учитывать, что они не всегда корректно срабатывают – иногда чтобы свет загорелся, придется не просто пройти по лестнице, а еще и шагнуть влево или вправо. Еще такое решение не подойдет тем, кто привык вручную включать и выключать свет, когда это нужно ему, а не датчику.

Кроме коридоров, больших помещений и на улице, проходные выключатели можно установить в спальне, чтобы можно было при свете лечь в кровать и только потом его выключить.

Разновидности проходных переключателей и условные обозначения на схемах

В зависимости от того, как и где планируется использование таких переключателей, применятся их соответствующие разновидности:

Для монтажа в толще стены и на ее поверхности – во втором случае чаще всего такие выключатели используют для открытой проводки в деревянных домах.

Провода к клеммам выключателя могут крепиться болтовым соединением или зажимами на пружинах. Второй вариант считается более предпочтительным, так как при его использовании со временем не ослабляется соединение.

С одного места можно включать несколько ламп – для этого делают двойные, тройные и т.д. модели выключателей.

Если есть необходимость включать освещение из трех и более точек, то к двум проходным надо дополнительно приобретать перекрестные (реверсивные) переключатели – по количеству мест, из которых надо будет включать освещение.

По типу управления не отличаются от обычных – могут быть клавишные, сенсорные или с пультом ДУ.

Все виды проходных выключателей на схемах рисуются одинаковыми схематическое обозначение – по сути, таким же как и для стандартных, но развернутым в обе стороны.

Для того, чтобы сделать окончательный выбор, надо точно представлять себе где и как эти выключатели будут использоваться.

Подключение проходного выключателя

Так как для работы схемы с проходным переключателем используется больше проводов, то подключение в распаечной коробке будет выглядеть сложнее – в ней появятся дополнительные элементы. Изначально в коробку приходят фаза и ноль от источника питания. Нулевой провод через соединение дальше напрямую идет к лампе, а фазный уходит на первый выключатель. Дальше в переключателе он разделяется на две линии и обе они возвращаются в коробку, где через соединение идут ко второму выключателю, после которого опять один провод попадает в распаечную коробку и через последнее соединение уходит на лампу.

Можно было бы и сэкономить на проводе, пустив «управляющие» ветви напрямую от одного выключателя к другому, но грамотный электрик так делать никогда не будет по ряду причин:

Подключение через коробку является наиболее правильным с точки зрения составления электрических цепей.

В случае поломки другой электрик сможет без дополнительных поисков прозвонить, определить неисправность и отремонтировать проводку.

Такая схема упрощает установку третьего, четвертого и т.д. переключателя, в случае такой необходимости.

Как итог – качественно сделанное соединение будет выполнено только через распаечную коробку.

Схема при подключении трех и больше переключателей

Из приведенной выше схемы понятно, что проходные выключатели могут использоваться только в паре – третье аналогичное устройство подключить таким же образом не получится. Решается эта проблема применением так называемого перекрестного или реверсивного переключателя – внешне он выглядит как обычный, но в отличие от него и проходного имеет не две или три, а четыре клеммы.

Его назначение – при переключении менять местами подсоединенные провода. К примеру, если пронумеровать клеммы, то пусть входные будут 1 и 2, а выходные 3 и 4 соответственно. Ток по одному проводу может подаваться на клемму 1 и проходя через переключатель попадать на клемму 3, а по второму заходить на клемму 2 и выводиться через клемму 4. После переключения, ток все так же подается на клемму 1, но выводится уже через клемму 4, а если он будет идти на клемму 2, то выводиться будет через клемму 3. Таких устройств в схеме можно использовать неограниченное количество. Принцип их работы на рисунке:

Для наглядности схема дана во включенном состоянии, но из нее понятно, что если изменить положение любого их проходных или реверсивных выключателей, то цепь разомкнется. Если, к примеру, это будет первый реверсивный, то ток пойдет по цепи следующим образом:

Лампа гореть не будет, так как на втором проходном выключателе цепь окажется разомкнута. Опять же ясно, что теперь снова достаточно изменить положение любого из выключателей, чтобы цепь замкнулась и лампа засветилась.

Общие недостатки, которыми обладает такой способ подключения: большой расход проводов и сложность монтажа. Особенно легко неопытному мастеру запутаться в подключениях проводов в распаечной коробке, ведь их количество которых растет пропорционально числу используемых переключателей.

Каждый следующий выключатель добавляет в коробку четыре провода и две скрутки между ними.

На самом деле не все так страшно – даже три или четыре переключателя применяются достаточно редко, не говоря уже о большем количестве.

Наглядно работа проходного и реверсивного переключателей на видео:

Заключение

Из приведенных схем понятно как работает проходной выключатель и какие есть варианты его подключения – при наличии минимальных навыков работы с электрооборудованием справиться с его установкой сможет и домашний мастер. Если опыта работ с проводкой нет, то подключать такие выключатели лучше доверить профессионалам – все же это не самая простая схема, даже несмотря на ее кажущуюся простоту.

Проходной выключатель – что это такое и как работает?

Проходными выключателями называют устройства, предназначенные для обеспечения управления одним источником света из двух или более различных мест. Схемы с их использованием несколько сложнее, чем традиционные, поскольку подразумевают установку нескольких коммутационных аппаратов.

Освещение с использованием проходных выключателей обычно обустраивают в длинных коридорах, на лестницах, садовых дорожках, в спальнях. Такая схема позволяет, включив свет в одном конце помещения, выключить его в другом, не возвращаясь к первому выключателю.

Виды проходных выключателей

Проходные выключатели классифицируются так же, как и обычные.

По количеству клавиш:

  • одноклавишные;
  • двухклавишные;
  • трёхклавишные
  • одно- или двухклавишные перекрёстные (используются в тех случаях, когда управление освещением должно осуществляться из трёх или более мест).


По типу управления:

  • клавишные;
  • сенсорные;
  • с ПДУ и т.д.
Основным критерием при выборе проходного выключателя является количество клавиш: оно должно соответствовать числу групп одновременно включаемых элементов освещения.
Тип устройства (клавиши, сенсор или что-то другое) имеет второстепенное значение и целиком зависит от личных предпочтений и бюджета.

Принцип действия — особенности переключения электрической цепи

Исходя из принципа работы, проходные выключатели света правильнее было бы называть переключателями. Внешне они выглядят практически так же, как обычные выключатели. Основные различия между ними заключаются в их системе контактов.

Предназначение традиционных выключателей заключаются в замыкании и размыкании электрической цепи. Сходные функции выполняют и переключатели, однако их специфика определяет некоторые конструктивные особенности.

Многие домашние мастеры, планирующие задействование новую систему управления освещением «Умный дом», задаются вопросом: диммер — что это такое и как его использовать? Данное устройство используется для настройки яркости осветительных приборов.

Какую схему установки диммера выбрать для конкретной системы освещения, можно узнать тут.

Подобно двухклавишным выключателям, схема проходного переключателя оснащена тремя контактами. Однако этот дополнительный контакт имеет совершенно иную функцию. При срабатывании обычного выключателя происходит простой разрыв цепи. Проходной двухклавишный переключатель, размыкая одну цепь, одновременно замыкает другую, которая, в свою очередь, является контактами парного переключателя (поодиночке данные устройства не используются).

Подключение проходных переключателей основано на перекидных контактах, действующих по принципу коромысла. Некоторые из таких устройств имеют нулевое положение, при включении которого обе цепи оказываются разомкнутыми, однако на практике такие устройства используются крайне редко.

При смене положений переключателя ток перенаправляется на соответствующую клемму. В результате замкнутой остаётся одна из возможных цепей питания источника света. Осветительный прибор включается, когда оба переключателя находятся в одинаковых положениях.

Если при подключении обычных выключателей задействуется два провода (разрываемая фаза), то к проходным подходит три, из которых два являются перемычками между маршевыми переключателями, а через третий на один переключатель подаётся фаза, которая со второго устройства выходит на источник света.

Перед инсталляцией современных вариантов домашнего освещения желательно убедиться в исправности источников света. Для этого необходимо знать, как проверить светодиоды мультиметром и осуществить их точное тестирование.

Чтобы правильно выбрать LED лампы для дома, достаточно внимательно ознакомиться с этой статьей. Оптимальный вид светорегуляторов для таких ламп поможет подобрать простая инструкция.

Особенностью схемы освещения с использованием проходных выключателей является обязательное наличие в ней коммутационной коробки.

Перекрёстные выключатели: схема управления освещением из трех и более мест

Проходные перекрёстные выключатели применяются в тех случаях, когда необходимо организовать управление освещением из трёх или более мест. Эти устройства могут выполнять транзитные функции, не оказывая влияния на работу проходных переключателей, и одновременно сами являются выключателем.

Их конструктивная особенность заключается в наличии пяти клемм подключения, из которых две соединяются с первым переключателем, две – со вторым, а пятая, обеспечивающая управление из трёх мест, является транзитной. Для управления освещением из четырёх мест потребуется установка двух перекрёстных выключателей.

При наличии в помещении нескольких групп освещения используются двухклавишные перекрёстные выключатели.

Проходные выключатели существенно упрощают управление освещением и делают его более удобным. Если ранее использование подобных схем было обусловлено, в основном, особенностями планировки помещения, то в настоящее время их можно встретить практически повсеместно.

Видео инструкция, демонстрирующая принцип работы проходного выключателя

Чем отличаются выключатели проходной, обычный и перекрестный

   Помнится, еще за времена Союза выбора выключателей практически не было. Хотя, конечно, к их качеству никаких претензий нельзя выдвинуть. На сегодняшний день дело состоит совершенно по-другому ассортимент просто колоссальный. При этом, как по дизайну, по фирмам-производителям, так и по функциональности. Именно о функциональности пойдет речь в данной статье. В общем, в случаи, если Вам необходимо купить выключатели для квартиры, дома или же офиса, для правильного выбора необходимо немного разобраться с их возможностями. Говоря глобально, все выключатели можно поделить на три вида, а именно:

  • обычные,
  • проходные,
  • перекрестные или же по-другому сказано промежуточные.

На первый взгляд отличить их просто невозможно, однако функциональность данных выключателей сильно разнится.

Обычные выключатели

   С обычными выключателями знаком каждый из нас. И ни для кого не является секретом, что они бывают, как одно- и двух-, так и трехклавишные. Конечно, встречаются и обычные выключатели, у которых количество клавиш больше, но это, как исключение, чем правило. Что же прячется за количеством клавиш? А дело все в том, что каждая отдельная клавиша служит выключателем для одной электрической точки. К примеру, у Вас в квартире висит одна люстра с тремя и больше лампочками, и Вы желаете, что бы была возможность их включать посекционно. Именно в таком случаи необходимо купить обычный выключатель с таким количеством клавиш, на сколько Вы желаете разбить секций освещения. Так же можно предложить такой пример: освещение в частном доме, когданеобходимо сделать с одной точки возможность включать свет в коридоре, на улице, и в гараже. В таком случаи также подойдет обычный треклавишный выключатель. В принципе, на сегодняшний день, в продаже есть специальный рамки, благодаря котором Вы без труда сможете объединить практически любой количество одноклавишных выключателе. Но в таком случаи для каждого выключателя необходимо монтировать электрическую коробку. А это, согласитесь, совсем не удобно.

   Что касается управления обычными выключателями, так оно совершается от одной точки включения или выключения источника света. Как видно на схеме, то обычный выключатель служит простым замыкаемым фазы или наоборот просто разрывает ее. Данный вариант самый простой и распространенный.

Проходные переключатели

   Следующим тип по функциональности идет проходной выключатель. По сути, если правильно его называть так он не выключатель, а скорее всего переключатель. Так, как он не только служит как выключатель света, но и еще можете переключать его. Купить проходной выключатель необходимо в том случаи, если Вам необходимо иметь управление над двумя точками. Например, у Вас в помещении длиный коридор, и в двух его концах Вы желаете управлять светом одной люстры. Также, проходной выключатель, на сегодняшний день, стали ставить в спальнях при входе и возле кровати. Это делают для комфорта, что бы была возможность при входе, например, включать свет в спальне, а уже лежа на кровати его выключать. Согласитесь довольно удобно. Что касается классификации, то проходные выключатели имеют такую же как и у обычных одно-, двух-, треклавишные. Внизу Вы можете ознакомиться со схемой подключения проходных выключателей.

Перекрестные переключатели

   Последним видом переключателя является перекрестный или как его еще называют промежуточный. Данные выключатели смогут дать возможность управлять светом из трех и больше точек. К примеру, возьмем ту же спальню, но возле кровати сделаем ни один выключатель, а два по обеим сторонам. Таким образом, мы делаем управление одной точкой света тремя выключателями.

Данная возможность осуществляется благодаря конструктивной особенности перекрестных выключателей, а именно наличие 5 клемм подключений, из которых:

  • 2 связываются с первым переключателем,
  • 2 связываются со вторым,
  • а 5-ая дает возможность управлять из трёх мест, так сказать, она является транзитом.

В случаи если необходимо в квартире организовать управление точкой света из четырех мест, тогда в таком случаи необходимо устанавливать два перекрестных выключателя. В низу на схеме Вы можете ознакомиться с работой перекрестного выключателя.

Проходные выключатели – что это такое и схема их подключения

Содержание:

Иногда возникает необходимость включения и отключения освещения из разных мест. Например, часто необходимо, чтобы была возможность включения и отключения освещения в начале и в конце длинного коридора, разных местах проходной комнаты, у дверей большого помещения с несколькими входами и выходами. Один из подобных примеров изображен на рисунке.


До недавнего времени, решить такую задачу с помощью клавишных выключателей было невозможно. Приходилось применять пакетные выключатели, использовать другие ухищрения. Теперь в продаже широко представлены проходные и перекрестные выключатели, с помощью которых перечисленные проблемы решаются совсем просто. Уже не редкость, когда жильцы, производя ремонт квартиры, просят мастеров установить выключатель у входа в спальню и рядом с предполагаемым местом размещения кровати.

Применение проходных выключателей

В принципе, в проходном выключателе нет ничего необычного. Проходной выключатель представляет собой простой однополюсный переключатель на два направления. Такую функцию выполняет, например, обычный тумблер. Схема проходного выключателя выглядит так.


С помощью двух таких переключателей несложно организовать управление освещением из двух разных мест. Просмотрев на следующий рисунок, легко понять, как это работает.


Из рисунка понятно, что лампа загорится в том случае, если оба проходных выключателя буду включены одновременно на один и тот же провод, верхний или нижний. Так же легко понять, что выключатели взаимозависимы. То есть от положения первого выключателя зависит, включится или нет освещение, если нажать клавишу второго выключателя. Эта небольшая особенность применения проходных выключателей с лихвой окупается удобством их применения.

Один из способов выполнения монтажа с применением двух проходных выключателей показан на следующей монтажной схеме.


Как видно из схемы, проходными выключателями коммутируется «фаза». К каждому выключателю подходит три провода. Все основные соединения выполняются в монтажной коробке. Кстати, без монтажной коробки можно вполне обойтись, выполнив все соединения внутри коробки одного из выключателей. Возможно, для этого понадобиться коробка с большей глубиной.

Если нужно одновременно включать не одну, а несколько лампочек или светильников, то их необходимо соединить между собой параллельно. В случае если требуется управлять двумя нагрузками, то можно применить сдвоенные (двухклавишные) проходные выключатели. Такие выключатели тоже имеются в продаже.

К сожалению, с помощью проходных выключателей можно организовать управление освещением только из двух мест. Если нужно установить выключатели в трех и более местах применяют комбинации из проходных и перекрестных выключателей.

Управление освещением из нескольких мест с помощью проходных и перекрестных выключателей

Схема перекрестного выключателя выглядит следующим образом.


Если внимательно посмотреть на рисунок, то можно заметить, что перекрестный выключатель представляет собой не что иное, как сдвоенный проходной выключатель, у которого выходные клеммы соединены попарно. Из схемы так же видно, что при изменении положения выключателя произойдет переключение контактов с одного провода на другой. Как бы произойдет «перекрещивание».

На следующей схеме показано, как можно управлять освещением из трех разных мест.


Как видно из рисунка, управление освещением осуществляется двумя проходными и одним перекрестным выключателем. При этом для соединения между проходным и перекрестным выключателем, нужно всего два провода. В тех положениях выключателей, которые изображены на схеме, цепь разомкнута, и лампа гореть не будет. Однако, стоит изменить положение любого из выключателей и цепь замкнется. Для разрыва цепи достаточно опять изменить положение любого из выключателей.

Когда требуется нарастить количество выключателей, просто добавляют еще один перекрестный выключатель. Его включают в разрыв цепи между проходным и перекрестным выключателем или двумя перекрестными выключателями. Таким образом, цепочка из выключателей должна начинаться и заканчиваться проходными выключателями. Ниже приведен пример управления освещения из пяти разных мест.


Мы рассмотрели способы управления освещением из двух, трех и пяти разных мест. Думаем, что читатель, прочтя данный материал, без труда сможет изменить количество выключателей в своих схемах.

В заключение нужно напомнить, что к светильникам кроме нулевого и фазного провода нужно подводить еще защитный проводник, который на рисунках не показан. Заземление светильников следует выполнять в соответствии с указаниями производителей.

Выключатели: проходной, перекрестный, жалюзийный | Статьи 220RU

Электрик сказал купить выключатели: “обычные” и “проходные“. А продавец говорит: в этой серии есть только “переключатели“. Что делать? Брать! Потому что переключатель – он и как “проходной” используется, и как “обычный выключатель” сгодится.

Все дело в путанице терминологии. Ниже представлен краткий “словарь синонимов” для домашней электрики. Первой строкой идет распространенное “бытовое название”, вторая строка – правильное наименование и описание, далее – варианты названий. Иногда разные изделия называют одним и тем же термином, что и порождает путаницу. Если есть сомнения, всегда лучше уточнить – что именно имеется в виду под, например, “проходным выключателем”: это может быть и переключатель, и сдвоенный переключатель и даже импульсное реле с кнопкой.

Обычный выключатель (бытовой)

Двухпозиционный ключ (техн.) – предназначен для замыкания-размыкания цепи, включается “в разрыв” единственного проводника. Когда говорят “электрические выключатели”, чаще всего имеют в виду именно этот функционал.

Варианты: включатель, ключ, выключатель света, “Схема 1”.

Двухполюсный выключатель (бытовой)

Сдвоенный двухпозиционный ключ (техн.) – предназначен для замыкания-размыкания 2-х цепей (это может быть “фаза” и “ноль“, две “фазы” или две независимые нагрузки), включается “в разрывы” двух проводников. Может использоваться, как обычный выключатель.

Варианты: двойной выключатель, “Схема 2”.

Проходной выключатель (бытовой)

Двухпозиционный переключатель (техн.) – коммутирует один контакт со вторым или третьим. Может использоваться, как обычный выключатель (у некоторых производителей выключатели вообще отсутствуют в серии – вместо них предлагается использовать переключатели, оставив один контакт незадействованным). Чаще всего используется для организации управления одной нагрузкой из двух мест, например, в коридорах – отсюда и название “проходной“.

Варианты: перекидной, “Схема 6”.

Перекрестный выключатель (бытовой)

Сдвоенный двухпозиционный переключатель (тех.) – прибор представляет собой два переключателя под одной клавишей, часто уже перекрестно-скоммутированные. Основное назначение – организация управления одной нагрузкой из трех и более мест. При этом используются два проходных выключателя (на концах схемы) и один и более перекрестных (по схеме – в промежутке между проходными, отсюда вариант названия “промежуточный“). Также может использоваться и как обычный выключатель, и как проходной.

Варианты: промежуточный, проходной (вот она, путаница!), “Схема 7”.

Кнопка (бытовая)

Нормально-разомкнутый ключ (тех.) – то же, что и выключатель, но контакт подпружинен и цепь размыкается после отпускания клавиши. Основное назначение: кнопка дверного звонка и организация управления нагрузкой из многих мест с использованием импульсных реле.

Варианты: звонковый выключатель, подпружиненный контакт, “Схема 1Т”.

Многоклавишные устройства

Некоторые из вышеперечисленных приборов производятся в двух- и трех-клавишном исполнении: механизмы объединяются в одном устройстве (или на одном суппорте – для модульных серий). Но если одноклавишный выключатель и двухклавишные переключатели (2 х клавишные проходные, “Схема 6 + 6”) встречаются часто, то серий, где есть трехклавишный переключатель или двухклавишный перекрестный – единицы. Что касается кнопок, то широко распространены т.н. “жалюзийные” кнопки: приборы, с двух- и трех-позиционными ключами, в одно и двух-клавишном исполнении, снабженные механизмом исключения одновременного включения двух цепей. Нестандартное использование жалюзийных кнопок – организация управления нагрузкой с использованием импульсных реле со входами установки.

Кстати, в ряде случаев, возможно изменить функционал прибора, поменяв клавишу (клавиши). Речь идет, конечно, не о другом цвете клавиши выключателя, а о конфигурации. Например, если снять клавиши с 2-хклавишного переключателя LK60 и надеть одну общую, то получится прибор, который можно использовать и как перекрестный выключатель (после коммутации контактов), и как полноценный сдвоенный переключатель (такого устройства в серии вообще не предусмотрено).

Подсветка и индикация

Клавиши устройств могут быть снабжены “окошечками“, за которыми располагается светодиод или неоновая лампа. Выключатели легранд, вернее их описание в каталогах компании, диктуют такое деление на “индикацию” и “подсветку“: огонек подсветки горит при выключенной нагрузке (чтобы легче искать выключатель в темноте), а индикация показывает, что нагрузка включена (например, выключатель в доме, а управляет он освещением на улице). У других производителей могут встречаться серии с другим подходам к индикации и подсветке, так что лучше уточнять в описании прибора. Использование светодиодов и ламп для подсветки и индикации приводит к ряду ограничений при использовании энергосберегающих ламп, устройств плавного зажигания и прочей электроники, включаемой за такими приборами, поэтому для их использования требуется уточнить характеристики нагрузки и рассмотреть варианты включения – иногда достаточно правильно подключить фазу или использовать двухполюсный выключатель вместо обычного.

Здесь рассмотрены только классические приборы – механические, встречающиеся в подавляющем большинстве серий электроустановочных изделий. Особенности их включения, всякие хитрости, а так же другие распространенные приборы для управления освещением – импульсные реле, диммеры, датчики движения и т.д. – тема отдельных статей.

Авторский материал. Копирование полностью или частично разрешено только при наличии активной (кликабельной) ссылки на эту страницу и указании источника: “сайт 220.ru”.

Выключатель проходной, все модели, цены, наличие, доставка по РФ

Всем, кто сталкивается с электромонтажом, приходилось слышать такой термин, как проходной выключатель. Это приспособление может использоваться для управления системой освещения или определёнными приборами из нескольких мест одновременно. Далее мы рассмотрим, как устроены проходные выключатели, какими они бывают и где чаще всего применяются.

Особенности конструкции

Такой механизм правильнее всего называть переключателем (проходным если речь идёт об управлении с двух мест). В отличие от обычного ключа, который подключается к одной электрической линии, это устройство оснащено сразу двумя “выходными” контактами. При этом такие “выходы” подключаются не к прибору, а к аналогичному переключателю (ещё одно “народное” название – проходящий выключатель).

Конечно, такая конструкция намного сложнее, чем у классического ключа. Однако она имеет очень серьёзное преимущество – проходной выключатель света позволяет управлять подключёнными к нему приборами сразу из двух мест. Для того, чтобы система освещения получала необходимое электропитание, необходимо, чтобы функциональные элементы на обоих устройствах находились в одинаковом положении. Такая схема подключения ламп нашла применение во многих местах – об этом стоит сказать подробнее.

Где применяются проходные выключатели?

Такое электромонтажное изделие нередко называют лестничным выключателем. Действительно, он обеспечивает удобство управления системой освещения сразу из двух мест, представленных основанием лестницы и её верхней точкой. Благодаря этому пользователю не придётся спускаться или подниматься, затрачивая много усилий, чтобы включить свет.

Также широко распространено название «переходный выключатель». Это приспособление может устанавливаться в длинных коридорах (переходах). За счёт этого человеку не приходится преодолевать большие расстояния для включения или отключения света. Аналогичным образом проходные выключатели устанавливаются и в больших помещениях, имеющих не менее двух выходов.

Проводной выключатель такой конструкции будет очень удобен в спальне или в гостиной. С его помощью пользователь сможет включать и отключать освещение, не вставая с кровати или дивана. Также его устанавливают в прихожих – для того, чтобы включить свет, не обязательно заходить в обуви внутрь, и не обязательно подходить вплотную к двери.

Основные разновидности

При покупке такого выключателя стоит обратить внимание на его технические характеристики, представленные напряжением и предельно допустимой силой тока. Существенное отклонение реальных показателей от разрешённых производителем может стать причиной повреждения самого электроустановочного изделия, а также подключённого к нему дорогостоящего оборудования. Стоит учитывать, что в электросети могут происходить всплески напряжения и перегрузки, поэтому лучше выбирать устройства с запасом по силе тока.

Как и обычный выключатель, такое приспособление может иметь двухполюсную конструкцию. В таком случае количество подключённых к нему проводов удваивается, поскольку оно производит расцепление фазной и нулевой линии одновременно. Подобные устройства необходимы для установки в помещениях с повышенной опасностью распространения пожара – например, с деревянной отделкой.

По типу управляющего механизма переключатели подразделяются на поворотные (роторные), клавишные и тумблерные. Наиболее распространёнными являются изделия, оснащённые клавишами – они удобны в использовании, поскольку позволяют производить отключение и выключение линии, не прикладывая к этому никаких усилий. Выключатели с двух мест, имеющие роторные и тумблерные механизмы, часто применяются в системах ретро-электрики. Кроме того, их используют в промышленных и служебных помещениях.

Электроустановочные изделия такого типа различаются и по дизайну. Они могут иметь различные цветовые решения – в том числе и имитирующие текстуру специфических материалов. Кроме того, стоит обращать внимание и на то, насколько форма и стиль устройства сочетаются с дизайном интерьера в помещении. Наконец, проходные выключатели могут иметь декоративные элементы, изготовленные из различных материалов. Несмотря на то, что пластик по-прежнему сохраняет лидирующие позиции, рамки для выключателей могут изготавливаться из ценных пород древесины, стекла, натурального и искусственного камня, а также из нержавеющей стали или цветных металлов.

Особая конструкция

В некоторых случаях функциональности описанного выше электроустановочного изделия оказывается мало. При этом установить три проходных выключателя не получится по понятной причине – такая схема будет попросту неработоспособной. Чтобы получить возможность управлять системой освещения из трёх мест одновременно, стоит использовать специальные перекрёстные выключатели – в качестве него может выступать упомянутый выше двуполюсный переключатель со специальными перемычками (как говорят, “скоммутированный по перекрёстной схеме”). Работает такой выключатель с трёх мест при условии присоединения к нему двух устройств проходного типа. Кроме того, с его помощью можно создать и систему, позволяющую включать и выключать свет одновременно из четырёх, пяти и более точек. Для этого потребуется использовать два проходных (по “краям” схемы) и ещё сколько нужно – перекрёстных.

принцип и схема работы, разновидности

На чтение 5 мин Просмотров 690 Опубликовано Обновлено

Выключатель проходной одноклавишный представляет собой особую разновидность бытовых коммутирующих приборов, потребность в которых возникает в особых случаях. Их установка целесообразна в проходных помещениях, в которых включать освещение необходимо со стороны входа, а выключать – при выходе. Для этого в комплект выключателя входят два электрически связанных между собой прибора, устанавливаемых в соответствующих местах.

Примеры применения

Проходной одноклавишный выключатель предназначен для управления освещением из двух-трех мест

Возможности таких переключателей позволяют избежать многих неудобств, с которыми приходится сталкиваться в повседневной жизни. Пример применения – случай, когда пользователю требуется пересечь длинный коридор, и сделать это желательно не в темноте, а при полном освещении. При выходе применяется второй клавишный прибор, посредством которого свет можно погасить. Причем направление перемещения по такому объекту значения не имеет.

Система построена так, что после прохождения коридора выключатель готов к новому срабатыванию, но уже при входе с другой стороны.

Другие места, где часто устанавливается спаренный переключающий прибор – вход в спальню и зона в районе расположения кровати. В данной ситуации можно будет войти в освещенную комнату, а затем выключать свет, приготовившись ко сну.

Особенности и принцип действия

Чтобы понять отличие типового проходного выключателя от обычного коммутационного прибора, потребуется разобраться со способами их подключения. Простое изделие включается в разрыв фазного провода, проложенного к люстре, и имеет всего два контакта. Переключатель одноклавишный проходной располагает тремя рабочими клеммами, позволяющими коммутировать две параллельно проложенных линии. Посредством третьего, дополнительного контакта осуществляется размыкание одной цепи и замыкание другой.

Такие выключатели должны устанавливаться только попарно, что обеспечивает очередность коммутации осветительной линии с двух удаленных на значительные расстояния точек.

Сходство с обычными приборами ограничено тем, что они также включаются в разрыв фазного провода.

Принцип работы проходного выключателя основан на коммутации одной и той же линии за счет поочередной подачи напряжения на лампочку сразу с двух сторон. Такая возможность реализуется за счет особой схемы включения, согласно которой к осветительному прибору подводится два провода (на каждый из них поочередно подается напряжение 220 Вольт).

При разводке таких цепей жилы различают по маркировке изоляции, одна их которых имеет серый, а вторая – белый цвет.

Чтобы один их двух проходных одноклавишных переключателей сработал, клавиша второго должна находиться во включенном (верхнем) положении. Только в этом случае цепь подачи фазного напряжения со стороны второго прибора окажется замкнутой, и принцип работы выключателей света будет выполняться.

Типы проходных выключателей

Виды проходных выключателей

По количеству переключающих контактов различают следующие виды проходных выключателей:

  • одноклавишные;
  • двухклавишные;
  • трехклавишные.

Количество клавиш может много значить для функциональности каждого из перечисленных приборов, поскольку они позволяют коммутировать осветители из трех точек помещения и более.

При необходимости управления из 3-х и более мест самый оптимальный вариант – двухклавишный прибор с перекрестным управлением.

При сравнении многоклавишных выключателей с их одноклавишными аналогами важно понимать, чем одно из них может отличаться от другого. В основном отличие касается функциональности устанавливаемых в помещении устройств. Если во втором случае коммутируется только одна группа (осветитель включается и выключается), то в цепи с двухклавишным переключателем таких групп будет две. В соответствие со схемой их подсоединения можно включать первый из двух осветителей, одновременно выключая второй или наоборот.

По своей конструкции такие коммутаторы могут иметь открытое (наружное) исполнение или устанавливаться в заранее подготовленные в стене ниши. По способу управления переключатель может быть сенсорным или с ПДУ, то есть срабатывать от прикосновения или на удалении (дистанционно). Выбор конкретного типа прибора определяется предпочтениями пользователя, а также его финансовыми возможностями.

Коммутация из трех точек

Чтобы иметь возможность включать свет из 3-х точек, необходимо описанную ранее схему для спаренного одноклавишного прибора дополнить еще одним – перекрестным двухклавишным элементом. Этот переключатель может располагаться в произвольной точке комнаты, устроенной между двумя уже смонтированными изделиями.

Он состоит из двух уже рассмотренных ранее выключателей, размещенных в одном цельном корпусе. В нем на обычный перекидной механизм, состоящий из двух частей, установлена общая клавиша, что позволяет коммутировать отходящие от него линии синхронно. Чтобы получить тройной двухклавишный выключатель, потребуется доработать обычный перекрестный прибор, установив на него перемычки.

Многоточечная схема подключения организуется таким образом, чтобы «земляной» провод заводился параллельно на две осветительные группы, а фазовый (в красной изоляции) поступал на каждую из входных клемм первого переключателя. Независимо от положения клавиш напряжение будет поступать только по четные входные клеммы (по белому и серому проводам), и только после этого через установленную ранее перемычку оно попадает на вход второго проходного выключателя.

От положения клавиш зависит направление подачи фазного потенциала на осветительные приборы. Если одна из групп осветителей включена, достаточно отключить любой из приборов, чтобы обесточить ее. Тот же процесс происходит и при включении, только в этом случае изменение положения любой клавиши влечет за собой восстановление цепи питания.

Выбор варианта исполнения

При выборе подходящего вида проходного одноклавишного выключателя учитываются следующие моменты:

  • в первую очередь потребуется определиться с маркой приобретаемого устройства, которая выбирается исходя из личных предпочтений;
  • подбирается число переключающих клавиш, что зависит от требуемого количества точек, из которых должны управляться осветители;
  • определяется способ монтажа приобретаемого прибора (в открытом или в закрытом исполнении).

Проходной клавишный выключатель в соответствии со своим функциональным назначением позволяет управлять осветителями из двух или трех удаленных точек, облегчая порядок обращения с ними.

Релизы

· FlagBrew / Checkpoint · GitHub

Для этого релиза обязательна небольшая предпосылка.

Изначально в моих планах должна была быть версия 4.0.0. Я определенно приложил все усилия, чтобы этот выпуск состоялся, по сравнению со всеми старыми версиями, предшествовавшими этой.

Я очень много работал над этим. ~ 80kloc изменено, большая часть кодовой базы переработана, новый интерфейс.

Я пишу это незадолго до выпуска этого нового обновления, и вскоре после того, как я понял, что это еще не то, чего я всегда пытался достичь во время разработки и реализации, практически без каких-либо улучшений этого программного обеспечения.

Вот почему номер версии был уменьшен по сравнению с той, которую я планировал выпустить сегодня.

Что это значит? Ну в принципе ничего для конечного пользователя. Вы по-прежнему получите все функции, над которыми работали в течение ~ 9 месяцев, прошедших между этим и последним стабильным выпуском.

Еще один набор функций, который изначально планировалось разработать для этого выпуска, будет отложен до следующей основной версии, которая будет тщательно разработана с нуля.

В то время как пользовательский интерфейс версии 3DS все еще потрясающий, попытки адаптировать его для Switch, как я мог, потерпели неудачу. Пришло время создать правильный UX, который будет полностью использовать преимущества форм-фактора Switch, сохраняя при этом все концепции и идеи, которые сделали Checkpoint тем, чем она является сегодня.

Это того стоит.

3DS: что нового

  • Добавлено: Sharkive теперь объединен с Checkpoint . В Checkpoint было реализовано совершенно новое меню читов, чтобы можно было управлять читами для Luma3DS.
    • Вся база читов находится в автономном режиме и встроена в Checkpoint. Больше не требуется интернета, больше нет патоки, медленной загрузки из-за загрузки читов.
    • Вы можете выбрать и активировать только те читы, которые вам действительно нужны. Это решает проблемы, вызванные слишком большими чит-файлами для полного отображения в чит-движке Luma3DS.
    • Чит обновления будут происходить, когда:
      • Обновления контрольно-пропускных пунктов.
      • Вы строите Checkpoint из исходников.
      • Вы создаете базу данных читов и помещаете ее на SD-карту в ожидаемое место, чтобы она загружалась вместо прилагаемой.
    • Эта функция не поддерживает Sharkive .
  • Добавлено: Возможность менять игровые монеты . Многие из вас все время просили об этом. Я не знаю, почему вам так нужна эта функция, но вот она. Вы можете получить к нему доступ, наведя курсор на заголовок журнала активности NAND или нажав SELECT + коснувшись правого верхнего угла.
  • Добавлено: переработанный интерфейс. Наслаждайтесь этим, пока он свежий.
  • Добавлено: возможность горячей замены картриджа. Теперь вы можете выбрать из конфигурации, хотите ли вы иметь возможность горячей замены картриджа во время работы Checkpoint.
    • По умолчанию отключено. Обратной стороной включения этой функции является то, что пользовательский интерфейс замедляется на пару секунд перед тем, как реагировать во время загрузки.
  • Добавлено: логирование. Журналы будут записаны в /3ds/Checkpoint/checkpoint.log .
    • Эта функция не поддерживает JEDECheck .
  • Исправлено: корзина больше не кешируется. Это означает, что кеш не будет перестраиваться каждый раз, когда вы меняете картриджи перед запуском Checkpoint.
  • Исправлено: сортировка избранного теперь снова работает правильно.
  • Исправлено: уменьшен размер исполняемого файла. Теперь он хранит внутри себя всю базу данных читов (~ 1,6 МБ json), функции двух других приложений и при этом сохраняет в основном одинаковый размер по сравнению со старым стабильным выпуском.
  • Рефакторинг, рефакторинг, рефакторинг …

Switch: что нового

  • Добавлено: Функция Sharkive для Switch, а также .В Checkpoint было реализовано совершенно новое меню читов, чтобы можно было управлять читами для Atmosphere.
    • Вся база читов находится в автономном режиме и встроена в Checkpoint.
    • Вы можете выбрать и активировать только те читы, которые вам действительно нужны. Это альтернативный подход к чит-переключателям.
    • Чит обновления будут происходить, когда:
      • Обновления контрольно-пропускных пунктов.
      • Вы строите Checkpoint из исходников.
      • Вы создаете базу данных читов и помещаете ее на SD-карту в ожидаемое место, чтобы она загружалась вместо прилагаемой.
  • Добавлено: Онлайн-конфигурации . Теперь вы можете настроить Checkpoint из своего интернет-браузера. Checkpoint будет вести себя как HTTP-сервер во время работы.
    • Подключитесь к SWITCH_IP_ADDRESS: 8000 с любого устройства, подключенного к той же сети, что и ваш коммутатор, чтобы иметь доступ к конфигурациям.
  • Добавлено: FTP-сервер . Вы, вероятно, захотите получить свои сохранения из коммутатора после их резервного копирования.Пока я придумываю более удобные решения, наслаждайтесь этим неблокирующим FTP-сервером. Вы можете подключиться к SWITCH_IP_ADDRESS: 5000 (начиная с v3.7.1, SWITCH_IP_ADDRESS: 50000 ) с пустым именем пользователя и паролем.
  • Добавлено: переработанный интерфейс. Наслаждайтесь этим, пока он свежий.
  • Добавлено: поддержка системной клавиатуры. Изначально настраиваемая клавиатура была удалена из Checkpoint, чтобы в полной мере использовать возможности апплета системной клавиатуры.
  • Добавлено: переключение страниц с помощью L / R.
  • Добавлено: логирование. Журналы будут записаны в /switch/Checkpoint/checkpoint.log .
  • Исправлено: сортировка избранного теперь снова работает правильно.
  • Исправлено: уменьшен размер исполняемого файла. Теперь внутри него хранится вся база данных читов, и он по-прежнему на ~ 1 МБ легче, чем в предыдущем стабильном выпуске.
  • Исправлено: Checkpoint больше не запускается, если nx-hbmenu запускается через системный апплет (например, Album).
  • Рефакторинг, рефакторинг, рефакторинг…

Чит-менеджмент

Начиная с этого выпуска, Checkpoint также занимается управлением читами. Исходные чит-файлы предоставляются Sharkive , который является еще одним проектом, который существует уже давно.

Первоначально Sharkive была домашним пивом 3DS, способным управлять читами. Поскольку его функции теперь интегрированы в Checkpoint, само приложение устарело и прекращено. Если вы попытаетесь запустить Sharkive, он сейчас просто закроется.

Чтобы узнать больше о чит-кодах, о том, как их отправлять и как участвовать в проекте, можно начать с репозитория Sharkive.

Пользователь ikeb0mb # 2998 сделал действительно полезный видеоурок, чтобы показать вам, как использовать Cheat Engine. Пожалуйста, посмотрите!

Дорожная карта

Функции, которые не вошли в эту версию (извините):

  • Улучшенный интерфейс
  • Управление сохранением BCAT
  • Улучшенный веб-интерфейс
  • Руководство, интегрированное с веб-интерфейсом
  • Автоматическое обновление
  • Чит-апдейтер

Будет разумнее реализовать их, когда все приложение будет лучше спроектировано для интеграции этого большого количества функций, сохраняя при этом взаимодействие с пользователем как можно более чистым.Главное в программном обеспечении – качество, а не количество.


Отсканируйте QR-код для версии 3DS с ФБР.

Для получения дополнительных сведений, инструкций, информации и кредитов ознакомьтесь с readme .

Если вы хотите внести свой вклад, мы будем очень благодарны за запросы на вытягивание.


Если вам нравится работа, которую FlagBrew вкладывает в этот и другие проекты, поддерживает FlagBrew на Patreon или через PayPal!

FlagBrew / Checkpoint: быстрый и простой менеджер сохранений homebrew для 3DS и Switch.

Быстрый и простой менеджер сохранений для 3DS и Switch, написанный на C ++.

Зачем нужен Checkpoint?

Checkpoint создан исходя из идей простоты и эффективности. Пользовательский интерфейс был разработан, чтобы сжать как можно больше опций, сохраняя при этом простоту работы.

Более того, Checkpoint чрезвычайно легок – в то же время упакован с красивым графическим пользовательским интерфейсом – и построен с использованием самых последних доступных библиотек.

Checkpoint для 3DS изначально поддерживает картриджи 3DS и DS, цифровые стандартные заголовки и демонстрационные заголовки. Он также автоматически проверяет и фильтрует доморощенные заголовки, у которых может не быть сохраненного архива для резервного копирования или восстановления, что выполняется без внешнего списка заголовков и фильтров. По этой причине Checkpoint не требует постоянного пользовательского обслуживания для сохранения полной функциональности.

Checkpoint для Switch изначально поддерживает сохранение NAND для игр, которые вы играли. Информация о заголовке загружается автоматически.

Использование

Вы можете использовать Checkpoint для 3DS с программами запуска Homebrew на основе cfw и Rosalina. * Пусковые установки Homebrew на основе hax не поддерживаются Checkpoint.

Checkpoint для Switch работает на домашней установке. Убедитесь, что вы используете актуальные полезные данные.

Первый запуск версии 3DS займет значительно больше времени, чем обычно (обычно 1-2 минуты в зависимости от того, сколько игр вы установили) из-за создаваемых рабочих каталогов – с этого момента Checkpoint будет значительно быстрее после запуска.

Вы можете прокручивать список заголовков с помощью DPAD / LR и выбирать заголовок с помощью A, когда на нем находится селектор. Теперь вы можете использовать DPAD или сенсорный экран, чтобы выбрать целевую резервную копию для восстановления / перезаписи.

Рабочий путь

Checkpoint использует следующие папки для хранения создаваемых файлов. Обратите внимание, что все рабочие каталоги автоматически создаются при первом запуске (или когда Checkpoint находит новый заголовок, у которого еще нет рабочего каталога).

3ДС

  • sdmc: / 3ds / Checkpoint : корневой путь
  • SDMC: / 3ds / Checkpoint / config.json : пользовательский файл конфигурации
  • sdmc: / 3ds / Checkpoint / saves / <уникальный идентификатор> <название игры> : корневой путь для всех резервных копий сохранений для общей игры
  • sdmc: / 3ds / Checkpoint / extdata / <уникальный идентификатор> <название игры> : корневой путь для всех резервных копий extdata для общей игры

Переключатель

  • sdmc: / switch / Checkpoint : корневой путь
  • SDMC: / переключатель / контрольная точка / config.json : пользовательский файл конфигурации
  • sdmc: / switch / Checkpoint / saves / <game title> </code> </strong>: корневой путь для всех резервных копий сохранений для общей игры</li></ul><h3><span class="ez-toc-section" id="i-41"> Файл конфигурации </span></h3><p> Вы можете добавлять и переключать функции в Checkpoint для 3DS, редактируя файл конфигурации <strong> <code> config.json </code> </strong>.</p><h4><span class="ez-toc-section" id="i-42"> Пример файла конфигурации: </span></h4><pre> <code> { "фильтр": [ «0x000400000011C400», «0x000400000014F100» ], "избранное": [ «0x000400000011C400» ], "additional_save_folders": { "0x00040000001B5000": { "папки": [ "/ 3ds / mySaves / 1B50", "/ moreSave" ] }, "0x00040000001B5100": { "папки": [ "/ 3ds / PKSM / резервные копии" ] } }, "additional_extdata_folders": { }, "nand_saves": правда, «версия»: 2 } </code> </pre><h3><span class="ez-toc-section" id="i-43"> Устранение неполадок </span></h3><p> Checkpoint отображает коды ошибок, когда происходит что-то странное или операции не выполняются.Если у вас есть какие-либо проблемы, убедитесь, что они еще не решены, и сообщите код ошибки и сводку ваших операций, чтобы воспроизвести их.</p><p> Кроме того, вы можете получить поддержку в режиме реального времени, присоединившись к серверу Discord FlagBrew (ссылка ниже).</p><h3><span class="ez-toc-section" id="i-44"> Корпус </span></h3><p> devkitARM и devkitA64 необходимы для компиляции Checkpoint для 3DS и Switch соответственно. Узнайте больше на devkitpro.org. Установите или обновите зависимости следующим образом.</p><h4><span class="ez-toc-section" id="3DS-2"> 3DS версия </span></h4><p> <code> dkp-pacman -S libctru citro3d citro2d 3ds-bzip2 </code></p><h4><span class="ez-toc-section" id="i-45"> Версия коммутатора </span></h4><p> <code> dkp-pacman -S libnx switch-freetype switch-libpng switch-libjpeg-turbo switch-sdl2 switch-sdl2_image переключатель-sdl2_ttf </code></p><h3><span class="ez-toc-section" id="i-46"> Лицензия </span></h3><p> Этот проект находится под лицензией GNU GPLv3.К этому применяются Дополнительные условия 7.b и 7.c GPLv3. Подробности см. На LICENSE.md.</p><h3><span class="ez-toc-section" id="i-47"> Кредиты </span></h3><p> Несмотря на то, что это результат независимых исследований и работы, Checkpoint для 3DS не был бы возможен без оригинальной версии JKSM от J-D-K.</p><p> TuxSH для TWLSaveTool, из которого был взят код SPI.</p><p> разработчиков WinterMute, fincs и devkitPro для devkitARM, devkitA64 и dkp-pacman.</p><p> Yellows8 и все запасные части для переключателей-примеров.</p><p> ракуджира за потрясающий логотип Checkpoint.</p><p> Товарищам по тестированию и специалистам по устранению неполадок за их помощь.</p><hr/><p> Если вам нравится работа, которую FlagBrew вкладывает в этот и другие проекты, <strong> поддержите FlagBrew на Patreon </strong>!</p><p></p><h2><span class="ez-toc-section" id="Checkpoint_v370"> Checkpoint v3.7.0 Выпущено </span></h2><h3><span class="ez-toc-section" id="Checkpoint_v370-2"> Checkpoint v3.7.0 выпущен </span></h3> <br/> После 9 месяцев разработки <b> Бернардо Джордано </b> выпустил новую версию Checkpoint, которая представляет собой быстрый и простой менеджер сохранений для вашей гибридной игровой консоли Nintendo Switch с поддержкой доморощенных игр.Checkpoint теперь имеет интегрированный автономный менеджер чит-движка Atmosphere под названием Sharkive, поддержку FTP, совершенно новый пользовательский интерфейс и другие изменения.<p> Цитата:</p><blockquote> Небольшая предпосылка является обязательной для этого выпуска.<p> Изначально в моих планах должна была быть версия 4.0.0. Я определенно приложил все усилия, чтобы этот выпуск состоялся, по сравнению со всеми старыми версиями, предшествовавшими этой.</p><p> Я очень много работал над этим. ~ 80kloc изменено, большая часть кодовой базы переработана, новый интерфейс.</p><p> Я пишу это незадолго до выпуска этого нового обновления, и вскоре после того, как понял, что это еще не то, чего я всегда пытался достичь во время разработки и реализации этого программного обеспечения с небольшими или нулевыми преимуществами.</p><p> Вот почему номер версии был уменьшен по сравнению с той, которую я планировал выпустить сегодня.</p><p> Что это значит? Ну в принципе ничего для конечного пользователя. Вы по-прежнему получите все функции, над которыми работали в течение ~ 9 месяцев, прошедших между этим и последним стабильным выпуском.</p><p> Еще один набор функций, который изначально планировалось разработать для этого выпуска, будет отложен до следующей основной версии, которая будет тщательно разработана с нуля.</p><p> В то время как пользовательский интерфейс версии для 3DS все еще потрясает, попытки адаптировать его для Switch, насколько я мог, потерпели неудачу. Пришло время создать правильный UX, который будет полностью использовать преимущества форм-фактора Switch, сохраняя при этом все концепции и идеи, которые сделали Checkpoint тем, чем она является сегодня.</p><p> Это того стоит.</p></blockquote> <br/> <b> Что нового? </b><p> * Добавлено: функция Sharkive также для Switch. В Checkpoint было реализовано совершенно новое меню читов, чтобы можно было управлять читами для Atmosphere. <br/> * Вся база читов находится в автономном режиме и встроена в Checkpoint. <br/> * Вы можете выбрать и активировать только те читы, которые вам действительно нужны. Это альтернативный подход к чит-переключателям. <br/> * Чит-обновления будут происходить, когда: <br/> * Обновления контрольной точки.<br/> * Вы строите Checkpoint из исходников. <br/> * Вы создаете базу данных читов и размещаете ее на SD-карте в ожидаемом месте, так что она будет загружена вместо той, что входит в комплект. <br/> * Добавлено: Онлайн-конфигурации. Теперь вы можете настроить Checkpoint из своего интернет-браузера. Checkpoint будет вести себя как HTTP-сервер во время работы. <br/> * Подключитесь к `SWITCH_IP_ADDRESS: 8000` с любого устройства, подключенного к той же сети, что и ваш коммутатор, чтобы иметь доступ к конфигурациям.<br/> * Добавлено: FTP-сервер. Вы, вероятно, захотите получить свои сохранения из коммутатора после их резервного копирования. Пока я придумываю более удобные решения, наслаждайтесь этим неблокирующим FTP-сервером. Вы можете подключиться к SWITCH_IP_ADDRESS: 5000 с пустым именем пользователя и паролем. <br/> * Добавлено: переработанный UI. Наслаждайтесь этим, пока он свежий. <br/> * Добавлено: поддержка системной клавиатуры. Изначально настраиваемая клавиатура была удалена из Checkpoint, чтобы в полной мере использовать возможности апплета системной клавиатуры.<br/> * Добавлено: переключение страниц с помощью L / R. <br/> * Добавлено: логирование. Журналы будут записаны в `/ switch / Checkpoint / checkpoint.log`. <br/> * Исправлено: сортировка избранного теперь снова работает правильно. <br/> * Исправлено: урезан размер исполняемого файла. Теперь внутри него хранится вся база данных читов, и он по-прежнему на ~ 1 МБ легче, чем в предыдущем стабильном выпуске. <br/> * Исправлено: Checkpoint больше не запускается, если nx-hbmenu запускается через системный апплет (например, Album). <br/> * Рефакторинг, рефакторинг, рефакторинг…</p> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <b> Описание </b><p> Checkpoint – это быстрый и простой менеджер сохранений для вашей гибридной игровой консоли Nintendo Switch с поддержкой homebrew. Checkpoint позволит вам создавать резервные копии и восстанавливать данные сохраненной игры без необходимости тратить деньги на онлайн-сервис Nintendo, который имеет ограниченные возможности в отношении того, что вы можете делать и не делать с данными.</p><p> <b> Характеристики </b></p><p> Контрольно-пропускной пункт создан с учетом идей простоты и эффективности.Пользовательский интерфейс был разработан, чтобы сжать как можно больше опций, сохраняя при этом простоту работы.</p><p> Более того, Checkpoint чрезвычайно легок – в то же время упакован с красивым графическим пользовательским интерфейсом – и построен с использованием самых последних доступных библиотек.</p><p> Checkpoint для 3DS изначально поддерживает картриджи 3DS и DS, цифровые стандартные титры и демонстрационные игры. Он также автоматически проверяет и фильтрует доморощенные заголовки, у которых может не быть сохраненного архива для резервного копирования или восстановления, что выполняется без внешнего списка заголовков и фильтров.По этой причине Checkpoint не требует постоянного пользовательского обслуживания для сохранения полной функциональности.</p><p> Checkpoint for Switch изначально поддерживает сохранение NAND для игр, которые вы играли. Информация о заголовке загружается автоматически.</p><p> <b> Инструкции </b></p><p> Checkpoint для 3DS можно использовать как с программами запуска Homebrew на основе cfw, так и с программой запуска самодельного пива на основе Rosalina. * Пусковые установки Homebrew на основе hax не поддерживаются Checkpoint.</p><p> Контрольная точка для Switch работает в программе запуска homebrew. Убедитесь, что вы используете актуальные полезные данные.</p><p> Первый запуск займет значительно больше времени, чем обычно (обычно 1-2 минуты в зависимости от того, сколько игр вы установили) из-за создаваемых рабочих каталогов – с этого момента Checkpoint будет значительно быстрее после запуска.</p><p> Вы можете прокручивать список заголовков с помощью DPAD / LR и выбирать заголовок с помощью A, когда на нем находится селектор. Теперь вы можете использовать DPAD или сенсорный экран, чтобы выбрать целевую резервную копию для восстановления / перезаписи.</p><p> <b> Кредиты </b></p><p> Несмотря на то, что это результат независимых исследований и работы, Checkpoint для 3DS не был бы возможен без оригинальной версии JKSM J-D-K, которая представляет собой невероятную программу, которую вы все должны использовать.</p><p> TuxSH для TWLSaveTool, из которого был взят код SPI.</p><p> разработчиков WinterMute и devkitPro для devkitARM, devkitA64 и dkp-pacman.</p><p> Все сопровождающие для nx-hbmenu, для всех функций рендеринга Switch.</p><p> Yellows8 и все контейнеры для примеров выключателей.</p><p> ракуджира за потрясающий логотип Checkpoint.</p><p> Хикари-чин и всем остальным тестерам за помощь в тестировании.</p><p> <b> История изменений </b></p><blockquote> v3.7.0<p> ### Switch: что нового</p><p> * Добавлено: функция Sharkive также для Switch. В Checkpoint было реализовано совершенно новое меню читов, чтобы можно было управлять читами для Atmosphere. <br/> * Вся база читов находится в автономном режиме и встроена в Checkpoint. <br/> * Вы можете выбрать и активировать только те читы, которые вам действительно нужны. Это альтернативный подход к чит-переключателям. <br/> * Чит-обновления будут происходить, когда: <br/> * Обновления контрольной точки.<br/> * Вы строите Checkpoint из исходников. <br/> * Вы создаете базу данных читов и размещаете ее на SD-карте в ожидаемом месте, так что она будет загружена вместо той, что входит в комплект. <br/> * Добавлено: Онлайн-конфигурации. Теперь вы можете настроить Checkpoint из своего интернет-браузера. Checkpoint будет вести себя как HTTP-сервер во время работы. <br/> * Подключитесь к `SWITCH_IP_ADDRESS: 8000` с любого устройства, подключенного к той же сети, что и ваш коммутатор, чтобы иметь доступ к конфигурациям.<br/> * Добавлено: FTP-сервер. Вы, вероятно, захотите получить свои сохранения из коммутатора после их резервного копирования. Пока я придумываю более удобные решения, наслаждайтесь этим неблокирующим FTP-сервером. Вы можете подключиться к SWITCH_IP_ADDRESS: 5000 с пустым именем пользователя и паролем. <br/> * Добавлено: переработанный UI. Наслаждайтесь этим, пока он свежий. <br/> * Добавлено: поддержка системной клавиатуры. Изначально настраиваемая клавиатура была удалена из Checkpoint, чтобы в полной мере использовать возможности апплета системной клавиатуры.<br/> * Добавлено: переключение страниц с помощью L / R. <br/> * Добавлено: логирование. Журналы будут записаны в `/ switch / Checkpoint / checkpoint.log`. <br/> * Исправлено: сортировка избранного теперь снова работает правильно. <br/> * Исправлено: урезан размер исполняемого файла. Теперь внутри него хранится вся база данных читов, и он по-прежнему на ~ 1 МБ легче, чем в предыдущем стабильном выпуске. <br/> * Исправлено: Checkpoint больше не запускается, если nx-hbmenu запускается через системный апплет (например, Album). <br/> * Рефакторинг, рефакторинг, рефакторинг…</p><p> v3.6.0</p><p> * Добавлено: реализована функция моста между Checkpoint for Switch и [PKSM] (https://github.com/FlagBrew/PKSM) (для 3DS, v6.0.0 и выше). <br/> * Позволяет отправить (а затем получить обратно) файл сохранения по сети, что позволяет выполнять манипуляции без необходимости вручную просматривать резервные копии сохранения на вашем ПК. <br/> * Его также необходимо включить вручную, отредактировав файл конфигурации. Как только он включен, вы можете получить доступ к мосту, нажав «L + R» в действующей игре.<br/> * В настоящее время эта функция работает только с LGPE. <br/> * Исправлено: кнопки теперь реагируют, как и раньше, при навигации по пользовательскому интерфейсу. <br/> * Исправлено: титры с черным фоном теперь отображаются правильно. <br/> * Исправлено: цвет галочки больше не путает со значками заголовков. <br/> * Исправлено: текст больше не выводит текстовые поля за обрез, как раньше.</p><p> v3.5.0</p><p> Switch: что нового</p><p> Добавлена ​​поддержка аппаратного ускорения. Checkpoint теперь использует графический процессор для рендеринга графики и текста, снимая нагрузку с процессора.<br/> Интерфейс теперь использует SDL2 для визуализации изображений и текста. <br/> Рендеринг текста оптимизирован за счет использования специальной версии SDL_FontCache, которая кэширует глифы в памяти, а не создает текстуры для каждого кадра. Это также позволяет использовать системный шрифт, уже доступный в консоли. <br/> Кэширует контрольную точку из шрифтов PlSharedFontType_Standard и PlSharedFontType_NintendoExt, поэтому теперь поддерживается отображение на экране как обычных символов, так и символов. <br/> Добавлена ​​возможность установить заголовок как избранное.Теперь вы можете отредактировать файл конфигурации, чтобы установить идентификатор заголовка как любимый заголовок, чтобы он всегда отображался вверху списка заголовков. <br/> Исправлены сбои, вызванные открытием слишком большого количества файловых дескрипторов. <br/> Поведение ключа изменено. (спасибо @IBNobody) <br/> Теперь вы можете выбирать строки в списке резервных копий, создавать резервные копии и восстанавливать резервную копию только с помощью кнопки A. <br/> Нажатие Y выберет текущий заголовок, но отключит / сбросит список резервных копий. Это также активирует только сенсорную кнопку резервного копирования.Создание резервной копии отключит сенсорную кнопку резервного копирования. Это дает пользователю более четкое представление о том, какие кнопки / элементы пользовательского интерфейса имеют отношение к множественному резервному копированию. <br/> Исправлены случайные сбои при смене аккаунта. <br/> Checkpoint теперь использует последнюю версию libnx 1.5.0, которая поддерживает часовой пояс и исправляет неправильные имена резервных копий по умолчанию, если ваша консоль никогда не подключалась к Интернету. <br/> Checkpoint теперь компилируется с использованием C ++ 17.</p></blockquote> <br/> <b> Ссылки и загрузки </b> <br/> https://github.com/FlagBrew/Checkpoint/releases/tag/v3.7.0 КПП<h2><span class="ez-toc-section" id="i-48"> (Стрелка) – Стрелка – Деказета </span></h2><p> Быстрый и простой менеджер сохранений для 3DS и Switch, написанный на C ++.</p><h3><span class="ez-toc-section" id="_Checkpoint-2"> Зачем использовать Checkpoint? </span></h3><p> Контрольно-пропускной пункт создан исходя из идей простоты и эффективности. Пользовательский интерфейс был разработан, чтобы сжать как можно больше опций, сохраняя при этом простоту работы.</p><p> Более того, Checkpoint чрезвычайно легок – в то же время упакован с приятным графическим пользовательским интерфейсом – и построен с использованием самых последних доступных библиотек.</p><p> Checkpoint для 3DS изначально поддерживает картриджи 3DS и DS, цифровые стандартные заголовки и демонстрационные заголовки. Он также автоматически проверяет и фильтрует доморощенные заголовки, у которых может не быть сохраненного архива для резервного копирования или восстановления, что выполняется без внешнего списка заголовков и фильтров. По этой причине Checkpoint не требует постоянного пользовательского обслуживания для сохранения полной функциональности.</p><p> Checkpoint for Switch изначально поддерживает сохранение NAND для игр, в которые вы играли. Информация о заголовке загружается автоматически.</p><p></p><h3><span class="ez-toc-section" id="i-49"> использование </span></h3><p> Checkpoint for Switch работает на лаунчере homebrew. Убедитесь, что вы используете актуальные полезные данные.</p><p> Первый запуск займет значительно больше времени, чем обычно (обычно 1-2 минуты в зависимости от того, сколько игр вы установили) из-за создаваемых рабочих каталогов – с этого момента Checkpoint будет значительно быстрее после запуска.</p><p> Вы можете прокручивать список заголовков с помощью DPAD / LR и выбирать заголовок с помощью A, когда на нем находится селектор.Теперь вы можете использовать DPAD или сенсорный экран, чтобы выбрать целевую резервную копию для восстановления / перезаписи.</p><h3><span class="ez-toc-section" id="i-50"> Рабочий путь </span></h3><p> Checkpoint использует следующие папки для хранения создаваемых файлов. Обратите внимание, что все рабочие каталоги автоматически создаются при первом запуске (или когда Checkpoint находит новый заголовок, у которого еще нет рабочего каталога).</p><ul><li> <strong> <code> sdmc: / switch / Checkpoint </code> </strong>: корневой путь</li><li> <strong> <code> SDMC: / переключатель / контрольная точка / config.json </code> </strong>: пользовательский файл конфигурации</li><li> <strong> <code> sdmc: / switch / Checkpoint / saves /<title id> <game title> </code> </strong>: корневой путь для всех резервных копий сохранений для общей игры</li></ul><h3><span class="ez-toc-section" id="i-51"> Поиск проблемы </span></h3><p> Checkpoint отображает коды ошибок, когда происходит что-то странное или операции не выполняются. Если у вас есть какие-либо проблемы, убедитесь, что они еще не решены, и сообщите код ошибки и сводку ваших операций, чтобы воспроизвести их.</p><p> <strong> Кредиты </strong></p><p> Несмотря на то, что это результат независимых исследований и работы, Checkpoint для 3DS не был бы возможен без оригинальной версии JKSM от J-D-K, которая представляет собой невероятную программу, которую вы все должны использовать.</p><p> TuxSH для TWLSaveTool, из которого был взят код SPI.</p><p> Участники WinterMute и devkitPro для devkitARM, devkitA64 и dkp-pacman.</p><p> Все разработчики nx-hbmenu, всех функций рендеринга Switch.</p><p> Yellows8 и все остальные для примеров переключателей.</p><p> rakujira за потрясающий логотип Checkpoint.</p><p> Хикари-чин и всем остальным тестерам за помощь в тестировании.</p><table><h2><span class="ez-toc-section" id="i-52"> КПП </span></h2><tr><td valign="top" headers="N10116 "><p> Название</p></td><td valign="top" headers="N10121 "><p> Имя элемента потока, отображаемого на холсте. Значение по умолчанию «КПП»</p></td></tr><tr><td valign="top" headers="N10116 "><p> Разрешить несколько выходов</p></td><td valign="top" headers="N10121 "><p> Если установлено значение yes, пользователь SwitchClient может отправлять копии задания вместе с более одного исходящего соединения; в противном случае работа будет отправлена ровно одно из исходящих подключений</p></td></tr><tr><td valign="top" headers="N10116 "><p> Включить просмотр отчета</p></td><td valign="top" headers="N10121 "><p> Если установлено значение “да”, SwitchClient предлагает дополнительные кнопки для просмотра или сохранения отчет, полученный путем извлечения набора данных метаданных, указанного в недвижимость, описанная ниже</p><p> Эта функция чаще всего используется с наборами данных, собранными на светофоре подключение, установив “Перенести этот тип файлов” на “Данные с журналом”</p></td></tr><tr><td valign="top" headers="N10116 "><p> <em> Имя набора данных отчета </em></p></td><td valign="top" headers="N10121 "><p> имя набора данных метаданных для отчета, который будет просматриваться клиентом</p></td></tr><tr><td valign="top" headers="N10116 "><p> Разрешить замену или редактирование задания</p></td><td valign="top" headers="N10121 "><p> Если установлено «Да», SwitchClient отображает дополнительную кнопку, позволяющую пользователю редактировать и / или заменять вакансии новой версией (предположительно отредактированной на компьютере пользователя-клиента) перед перемещением из Пропускной пункт; исходное задание потеряно, но его метаданные сохранилось</p><p> Дополнительные сведения см. В разделе Замена задания. по процессу замены</p></td></tr><tr><td valign="top" headers="N10116 "><p> Ввод и отображение метаданных</p></td><td valign="top" headers="N10121 "><p> Если установлено «Да», вы можете указать или отобразить дополнительные или обязательные метаданные. поля, которые пользователь должен просмотреть, обновить или заполнить, прежде чем разрешить задание пройти через этот контрольно-пропускной пункт.</p></td></tr><tr><td valign="top" headers="N10116 "><p> <em> Поля метаданных </em></p></td><td valign="top" headers="N10121 "><p> Укажите поля метаданных, которые пользователь должен просмотреть, обновить или заполнить. Щелкните эту кнопку, чтобы вызвать Диалоговое окно “Определение полей метаданных” где вы можете указать поля метаданных.</p></td></tr><tr><td valign="top" headers="N10116 "><p> <em> Имя набора данных </em></p></td><td valign="top" headers="N10121 "><p> Имя набора данных, в котором будут храниться указанные поля метаданных. вводится здесь; см. Сбор метаданных для получения дополнительной информации</p></td></tr><tr><td valign="top" headers="N10116 "><p> Присоединить пользователь как адрес электронной почты</p></td><td valign="top" headers="N10121 "><p> Если установлено значение “да”, адрес электронной почты обслуживающего пользователя добавляется к каждому заданию. информация по электронной почте при перемещении задания по потоку</p><p> В Кроме того, Checkpoint обновляет атрибут “имя пользователя” в внутренний рабочий тикет:</p> <br /><ul><li><p> Если это свойство установлено значение “да”, атрибут “имя пользователя” всегда устанавливается равным имени пользователя клиента Checkpoint, перемещающего задание, независимо от предыдущее значение</p></li><li><p> Если это свойство установлен на нет, атрибут “имя пользователя” устанавливается только на новое имя если он был пуст для начала с</p></li></ul></td></tr><tr><td valign="top" headers="N10116 "><p> Отказ вакансии после тайм-аута</p></td><td valign="top" headers="N10121 "><p> Если установлено значение “да”, задания не выполняются после пребывания в контрольной точке для определенный период времени (указанный в подчиненных свойствах)</p><p> Неудачные задания перемещаются на исходящее соединение указанные в подчиненных свойствах или в папку проблемных заданий</p></td></tr><tr><td valign="top" headers="N10116 "><p> <em> Шт. </em></p></td><td valign="top" headers="N10121 "><p> Выбирает единица для последующего свойства: минуты, часы, дни</p></td></tr><tr><td valign="top" headers="N10116 "><p> <em> Задержка тайм-аута </em></p></td><td valign="top" headers="N10121 "><p> задержка таймаута в единицах, указанных предыдущим свойством (0 означает «без тайм-аута»)</p></td></tr><tr><td valign="top" headers="N10116 "><p> <em> Аварийное соединение </em></p></td><td valign="top" headers="N10121 "><p> имя соединения, в которое нужно переместить неудачные задания</p><p> Если значение этого свойства пустое или если указанное имя не соответствует ни одному из имен исходящих соединений, невыполненные задания перемещаются в папку проблемных заданий</p></td></tr></table><table><h2><span class="ez-toc-section" id="i-53"> КПП по почте </span></h2><tr><td valign="top" headers="N10139 "><p> Имя</p></td><td valign="top" headers="N10144 "><p> The имя элемента потока, отображаемого на холсте</p></td></tr><tr><td valign="top" headers="N10139 "><p> Тема</p></td><td valign="top" headers="N10144 "><p> The строка темы сообщения.</p></td></tr><tr><td valign="top" headers="N10139 "><p> Кому адреса</p></td><td valign="top" headers="N10144 "><p> The список адресов электронной почты назначения для сообщения. Адрес электронной почты разделяются точкой с запятой или новой строкой.</p></td></tr><tr><td valign="top" headers="N10139 "><p> Включить прикрепленные адреса</p></td><td valign="top" headers="N10144 "><p> Если установлено значение “да”, адреса электронной почты из внутренней заявки на вакансию добавлены в адреса “Кому”.</p></td></tr><tr><td valign="top" headers="N10139 "><p> Ответный адрес</p></td><td valign="top" headers="N10144 "><p> The адрес электронной почты, на который получатель сообщения должен отправить ответ.Если значение пустое или значение По умолчанию, ответный адрес, указанный в используются пользовательские настройки.</p></td></tr><tr><td valign="top" headers="N10139 "><p> Формат сообщения</p></td><td valign="top" headers="N10144 "><p> The формат тела сообщения: обычный текст или HTML</p></td></tr><tr><td valign="top" headers="N10139 "><p> Шаблон корпуса</p></td><td valign="top" headers="N10144 "><p> The расположение шаблона тела письма.</p><p> Если установлено значение “Встроенный”, текст может быть помещен в <em> Body текст </em> собственности.Использование <em> Включить прикрепленный корпус текст </em>, вы можете вставить основной текст, прикрепленный к задание как часть его электронной почты после основного текста. если ты установите для параметра “Отображать метаданные” значение “Да”, вы можете укажите поля метаданных <em> </em> с помощью команды Определить диалоговое окно полей метаданных.</p><p> Если установлено значение <em> Фиксированный файл </em>, можно установить файл шаблона <em> </em>, ссылаясь на простой текстовый или HTML-файл, содержащий шаблон сообщения тело.</p><p> Если установлено значение <em> Связано с заданием </em>, набор данных шаблона <em> </em>, который является имя набора данных метаданных, связанного с заданием, содержащим может быть установлен обычный текст или шаблон HTML.</p></td></tr><tr><td valign="top" headers="N10139 "><p> Прикрепить файлы</p></td><td valign="top" headers="N10144 "><p> Если установите значение “да”, входящее задание будет прикреплено к отправляемому сообщению электронной почты. из</p></td></tr><tr><td valign="top" headers="N10139 "><p> Включить просмотр отчета</p></td><td valign="top" headers="N10144 "><p> Если установлено значение “да”, набор данных метаданных обозначен подчиненным свойство прикреплено к электронному письму отослано</p></td></tr><tr><td valign="top" headers="N10139 "><p> <em> Имя набора данных отчета </em></p></td><td valign="top" headers="N10144 "><p> The имя набора данных, который будет прикреплен к сообщению электронной почты</p></td></tr><tr><td valign="top" headers="N10139 "><p> <em> Суффикс имени отчета </em></p></td><td valign="top" headers="N10144 "><p> The название прилагаемого отчета образовано добавлением этого суффикса к название задания перед расширением имени файла</p></td></tr><tr><td valign="top" headers="N10139 "><p> <em> Расширение имени отчета </em></p></td><td valign="top" headers="N10144 "><p> The расширение имени файла для отчета.Выберите «Модель данных», чтобы автоматически используйте xml, jdf или xmp в зависимости от модели данных экспортируемого набор данных. Для модели данных Opaque исходный файл резервной копии расширение используется.</p></td></tr><tr><td valign="top" headers="N10139 "><p> Разрешить несколько выходов</p></td><td valign="top" headers="N10144 "><p> Если установлено значение “да”, пользователь может отправлять копии задания по более чем одному исходящее соединение; в противном случае задание отправляется ровно по одному исходящих соединений</p></td></tr><tr><td valign="top" headers="N10139 "><p> Сервер тип</p></td><td valign="top" headers="N10144 "><p> The тип сервера, с которого можно получить электронную почту.Возможные варианты: POP3 и «IMAP»</p></td></tr><tr><td valign="top" headers="N10139 "><p> Адрес сервера</p></td><td valign="top" headers="N10144 "><p> The URL или IP-адрес сервера, с которого нужно получить электронную почту</p></td></tr><tr><td valign="top" headers="N10139 "> Порт</td><td valign="top" headers="N10144 "> Укажите порт, который будет использоваться для связи с сервер</td></tr><tr><td valign="top" headers="N10139 "><p> Счета</p></td><td valign="top" headers="N10144 "><p> А список учетных записей (имена и соответствующие пароли), от которых для получения адреса электронной почты</p></td></tr><tr><td valign="top" headers="N10139 "><p> Использование безопасная проверка пароля</p></td><td valign="top" headers="N10144 "><p> Определяет нужно ли авторизоваться на почтовом сервере, используя безопасную проверку пароля</p></td></tr><tr><td valign="top" headers="N10139 "><p> Сервер требуется безопасное соединение (SSL)</p></td><td valign="top" headers="N10144 "><p> Определяет требуется ли для почтового сервера безопасное соединение с использованием SSL протокол</p></td></tr><tr><td valign="top" headers="N10139 "> Проверять каждые (минут)</td><td valign="top" headers="N10144 "> Частота проверки учетных записей электронной почты на наличие новых сообщения</td></tr><tr><td valign="top" headers="N10139 "> Неудачные задания после тайм-аута</td><td valign="top" headers="N10144 "><p> Если установлено значение «Да», задания не выполняются после сохранения. в КПП на определенный период времени (указанный в подчиненные свойства)</p><p> Неудачные задания перемещаются в исходящую соединение, указанное в подчиненных свойствах или к папка проблемных заданий</p></td></tr><tr><td valign="top" headers="N10139 "> <em> Установка </em></td><td valign="top" headers="N10144 "> Выбирает единицу измерения для следующего свойства: Минуты, Часы,</td> дней</tr><tr><td valign="top" headers="N10139 "> <em> Задержка тайм-аута </em></td><td valign="top" headers="N10144 "> Задержка тайм-аута в единицах, указанных в предыдущем свойстве. (0 означает «без тайм-аута»)</td></tr><tr><td valign="top" headers="N10139 "> <em> Аварийное соединение </em></td><td valign="top" headers="N10144 "><p> Имя соединения, с которым произошел сбой. рабочие места должны быть перемещены</p><p> Если значение этого свойства пустое или если указанное имя не соответствует ни одному исходящему соединению имена, невыполненные задания перемещаются в папку проблемных заданий</p></td></tr></table><h2><span class="ez-toc-section" id="_2K_Games_Nintendo_Switch"> Три франшизы 2K Games выходят на Nintendo Switch </span></h2><p> В недавнем выпуске Nintendo Direct Mini было много объявлений, одним из которых было то, что многие библиотеки игр 2K перейдут на Switch.</p><p> Коллекция Bioshock, XCOM 2 и Borderlands Legendary Collection поступят на гибридную консоль Nintendo в конце этого года в тот же день. Все игры будут поставляться вместе с впоследствии выпущенными DLC, что делает эти версии идеальным способом испытать их, если вы пропустили первый раз.</p><p> <div class="rll-youtube-player" data-src="https://www.youtube.com/embed/f_5NvcrfZyo" data-id="f_5NvcrfZyo" data-query="version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-AU&autohide=2&wmode=transparent"></div><noscript><iframe loading="lazy" src="https://www.youtube.com/embed/f_5NvcrfZyo?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-AU&autohide=2&wmode=transparent" allowfullscreen="true" sandbox="allow-scripts allow-same-origin allow-popups allow-presentation"/> </iframe></noscript></p><p> Легендарная коллекция Borderlands будет включать Borderlands, Borderlands 2 и Borderlands: The Pre-Sequel. Игроки могут бегать и стрелять в одиночку или с друзьями в трех масштабных играх, чтобы собирать тонны добычи.Также будет включен контент сезонного абонемента на каждую игру, что добавит ошеломляющего количества контента.</p><p> Также был анонсирован Bioshock: The Collection. Как и в случае с портами для PS4 и Xbox One, эта коллекция включает Bioshock Remastered, Bioshock 2 Remastered и Bioshock: Infinite: The Complete Edition. Также включено расширение Minerva’s Den для Bioshock 2 и различный дополнительный контент для Bioshock: Infinite.</p><p> Наконец, XCOM 2 был анонсирован для Nintendo Switch.Игроки должны управлять сопротивлением людей инопланетянам, оккупирующим Землю, в пошаговых боях. 4 пакета DLC и расширение War of the Chosen также будут включены в порт Switch.</p><p> Nintendo Switch стал золотой жилой для портирования отличных игр предыдущего и нынешнего поколений. Даже когда они могут пострадать в области графики или производительности, возможность брать ваши любимые игры с собой неоспоримо.</p><p> С таким большим количеством контента, включенного в эти пакеты, поклонникам франшиз 2K Games с Switch есть чего ждать.XCOM 2, Bioshock: The Collection и The Borderlands Legendary Collection выйдут на Nintendo Switch 29 мая.</p> .<script>window.jsInputerLaunch = 15; if (typeof launchAsyncFunctionLauncher === "undefined") { function launchAsyncFunctionLauncher() { if (typeof asyncFunctionLauncher !== "undefined" && typeof asyncFunctionLauncher === "function") { asyncFunctionLauncher(); } else { setTimeout(function () { launchAsyncFunctionLauncher(); }, 100) } } } launchAsyncFunctionLauncher();</script><script>var cachedBlocksArray = [];</script> </div></div></article><nav class="navigation post-navigation" role="navigation"><h1 class="screen-reader-text">Навигация по записи</h1><div class="nav-links"> <a href="https://day24h.ru/raznoe-2/kpd-obogrevatelej-infrakrasnyh-o-kpd-gazovyh-obogrevatelej-arhiv-s-o-k-2020.html" rel="prev"><span class="meta-nav">←</span> Кпд обогревателей инфракрасных: О КПД газовых обогревателей | Архив С.О.К. | 2020</a> <a href="https://day24h.ru/stiraln-3/elektromagnitnyj-klapan-podachi-vody-dlya-stiralnoj-mashiny-klapan-podachi-vody-dlya-stiralnoj-mashiny-proverka-i-remont.html" rel="next">Электромагнитный клапан подачи воды для стиральной машины: Клапан подачи воды для стиральной машины: проверка и ремонт <span class="meta-nav">→</span></a></div></nav><div id="comments" class="comments-area"><div id="respond" class="comment-respond"><h3 id="reply-title" class="comment-reply-title">Добавить комментарий <small><a rel="nofollow" id="cancel-comment-reply-link" href="/raznoe-2/chto-takoe-vyklyuchatel-prohodnoj-chto-takoe-prohodnoj-vyklyuchatel-i-gde-oni-prmenyayutsya.html#respond" style="display:none;">Отменить ответ</a></small></h3><form action="https://day24h.ru/wp-comments-post.php" method="post" id="commentform" class="comment-form" novalidate><p class="comment-notes"><span id="email-notes">Ваш адрес email не будет опубликован.</span> <span class="required-field-message">Обязательные поля помечены <span class="required">*</span></span></p><p class="comment-form-comment"><label for="comment">Комментарий <span class="required">*</span></label><textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" required></textarea></p><p class="comment-form-author"><label for="author">Имя <span class="required">*</span></label> <input id="author" name="author" type="text" value="" size="30" maxlength="245" autocomplete="name" required /></p><p class="comment-form-email"><label for="email">Email <span class="required">*</span></label> <input id="email" name="email" type="email" value="" size="30" maxlength="100" aria-describedby="email-notes" autocomplete="email" required /></p><p class="comment-form-url"><label for="url">Сайт</label> <input id="url" name="url" type="url" value="" size="30" maxlength="200" autocomplete="url" /></p><p class="form-submit"><input name="submit" type="submit" id="submit" class="submit" value="Отправить комментарий" /> <input type='hidden' name='comment_post_ID' value='21743' id='comment_post_ID' /> <input type='hidden' name='comment_parent' id='comment_parent' value='0' /></p></form></div></div></div><div id="tertiary" class="sidebar-container" role="complementary"><div class="sidebar-inner"><div class="widget-area" id="sidebar-widgets"><aside id="custom_html-5" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><ins class="adsbygoogle" style="display:inline-block;width:100%;height:600px" data-ad-client="ca-pub-1812626643144578" data-ad-slot="6847132033" ></ins> <script>(adsbygoogle = window.adsbygoogle || []).push({});</script></div></aside><aside id="categories-4" class="widget widget_categories"><h3 class="widget-title">Рубрики</h3><ul><li class="cat-item cat-item-22"><a href="https://day24h.ru/category/vodonagrevatel-3">Водонагревател</a></li><li class="cat-item cat-item-12"><a href="https://day24h.ru/category/vodonagrevatel-2">Водонагреватели</a></li><li class="cat-item cat-item-21"><a href="https://day24h.ru/category/mikrovolnov-3">Микроволнов</a></li><li class="cat-item cat-item-3"><a href="https://day24h.ru/category/mikrovolnov">Микроволновые печи</a></li><li class="cat-item cat-item-20"><a href="https://day24h.ru/category/posudomoechn-3">Посудомоечн</a></li><li class="cat-item cat-item-7"><a href="https://day24h.ru/category/posudomoechn">Посудомоечные машины</a></li><li class="cat-item cat-item-17"><a href="https://day24h.ru/category/pylesos-3">Пылесос</a></li><li class="cat-item cat-item-4"><a href="https://day24h.ru/category/pylesos">Пылесосы</a></li><li class="cat-item cat-item-10"><a href="https://day24h.ru/category/raznoe-2">Разное</a></li><li class="cat-item cat-item-2"><a href="https://day24h.ru/category/raznoe">Советы мастера</a></li><li class="cat-item cat-item-19"><a href="https://day24h.ru/category/stiraln-3">Стиральн</a></li><li class="cat-item cat-item-6"><a href="https://day24h.ru/category/stiraln">Стиральные машины</a></li><li class="cat-item cat-item-18"><a href="https://day24h.ru/category/holodilnik">Холодильник</a></li><li class="cat-item cat-item-5"><a href="https://day24h.ru/category/xolodilnik">Холодильники</a></li><li class="cat-item cat-item-14"><a href="https://day24h.ru/category/mikrovolnov-2">Эксплуатация микроволновой печи</a></li><li class="cat-item cat-item-15"><a href="https://day24h.ru/category/posudomoechn-2">Эксплуатация посудомоечной машины</a></li><li class="cat-item cat-item-16"><a href="https://day24h.ru/category/pylesos-2">Эксплуатация пылесоса</a></li><li class="cat-item cat-item-11"><a href="https://day24h.ru/category/stiraln-2">Эксплуатация стиральной машины</a></li><li class="cat-item cat-item-13"><a href="https://day24h.ru/category/xolodilnik-2">Эксплуатация холодильника</a></li><li class="cat-item cat-item-8"><a href="https://day24h.ru/category/vodonagrevatel">Электрические водонагреватели</a></li></ul></aside><aside id="custom_html-4" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><style>iframe,object{width:100%;height:480px}img{max-width:100%}</style><script type="text/javascript">jQuery(document).ready(function($){$('.mylink').replaceWith(function(){return'<a href="'+$(this).attr('data-url')+'" title="'+$(this).attr('title')+'">'+$(this).html()+'</a>'})});new Image().src="//counter.yadro.ru/hit?r"+escape(document.referrer)+((typeof(screen)=="undefined")?"":";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+";"+Math.random();</script> </div></aside><aside id="custom_html-6" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><div id="yandex_rtb_R-A-410873-6"></div> <script type="text/javascript">(function(w, d, n, s, t) { w[n] = w[n] || []; w[n].push(function() { Ya.Context.AdvManager.render({ blockId: "R-A-410873-6", renderTo: "yandex_rtb_R-A-410873-6", async: true }); }); t = d.getElementsByTagName("script")[0]; s = d.createElement("script"); s.type = "text/javascript"; s.src = "//an.yandex.ru/system/context.js"; s.async = true; t.parentNode.insertBefore(s, t); })(this, this.document, "yandexContextAsyncCallbacks");</script></div></aside></div></div></div></div></div><footer id="colophon" class="site-footer" role="contentinfo"><div class="footer-bg clearfix"><div class="widget-wrap"></div></div><div class="site-info"><div class="copyright"> Copyright © Полезные товары</div><div class="credit-info"></div></div></footer></div><style type="text/css">.archive #nav-above,.archive #nav-below,.search #nav-above,.search #nav-below,.blog #nav-below,.blog #nav-above,.navigation.paging-navigation,.navigation.pagination,.pagination.paging-pagination,.pagination.pagination,.pagination.loop-pagination,.bicubic-nav-link,#page-nav,.camp-paging,#reposter_nav-pages,.unity-post-pagination,.wordpost_content .nav_post_link,.page-link,.page-links,#comments .navigation,#comment-nav-above,#comment-nav-below,#nav-single,.navigation.comment-navigation,comment-pagination{display:none!important}.single-gallery .pagination.gllrpr_pagination{display:block!important}</style> <script>if (typeof rb_ajaxurl==='undefined') {var rb_ajaxurl = 'https://day24h.ru/wp-admin/admin-ajax.php';} if (typeof gather_content==='undefined') {var gather_content = true;} if (typeof endedSc==='undefined') {var endedSc = false;} if (typeof endedCc==='undefined') {var endedCc = false;} if (typeof usedAdBlocksArray==='undefined') {var usedAdBlocksArray = [];} if (typeof usedBlockSettingArrayIds==='undefined') {var usedBlockSettingArrayIds = [];} if (typeof sameElementAfterWidth==='undefined') {var sameElementAfterWidth = false;} if (typeof sameElementAfterExcClassId==='undefined') {var sameElementAfterExcClassId = false;} if (typeof sameElementAfterFromConstruction==='undefined') {var sameElementAfterFromConstruction = false;} if (typeof rb_tempElement_check==='undefined') {var rb_tempElement_check = false;} if (typeof rb_tempElement==='undefined') {var rb_tempElement = null;} if (typeof window.jsInputerLaunch==='undefined') {window.jsInputerLaunch = -1;} function launchUpdateRbDisplays() { if ((typeof updateRbDisplays !== 'undefined')&&(typeof updateRbDisplays === 'function')) { updateRbDisplays(); } else { setTimeout(function () { launchUpdateRbDisplays(); }, 200); } } /* "sc" in variables - mark for shortcode variable */ function shortcodesInsert() { let gatheredBlocks = document.querySelectorAll('.percentPointerClass.scMark'), scBlockId = -1, scAdId = -1, blockStatus = '', dataFull = -1, gatheredBlockChild, okStates = ['done','refresh-wait','no-block','fetched'], scContainer, sci, i1 = 0, skyscraperCheck = [], skyscraperStatus = false, splitedSkyscraper = [], gatheredBlockChildSkyParts = [], stickyStatus = false, stickyCheck = [], stickyFixedStatus = false, stickyFixedCheck = [], overflowCheck = [], overflowStatus = false, repeatableIdentifier = "", dataCidIdentifier = null, divCidElement = ''; if (typeof scArray !== 'undefined') { if (scArray&&scArray.length > 0&&gatheredBlocks&&gatheredBlocks.length > 0&&typeof window.rulvW5gntb !== 'undefined') { dataCidIdentifier = window.rulvW5gntb; for (let i = 0; i < gatheredBlocks.length; i++) { gatheredBlockChild = gatheredBlocks[i].children[0]; if (!gatheredBlockChild) { continue; } scAdId = -3; blockStatus = null; scContainer = null; dataFull = -1; skyscraperStatus = false; splitedSkyscraper = []; gatheredBlockChildSkyParts = []; stickyStatus = false; stickyCheck = []; stickyFixedStatus = false; stickyFixedCheck = []; repeatableIdentifier = ""; divCidElement = null; scAdId = gatheredBlockChild.getAttribute('data-aid'); scBlockId = gatheredBlockChild.getAttribute('data-id'); blockStatus = gatheredBlockChild.getAttribute('data-state'); dataFull = gatheredBlockChild.getAttribute('data-full'); if (scBlockId&&scAdId > 0) { sci = -1; for (i1 = 0; i1 < scArray.length; i1++) { if (scBlockId == scArray[i1]['blockId']&&scAdId == scArray[i1]['adId']) { sci = i1; } } if (sci > -1) { if (blockStatus&&okStates.includes(blockStatus)) { if (blockStatus=='no-block') { gatheredBlockChild.innerHTML = ''; } else if ((blockStatus=='fetched'&&dataFull==1)||!['no-block','fetched'].includes(blockStatus)) { for (let cl1 = 0; cl1 < gatheredBlocks[i].classList.length; cl1++) { if (gatheredBlocks[i].classList[cl1].includes("repeatable-mark")) { repeatableIdentifier = gatheredBlocks[i].classList[cl1]; } } if (repeatableIdentifier) { divCidElement = document.querySelectorAll(".percentPointerClass.scMark."+repeatableIdentifier+' div[data-cid="'+dataCidIdentifier+'"]'); } else { divCidElement = gatheredBlockChild.querySelectorAll('div[data-cid="'+dataCidIdentifier+'"]'); } if (divCidElement&&divCidElement.length > 0) { for (let i2 = 0; i2 < divCidElement.length; i2++) { jQuery(divCidElement[i2]).html(scArray[sci]['text']); } } else { jQuery(gatheredBlockChild).html(scArray[sci]['text']); } launchUpdateRbDisplays(); } if (blockStatus!='fetched'||(blockStatus=='fetched'&&dataFull==1)) { for (i1 = 0; i1 < scArray.length; i1++) { if (scBlockId == scArray[i1]['blockId']) { scArray.splice(i1, 1); i1--; } } gatheredBlocks[i].classList.remove('scMark'); } } } } else if (scBlockId&&scAdId < 1&&['no-block','fetched'].includes(blockStatus)) { for (i1 = 0; i1 < scArray.length; i1++) { if (scBlockId == scArray[i1]['blockId']) { scArray.splice(i1, 1); i1--; } } gatheredBlocks[i].classList.remove('scMark'); } } } else if (!scArray||(scArray&&scArray.length < 1)) { endedSc = true; } } else { endedSc = true; } if (!endedSc) { setTimeout(function () { shortcodesInsert(); }, 200); } } function clearUnsuitableCache(cuc_cou) { let scAdId = -1; let ccRepeat = false; let gatheredBlocks = document.querySelectorAll('.percentPointerClass .' + block_classes.join(', .percentPointerClass .')); if (gatheredBlocks&&gatheredBlocks.length > 0) { for (let i = 0; i < gatheredBlocks.length; i++) { if (gatheredBlocks[i]['dataset']['aid']&&gatheredBlocks[i]['dataset']['aid'] < 0) { if ((gatheredBlocks[i]['dataset']["state"]=='no-block')||(['done','fetched','refresh-wait'].includes(gatheredBlocks[i]['dataset']["state"]))) { gatheredBlocks[i]['innerHTML'] = ''; } else { ccRepeat = true; } } else if (!gatheredBlocks[i]['dataset']['aid']) { ccRepeat = true; } } if (cuc_cou < 50) { if (ccRepeat) { setTimeout(function () { clearUnsuitableCache(cuc_cou+1); }, 100); } } else { endedCc = true; } } else { endedCc = true; } } function blocksRepositionUse(containerString, blType, searchType, contentElement) { let blocksInContainer; let blLocal = blType; let currentBlock; let currentBlockId; let currentBlockPosition; let currentContainer; let i = 0; let j = 0; let blockStrJs = ' .percentPointerClass.marked'; let blockStrPhp = ' .percentPointerClass:not(.marked)'; let blockStr = ' .percentPointerClass'; let checkPointer = null; let blockRepeatEnd = false; if (searchType) { if (searchType == 'marked') { while (!blockRepeatEnd) { blLocal = blLocal.parentElement; if (blLocal) { checkPointer = blLocal.querySelector("#content_pointer_id"); if (!checkPointer) { blocksInContainer = jQuery(blLocal).parent(containerString); if (blocksInContainer && blocksInContainer.length > 0) { /* checkPointer = blocksInContainer.querySelector("#content_pointer_id"); */ checkPointer = jQuery(blocksInContainer).find("#content_pointer_id"); if (checkPointer && checkPointer.length > 0) { blocksInContainer = null; } blockRepeatEnd = true; } } else { blockRepeatEnd = true } } else { blockRepeatEnd = true } } /* blocksInContainer = jQuery(blType).parent(containerString); */ if (blocksInContainer&&blocksInContainer.length > 0) { /* blocksInContainer.parentNode.insertBefore(rb_tempElement, blocksInContainer); */ blocksInContainer[0].parentNode.insertBefore(rb_tempElement, blocksInContainer[0]); sameElementAfterExcClassId = false; return blocksInContainer[0]; } return blType; } else if (searchType == 'non-marked') { blocksInContainer = document.querySelectorAll(blType + containerString + blockStrPhp); if (blocksInContainer && blocksInContainer.length > 0 && usedBlockSettingArray && usedBlockSettingArray.length > 0) { for (i = 0; i < blocksInContainer.length; i++) { currentBlock = blocksInContainer[i]; currentBlockId = currentBlock.querySelector('.' + block_classes.join(', .')).getAttribute('data-id'); currentContainer = null; for (j = 0; j < usedBlockSettingArray.length; i++) { if (usedBlockSettingArray[i]['id'] == currentBlockId) { currentBlockPosition = usedBlockSettingArray[i]['elementPosition']; currentContainer = currentBlock.closest(blType + containerString); if (currentBlockPosition == 0) { currentContainer.parentNode.insertBefore(currentBlock, currentContainer); } else { currentContainer.parentNode.insertBefore(currentBlock, currentContainer.nextSibling); } break; } } } } } } return false; } function createStyleElement(blockNumber, localElementCss) { let htmlToAdd = ''; let marginString; let textAlignString; let contPoi; let emptyValues = false; let elementToAddStyleLocal = document.querySelector('#blocksAlignStyle'); if (!elementToAddStyleLocal) { contPoi = document.querySelector('#content_pointer_id'); if (!contPoi) { return false; } elementToAddStyleLocal = document.createElement('style'); elementToAddStyleLocal.setAttribute('id', 'blocksAlignStyle'); contPoi.parentNode.insertBefore(elementToAddStyleLocal, contPoi); } switch (localElementCss) { case 'left': emptyValues = false; marginString = '0 auto 0 0'; textAlignString = 'left'; break; case 'right': emptyValues = false; marginString = '0 0 0 auto'; textAlignString = 'right'; break; case 'center': emptyValues = false; marginString = '0 auto'; textAlignString = 'center'; break; case 'default': emptyValues = true; marginString = 'default'; textAlignString = 'default'; /** here will be css */ break; } if (!emptyValues) { htmlToAdd = '.percentPointerClass > *[data-id="'+blockNumber+'"] {\n' + ' margin: '+marginString+';\n' + '}\n'; } elementToAddStyleLocal.innerHTML += htmlToAdd; return textAlignString; } function initTargetToInsert(position, type, currentElement) { let posCurrentElement; let usedElement; if (type == 'element') { if (position == 0) { posCurrentElement = currentElement; if (!(typeof obligatoryMargin!=='undefined'&&obligatoryMargin===1)) { currentElement.classList.add('rfwp_removedMarginTop'); } } else { posCurrentElement = currentElement.nextSibling; if (!(typeof obligatoryMargin!=='undefined'&&obligatoryMargin===1)) { currentElement.classList.add('rfwp_removedMarginBottom'); } } currentElement.style.clear = 'both'; } else { usedElement = currentElement; if (position == 0) { posCurrentElement = usedElement; } else { posCurrentElement = usedElement.nextSibling; } } return posCurrentElement; } function checkAdsWidth(content_pointer, posCurrentElement, currentElement) { let widthChecker = document.querySelector('#widthChecker'); let widthCheckerStyle = null; let content_pointerStyle = getComputedStyle(content_pointer); /* let getPositionForTempElement = null; let testImgDetected = false; let testImg; let testImageCompWidth; let testImgCou = 0 let figureChilds; let figureComWidth; let fcCou = 0; */ let content = content_pointer.parentElement; if (!widthChecker) { widthChecker = document.createElement("div"); widthChecker.setAttribute('id','widthChecker'); widthChecker.style.display = 'flex'; } if (content) { posCurrentElement = initTargetToInsert(posCurrentElement, 'term', currentElement); currentElement.parentNode.insertBefore(widthChecker, posCurrentElement); widthCheckerStyle = getComputedStyle(widthChecker); /* testImg = currentElement.previousSibling; if (testImg) { while (!testImgDetected&&testImgCou<4) { if (testImg&&testImg.nodeName.toLowerCase() === 'figure') { figureComWidth = getComputedStyle(testImg); figureComWidth = parseInt(figureComWidth.width); figureChilds = testImg.childNodes; if (figureChilds&&figureChilds.length > 0) { while (!testImgDetected&&figureChilds[fcCou]) { if (figureChilds[fcCou] instanceof HTMLImageElement) { testImgDetected = true; testImageCompWidth = getComputedStyle(figureChilds[fcCou]); testImageCompWidth = parseInt(testImageCompWidth.width); console.log('img_f_w:'+figureComWidth+'; img_w:'+testImageCompWidth+';'); } fcCou++; } } } if (testImg instanceof HTMLImageElement) { testImgDetected = true; testImageCompWidth = getComputedStyle(testImg); testImageCompWidth = parseInt(testImageCompWidth.width); console.log('img_w:'+testImageCompWidth+';'); } if (!testImg.previousSibling) { break; } testImg = testImg.previousSibling; testImgCou++; } } console.log('cp_w:'+parseInt(content_pointerStyle.width)+'; wc_w:'+parseInt(widthCheckerStyle.width)+';'); */ if (parseInt(widthCheckerStyle.width) >= (parseInt(content_pointerStyle.width) - 50)) { return true; } } currentElement.parentNode.insertBefore(rb_tempElement, currentElement.nextSibling); rb_tempElement_check = true; return false; } /* function currentElementReceiver(revert, curSum, elList, currentElement) { let origCurrentElement = currentElement; let content_pointer = document.querySelector("#content_pointer_id"); let sameElementAfterWidth = false; let testCou = 0; while (elList[curSum]&&sameElementAfterWidth==false&&testCou < 5) { currentElement = elList[curSum]; try { sameElementAfterWidth=true; sameElementAfterWidth = checkAdsWidth(content_pointer, 0, currentElement); } catch (ex) { console.log(ex.message); } revert? curSum--: curSum++; testCou++; } return currentElement?currentElement:origCurrentElement; } */ function currentElementReceiverSpec(revert, curSum, elList, currentElement) { let origCurrentElement = currentElement; let content_pointer = document.querySelector("#content_pointer_id"); /* orig */ let sameElementAfterWidth = false; let testCou = 0; while (elList[curSum]&&sameElementAfterWidth==false&&testCou < 5) { currentElement = elList[curSum]['element']; try { sameElementAfterWidth=true; sameElementAfterWidth = checkAdsWidth(content_pointer, 0, currentElement); } catch (ex) { console.log(ex.message); } revert? curSum--: curSum++; testCou++; } return currentElement?currentElement:origCurrentElement; } function excIdClUnpacker() { let excArr = [], cou = 0, currExcStr = '', curExcFirst = ''; excArr['id'] = []; excArr['class'] = []; excArr['tag'] = []; if (excIdClass&&excIdClass.length > 0) { while (excIdClass[cou]) { currExcStr = excIdClass[cou]; if (currExcStr.length > 0) { curExcFirst = currExcStr.substring(0,1); switch (curExcFirst) { case '#': if (currExcStr.length > 1) { currExcStr = currExcStr.substring(1); excArr['id'].push(currExcStr); } break; case '.': if (currExcStr.length > 1) { currExcStr = currExcStr.substring(1); excArr['class'].push(currExcStr); } break; default: excArr['tag'].push(currExcStr); break; } cou++; } } } return excArr; } function asyncBlocksInsertingFunction(blockSettingArray) { try { var content_pointer = document.querySelector("#content_pointer_id"); /* orig */ var parent_with_content = content_pointer.parentElement; var lordOfElements = parent_with_content; parent_with_content = parent_with_content.parentElement; var newElement = document.createElement("div"); var elementToAdd; var elementToAddStyle; var poolbackI = 0; var counter = 0; var currentElement; var repeatableCurrentElement; var repeatableSuccess; var reCou; var curFirstPlace; var curElementCount; var curElementStep; var backElement = 0; var sumResult = 0; var curSumResult = 0; var repeat = false; var currentElementChecker = false; let containerFor6th = []; let containerFor7th = []; var posCurrentElement; var block_number; let contentLength = content_pointer.getAttribute('data-content-length'); let rejectedBlocks = content_pointer.getAttribute('data-rejected-blocks'); if (rejectedBlocks&&rejectedBlocks.length > 0) { rejectedBlocks = rejectedBlocks.split(','); } let widthCheck = false; let currentElementList; var testElement1 = null; var termorarity_parent_with_content = parent_with_content; var termorarity_parent_with_content_length = 0; var headersList = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']; for (var hc1 = 0; hc1 < headersList.length; hc1++) { termorarity_parent_with_content_length += termorarity_parent_with_content.getElementsByTagName(headersList[hc1]).length; } let detailedElementList; let ExcStrCou = 1; let detailedQueryString; let usedElement; let tagList = []; let localSumResult; let binderName; var removeClearing; var repeatableBlockIdentifier = 0; var i; if (contentLength < 1) { contentLength = parent_with_content.innerText.length } rb_tempElement = document.querySelector('#rb_tempElement'); if (!rb_tempElement) { rb_tempElement = document.createElement('span'); rb_tempElement.setAttribute('id', 'rb_tempElement'); } function getFromConstructions(currentElement) { if (currentElement.parentElement.tagName.toLowerCase() == "blockquote") { currentElement = currentElement.parentElement; /* initTargetToInsert(blockSettingArray, 'element', currentElement); */ currentElement.parentNode.insertBefore(rb_tempElement, currentElement); rb_tempElement_check = true; sameElementAfterFromConstruction=false; } else if (["tr","td","th","thead","tbody","table"].includes(currentElement.parentElement.tagName.toLowerCase())) { currentElement = currentElement.parentElement; while (["tr","td","th","thead","tbody","table"].includes(currentElement.parentElement.tagName.toLowerCase())) { currentElement = currentElement.parentElement; } currentElement.parentNode.insertBefore(rb_tempElement, currentElement); rb_tempElement_check = true; sameElementAfterFromConstruction=false; } return currentElement; } function directClassElementDetecting(blockSettingArray, directElement) { let findQuery = 0; let directClassElementResult = []; currentElement = document.querySelectorAll(directElement); if (currentElement.length > 0) { if (blockSettingArray[i]['elementPlace'] > 1) { if (currentElement.length >= blockSettingArray[i]['elementPlace']) { currentElement = currentElement[blockSettingArray[i]['elementPlace']-1]; } else if (currentElement.length < blockSettingArray[i]['elementPlace']) { currentElement = currentElement[currentElement.length - 1]; } else { findQuery = 1; } } else if (blockSettingArray[i]['elementPlace'] < 0) { if ((currentElement.length + blockSettingArray[i]['elementPlace'] + 1) > 0) { currentElement = currentElement[currentElement.length + blockSettingArray[i]['elementPlace']]; } else { findQuery = 1; } } else { findQuery = 1; } } else { findQuery = 1; } directClassElementResult['findQuery'] = findQuery; directClassElementResult['currentElement'] = currentElement; return directClassElementResult; } function placingToH1(usedElement, elementTagToFind) { let uselessLet; currentElement = usedElement.querySelectorAll(elementTagToFind); if (currentElement.length < 1) { if (usedElement.parentElement) { uselessLet = placingToH1(usedElement.parentElement, elementTagToFind); } } return currentElement; } function elementsCleaning(excArr, elList, pwcLocal, gatherString) { let markedClass = 'rb_m_inc'; let markedClassBad = 'rb_m_exc'; let cou = 0; let cou1 = 0; let finalArr = []; let finalArrClear = []; let checkNearest; let outOfRangeCheck; let gatherRejected; let allower; try { while (elList[cou]) { allower = true; if (!elList[cou].classList.contains(markedClassBad)) { if (excArr&&excArr.length > 0) { cou1 = 0; while (excArr[cou1]) { checkNearest = elList[cou].parentElement.closest(excArr[cou1]); if (checkNearest) { checkNearest.classList.add('currClosest'); outOfRangeCheck = pwcLocal.querySelector('.currClosest'); if (outOfRangeCheck) { allower = false; checkNearest.classList.add(markedClass); gatherRejected = checkNearest.querySelectorAll(gatherString); if (gatherRejected.length > 0) { for (let i1 = 0; i1 < gatherRejected.length; i1++) { gatherRejected[i1].classList.add(markedClassBad); } } } checkNearest.classList.remove('currClosest'); } cou1++; } } if (allower===true) { elList[cou].classList.add(markedClass); /* finalArr.push(elList[cou]); */ } } cou++; } finalArr = pwcLocal.querySelectorAll('.'+markedClass+':not('+markedClassBad+')'); finalArrClear = pwcLocal.querySelectorAll('.'+markedClass+',.'+markedClassBad); if (finalArrClear&&finalArrClear.length > 0) { for (let i1 = 0; i1 < finalArrClear.length; i1++) { finalArrClear[i1].classList.remove(markedClass,markedClassBad); } } } catch (er) { console.log(er.message); } return finalArr; } function cureentElementsGather(usedElement, loopLimit = 2, localPwc = parent_with_content) { let curElementSearchRepeater = true; let curElementSearchCounter = 0; let currentElementLoc = null; let ExcludedStringBegin = ''; let ExcludedString = ''; let ExcludedStringEnd = ''; let tagListString = ''; let tagListStringExc = ''; let cou = 0; /* let excArr = excIdClUnpacker(); */ let tagListCou = 0; if (usedElement=='h1') { currentElementLoc = placingToH1(localPwc, usedElement); } else { if (usedElement=='h2-4') {tagList = ['h2','h3','h3'];} else {tagList = [usedElement]; } while (tagList[tagListCou]) { tagListString += ((cou++>0)?',':'')+tagList[tagListCou]; tagListStringExc += ':not('+tagList[tagListCou]+')'; tagListCou++; } ExcludedString = ''; if (excIdClass&&excIdClass.length > 0) { for (let i2 = 0; i2 < excIdClass.length; i2++) { if (excIdClass[i2].length > 0) { ExcludedString += (i2>0?',':'')+excIdClass[i2]+tagListStringExc; } } } detailedQueryString += tagListString+','+ExcludedString; /* console.log(detailedQueryString); */ while (curElementSearchRepeater&&curElementSearchCounter < loopLimit) { try { currentElementLoc = localPwc.querySelectorAll(tagListString); } catch (e1) {console.log(e1.message);} if (!currentElementLoc) { if (localPwc.parentElement) { localPwc = localPwc.parentElement; } else { break; } } else { currentElementLoc = elementsCleaning(excIdClass, currentElementLoc, localPwc, detailedQueryString); curElementSearchRepeater = false; } curElementSearchCounter++; } } return currentElementLoc; } function currentElementReceiver(revert, localCurEl = currentElement) { let origCurEl = localCurEl; curSumResult = sumResult; detailedElementList = localCurEl; sameElementAfterWidth = false; let testCou = 0; while (detailedElementList[curSumResult]&&sameElementAfterWidth==false&&testCou < 8) { localCurEl = detailedElementList[curSumResult]; try { sameElementAfterWidth=true; sameElementAfterWidth = checkAdsWidth(content_pointer, blockSettingArray[i]["elementPosition"], localCurEl); } catch (ex) { console.log(ex.message); } revert? curSumResult--: curSumResult++; testCou++; } if (localCurEl) { currentElementChecker = true; } return localCurEl?localCurEl:origCurEl; } function endingActions(block_number) { usedBlockSettingArrayIds.push(block_number); blockSettingArray.splice(i--, 1); poolbackI = 1; } for (i = 0; i < blockSettingArray.length; i++) { currentElement = null; currentElementChecker = false; sameElementAfterWidth = false; sameElementAfterExcClassId = false; sameElementAfterFromConstruction = false; tagListCou = 0; poolbackI = 0; detailedQueryString = ''; binderName = elementBinderNameGenerator(); try { if (!blockSettingArray[i]["text"] ||(blockSettingArray[i]["text"]&&blockSettingArray[i]["text"].length < 1) ||(rejectedBlocks&&rejectedBlocks.includes(blockSettingArray[i]["id"])) ||((blockSettingArray[i]["maxHeaders"] > 0)&&(blockSettingArray[i]["maxHeaders"] < parseInt(termorarity_parent_with_content_length))) ||((blockSettingArray[i]["maxSymbols"] > 0)&&(blockSettingArray[i]["maxSymbols"] < parseInt(contentLength))) ||(content_pointer.classList.contains("hard-content")&&blockSettingArray[i]["setting_type"]!=3) ) { blockSettingArray.splice(i--, 1); poolbackI = 1; continue; } block_number = 0; elementToAdd = document.createElement("div"); elementToAdd.classList.add("percentPointerClass"); elementToAdd.classList.add("marked"); if (blockSettingArray[i]["sc"]==1) { elementToAdd.classList.add("scMark"); } elementToAdd.innerHTML = blockSettingArray[i]["text"]; elementToAdd.dataset.rbinder = binderName; block_number = elementToAdd.children[0].attributes['data-id'].value; if (blockDuplicate == 'no') { if (usedBlockSettingArrayIds.length > 0) { for (let i1 = 0; i1 < usedBlockSettingArrayIds.length; i1++) { if (block_number==usedBlockSettingArrayIds[i1]) { blockSettingArray.splice(i--, 1); poolbackI = 1; break; } } if (poolbackI == 1) { continue; } } } elementToAddStyle = createStyleElement(block_number, blockSettingArray[i]["elementCss"]); if (elementToAddStyle&&elementToAddStyle!='default') { elementToAdd.style.textAlign = elementToAddStyle; } if ((blockSettingArray[i]["minHeaders"] > 0)&&(blockSettingArray[i]["minHeaders"] > termorarity_parent_with_content_length)) {continue;} if (blockSettingArray[i]["minSymbols"] > contentLength) {continue;} if (blockSettingArray[i]["setting_type"] == 1) { currentElement = cureentElementsGather(blockSettingArray[i]["element"].toLowerCase()); if (currentElement) { if (blockSettingArray[i]["elementPlace"] < 0) { sumResult = currentElement.length + blockSettingArray[i]["elementPlace"]; if (sumResult >= 0 && sumResult < currentElement.length) { currentElement = currentElementReceiver(true); } } else { sumResult = blockSettingArray[i]["elementPlace"] - 1; if (sumResult < currentElement.length) { currentElement = currentElementReceiver(false); } } } if (currentElement != undefined && currentElement != null && currentElementChecker) { posCurrentElement = initTargetToInsert(blockSettingArray[i]["elementPosition"], 'element', currentElement); currentElement.parentNode.insertBefore(elementToAdd, posCurrentElement); currentElement.classList.add('rbinder-'+binderName); elementToAdd.classList.remove('coveredAd'); usedBlockSettingArrayIds.push(block_number); blockSettingArray.splice(i--, 1); poolbackI = 1; rb_tempElement_check = false; } else { repeat = true; } } else if (blockSettingArray[i]["setting_type"] == 2) { if (blockDuplicate == 'no') { blockSettingArray[i]["elementCount"] = 1; } repeatableCurrentElement = []; reCou = 0; curFirstPlace = blockSettingArray[i]["firstPlace"]; curElementCount = blockSettingArray[i]["elementCount"]; curElementStep = blockSettingArray[i]["elementStep"]; repeatableSuccess = false; elementToAddStyle = createStyleElement(block_number, blockSettingArray[i]["elementCss"]); repeatableCurrentElement = cureentElementsGather(blockSettingArray[i]["element"].toLowerCase()); if (repeatableCurrentElement) { for (let i1 = 0; i1 < blockSettingArray[i]["elementCount"]; i1++) { currentElementChecker = false; let repElementToAdd = document.createElement("div"); repElementToAdd.classList.add("percentPointerClass"); repElementToAdd.classList.add("marked"); if (blockSettingArray[i]["sc"]==1) { repElementToAdd.classList.add("scMark"); } repElementToAdd.classList.add("repeatable-mark-"+repeatableBlockIdentifier); repElementToAdd.innerHTML = blockSettingArray[i]["text"]; if (elementToAddStyle&&elementToAddStyle!='default') { repElementToAdd.style.textAlign = elementToAddStyle; } sumResult = Math.round(parseInt(blockSettingArray[i]["firstPlace"]) + (i1*parseInt(blockSettingArray[i]["elementStep"])) - 1); if (sumResult < repeatableCurrentElement.length) { currentElement = currentElementReceiver(false, repeatableCurrentElement); } if (currentElement != undefined && currentElement != null && currentElementChecker) { posCurrentElement = initTargetToInsert(blockSettingArray[i]["elementPosition"], 'element', currentElement); currentElement.parentNode.insertBefore(repElementToAdd, posCurrentElement); currentElement.classList.add('rbinder-'+binderName); repElementToAdd.classList.remove('coveredAd'); curFirstPlace = sumResult + parseInt(blockSettingArray[i]["elementStep"]) + 1; curElementCount--; repeatableSuccess = true; } else { repeatableSuccess = false; break; } } } if (repeatableSuccess==true) { usedBlockSettingArrayIds.push(block_number); blockSettingArray.splice(i--, 1); poolbackI = 1; repeatableBlockIdentifier++; } else { if (!blockSettingArray[i]["unsuccess"]) { blockSettingArray[i]["unsuccess"] = 1; } else { blockSettingArray[i]["unsuccess"] = Math.round(blockSettingArray[i]["unsuccess"] + 1); } if (blockSettingArray[i]["unsuccess"] > 10) { usedBlockSettingArrayIds.push(block_number); blockSettingArray.splice(i--, 1); poolbackI = 1; } else { blockSettingArray[i]["firstPlace"] = curFirstPlace; blockSettingArray[i]["elementCount"] = curElementCount; blockSettingArray[i]["elementStep"] = curElementStep; repeat = true; } } } else if (blockSettingArray[i]["setting_type"] == 3) { let elementTypeSymbol = ''; let elementSpaceSymbol = ''; let elementName = ''; let elementType = ''; let elementTag = ''; let findQuery = 0; let directClassResult = []; let directElement = blockSettingArray[i]["directElement"].trim(); if (directElement.search('#') > -1) { findQuery = 1; } else if ((directElement.search('#') < 0)&&(directElement.search('.') > -1)) { directClassResult = directClassElementDetecting(blockSettingArray, directElement); findQuery = directClassResult['findQuery']; currentElement = directClassResult['currentElement']; } if (findQuery == 1) { currentElement = document.querySelector(directElement); } if (currentElement) { currentElementChecker = true; } if (currentElement != undefined && currentElement != null && currentElementChecker) { posCurrentElement = initTargetToInsert(blockSettingArray[i]["elementPosition"], 'element', currentElement); currentElement.parentNode.insertBefore(elementToAdd, posCurrentElement); elementToAdd.classList.remove('coveredAd'); currentElement.classList.add('rbinder-'+binderName); usedBlockSettingArrayIds.push(block_number); blockSettingArray.splice(i--, 1); poolbackI = 1; } else { repeat = true; } } else if (blockSettingArray[i]["setting_type"] == 4) { document.querySelector("#content_pointer_id").parentElement.append(elementToAdd); usedBlockSettingArrayIds.push(block_number); blockSettingArray.splice(i--, 1); poolbackI = 1; } else if (blockSettingArray[i]["setting_type"] == 5) { let currentElementList = cureentElementsGather('p', 1, content_pointer.parentElement); if (currentElementList&¤tElementList.length > 0) { let pCount = currentElementList.length; let elementNumber = Math.round(pCount/2); if (pCount > 1) { currentElement = currentElementList[elementNumber+1]; } if (currentElement != undefined && currentElement != null) { if (pCount > 1) { currentElement.parentNode.insertBefore(elementToAdd, currentElement); } else { currentElement.parentNode.insertBefore(elementToAdd, currentElement.nextSibling); } elementToAdd.classList.remove('coveredAd'); currentElement.classList.add('rbinder-'+binderName); usedBlockSettingArrayIds.push(block_number); blockSettingArray.splice(i--, 1); poolbackI = 1; } else { repeat = true; } } else { repeat = true; } } else if (blockSettingArray[i]["setting_type"] == 6) { if (containerFor6th.length > 0) { for (let j = 0; j < containerFor6th.length; j++) { if (containerFor6th[j]["elementPlace"]<blockSettingArray[i]["elementPlace"]) { /* continue; */ if (j == containerFor6th.length-1) { containerFor6th.push(blockSettingArray[i]); /* usedAdBlocksArray.push(checkIfBlockUsed); */ usedBlockSettingArrayIds.push(block_number); blockSettingArray.splice(i--, 1); poolbackI = 1; break; } } else { for (let k = containerFor6th.length-1; k > j-1; k--) { containerFor6th[k + 1] = containerFor6th[k]; } containerFor6th[j] = blockSettingArray[i]; /* usedAdBlocksArray.push(checkIfBlockUsed); */ usedBlockSettingArrayIds.push(block_number); blockSettingArray.splice(i--, 1); poolbackI = 1; break; } } } else { containerFor6th.push(blockSettingArray[i]); usedBlockSettingArrayIds.push(block_number); blockSettingArray.splice(i--, 1); poolbackI = 1; } /* vidpravutu v vidstiinuk dlya 6ho tipa */ } else if (blockSettingArray[i]["setting_type"] == 7) { if (containerFor7th.length > 0) { for (let j = 0; j < containerFor7th.length; j++) { if (containerFor7th[j]["elementPlace"]<blockSettingArray[i]["elementPlace"]) { /* continue; */ if (j == containerFor7th.length-1) { containerFor7th.push(blockSettingArray[i]); usedBlockSettingArrayIds.push(block_number); blockSettingArray.splice(i--, 1); poolbackI = 1; break; } } else { for (let k = containerFor7th.length-1; k > j-1; k--) { containerFor7th[k + 1] = containerFor7th[k]; } containerFor7th[j] = blockSettingArray[i]; usedBlockSettingArrayIds.push(block_number); blockSettingArray.splice(i--, 1); poolbackI = 1; break; } } } else { containerFor7th.push(blockSettingArray[i]); usedBlockSettingArrayIds.push(block_number); blockSettingArray.splice(i--, 1); poolbackI = 1; } /* vidpravutu v vidstiinuk dlya 7ho tipa */ } } catch (e) { console.log(e.message); } } var array = textLengthGatherer(lordOfElements), tlArray = array.array, length = array.length; if (containerFor6th.length > 0) { percentInserter(lordOfElements, containerFor6th, tlArray, length); } if (containerFor7th.length > 0) { symbolInserter(lordOfElements, containerFor7th, tlArray); } shortcodesInsert(); let stopper = 0; window.addEventListener('load', function () { if (repeat = true) { setTimeout(function () { /* asyncBlocksInsertingFunction(blockSettingArray, contentLength) */ asyncBlocksInsertingFunction(blockSettingArray); }, 100); } }); } catch (e) { console.log(e.message); } } function possibleTagsInCheckConfirmer(possibleTagsArray, possibleTagsInCheck) { if (possibleTagsArray.includes("LI")) { if (possibleTagsArray.includes("UL")) { possibleTagsInCheck.push("UL"); } if (possibleTagsArray.includes("OL")) { possibleTagsInCheck.push("OL"); } } return false; } function textLengthGatherer(lordOfElementsLoc) { var possibleTagsArray; if (typeof tagsListForTextLength!=="undefined") { possibleTagsArray = tagsListForTextLength; } else { possibleTagsArray = ["P", "H1", "H2", "H3", "H4", "H5", "H6", "DIV", "BLOCKQUOTE", "INDEX", "ARTICLE", "SECTION"]; } let possibleTagsInCheck = ["DIV", "INDEX", "SECTION"]; possibleTagsInCheckConfirmer(possibleTagsArray, possibleTagsInCheck); let excArr = excIdClUnpacker(), textLength = 0, tlArray = []; function textLengthGathererRec(lordOfElementsLoc) { let allowed; let cou1; let classesArray; let countSuccess = 0; try { for (let i = 0; i < lordOfElementsLoc.children.length; i++) { if (possibleTagsArray.includes(lordOfElementsLoc.children[i].tagName) &&!lordOfElementsLoc.children[i].classList.contains("percentPointerClass") &&lordOfElementsLoc.children[i].id!="toc_container" ) { if (possibleTagsInCheck.includes(lordOfElementsLoc.children[i].tagName) &&(lordOfElementsLoc.children[i].children.length > 0) ) { allowed = true; if (lordOfElementsLoc.children[i].id&&excArr['id'].length > 0) { cou1 = 0; while (excArr['id'][cou1]) { if (lordOfElementsLoc.children[i].id.toLowerCase()==excArr['id'][cou1].toLowerCase()) { allowed = false; break; } cou1++; } } if (lordOfElementsLoc.children[i].classList.length > 0&&excArr['class'].length > 0) { cou1 = 0; while (excArr['class'][cou1]) { classesArray = excArr['class'][cou1].split('.'); if (classesArray.every(className => lordOfElementsLoc.children[i].classList.contains(className))) { allowed = false; break; } cou1++; } } if (excArr['tag'].length > 0) { cou1 = 0; while (excArr['tag'][cou1]) { if (lordOfElementsLoc.children[i].tagName.toLowerCase()==excArr['tag'][cou1].toLowerCase()) { allowed = false; break; } cou1++; } } if (allowed) { if (textLengthGathererRec(lordOfElementsLoc.children[i], excArr, possibleTagsArray, possibleTagsInCheck)) { countSuccess++; continue; } } } textLength = textLength + lordOfElementsLoc.children[i].innerText.length; tlArray.push({ tag: lordOfElementsLoc.children[i].tagName, length: lordOfElementsLoc.children[i].innerText.length, lengthSum: textLength, element: lordOfElementsLoc.children[i] }); countSuccess++; } } } catch (er) { console.log(er.message); } return countSuccess > 0; } textLengthGathererRec(lordOfElementsLoc); return {array: tlArray, length: textLength}; } window.asyncFunctionLauncher = function() { if (window.jsInputerLaunch !== undefined &&[15, 10].includes(window.jsInputerLaunch) &&(typeof asyncBlocksInsertingFunction !== 'undefined' ) &&(typeof asyncBlocksInsertingFunction === 'function') &&typeof endedSc!=='undefined'&& typeof endedCc!=='undefined'&& typeof usedAdBlocksArray!=='undefined'&& typeof usedBlockSettingArrayIds!=='undefined'&& typeof sameElementAfterWidth!=='undefined'&& typeof sameElementAfterExcClassId!=='undefined'&& typeof sameElementAfterFromConstruction!=='undefined'&& typeof rb_tempElement_check!=='undefined'&& typeof rb_tempElement!=='undefined'&& typeof window.jsInputerLaunch!=='undefined') { /* asyncBlocksInsertingFunction(blockSettingArray, contentLength); */ asyncBlocksInsertingFunction(blockSettingArray); if (!endedSc) { shortcodesInsert(); } if (!endedCc) { /* clearUnsuitableCache(0); */ } /* blocksReposition(); cachePlacing(); symbolMarkersPlaced(); */ } else { setTimeout(function () { asyncFunctionLauncher(); }, 50); } }; /* asyncFunctionLauncher(); */ function asyncInsertingsInsertingFunction(insertingsArray) { let currentElementForInserting = 0; let currentElementToMove = 0; let positionElement = 0; let position = 0; let insertToAdd = 0; let postId = 0; let repeatSearch = 0; if (insertingsArray&&insertingsArray.length > 0) { for (let i = 0; i < insertingsArray.length; i++) { if (!insertingsArray[i]['used']||(insertingsArray[i]['used']&&insertingsArray[i]['used']==0)) { positionElement = insertingsArray[i]['position_element']; position = insertingsArray[i]['position']; insertToAdd = insertingsArray[i]['content']; postId = insertingsArray[i]['postId']; currentElementForInserting = document.querySelector(positionElement); currentElementToMove = document.querySelector('.coveredInsertings[data-id="'+postId+'"]'); if (currentElementForInserting) { if (position==0) { currentElementForInserting.parentNode.insertBefore(currentElementToMove, currentElementForInserting); currentElementToMove.classList.remove('coveredInsertings'); insertingsArray[i]['used'] = 1; } else { currentElementForInserting.parentNode.insertBefore(currentElementToMove, currentElementForInserting.nextSibling); currentElementToMove.classList.remove('coveredInsertings'); insertingsArray[i]['used'] = 1; } } else { repeatSearch = 1; } } } } if (repeatSearch == 1) { setTimeout(function () { asyncInsertingsInsertingFunction(insertingsArray); }, 100) } } function insertingsFunctionLaunch() { if (window.jsInsertingsLaunch !== undefined&&jsInsertingsLaunch == 25) { asyncInsertingsInsertingFunction(insertingsArray); } else { setTimeout(function () { insertingsFunctionLaunch(); }, 100) } } function setLongCache() { let xhttp = new XMLHttpRequest(); let sendData = 'action=setLongCache&type=longCatching'; xhttp.onreadystatechange = function(redata) { if (this.readyState == 4 && this.status == 200) { console.log('long cache deployed'); } }; xhttp.open("POST", rb_ajaxurl, true); xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhttp.send(sendData); } function cachePlacing(alert_type, errorInfo=null) { let adBlocks = document.querySelectorAll('.percentPointerClass .' + block_classes.join(', .percentPointerClass .')); let curAdBlock; let okStates = ['done','refresh-wait','no-block','fetched']; /* let adId = -1; */ let blockAid = null; let blockId; if (typeof cachedBlocksArray !== 'undefined'&&cachedBlocksArray&&cachedBlocksArray.length > 0&&adBlocks&&adBlocks.length > 0) { for (let i = 0; i < adBlocks.length; i++) { blockAid = adBlocks[i]['dataset']['aid']; if (!blockAid) { blockId = adBlocks[i]['dataset']['id']; if (cachedBlocksArray[blockId]) { jQuery(adBlocks[i]).html(cachedBlocksArray[blockId]); } } } } if (alert_type&&alert_type=='high') { setLongCache(); } } function symbolInserter(lordOfElements, containerFor7th, tlArray) { try { var currentChildrenLength = 0; let previousBreak = 0; let needleLength; let currentSumLength; let elementToAdd; let elementToBind; let elementToAddStyle; let block_number; let binderName; if (!document.getElementById("markedSpan1")) { for (let i = 0; i < containerFor7th.length; i++) { previousBreak = 0; currentChildrenLength = 0; currentSumLength = 0; needleLength = Math.abs(containerFor7th[i]['elementPlace']); binderName = elementBinderNameGenerator(); elementToAdd = document.createElement("div"); elementToAdd.classList.add("percentPointerClass"); elementToAdd.classList.add("marked"); if (containerFor7th[i]["sc"]==1) { elementToAdd.classList.add("scMark"); } elementToAdd.dataset.rbinder = binderName; elementToAdd.innerHTML = containerFor7th[i]["text"]; block_number = elementToAdd.children[0].attributes['data-id'].value; if (!elementToAdd) { continue; } elementToAddStyle = createStyleElement(block_number, containerFor7th[i]["elementCss"]); if (elementToAddStyle&&elementToAddStyle!='default') { elementToAdd.style.textAlign = elementToAddStyle; } if (containerFor7th[i]['elementPlace'] < 0) { for (let j = tlArray.length-1; j > -1; j--) { currentSumLength = currentSumLength + tlArray[j]['length']; if (needleLength < currentSumLength) { elementToBind = tlArray[j]['element']; elementToBind = currentElementReceiverSpec(true, j, tlArray, elementToBind); elementToBind.parentNode.insertBefore(elementToAdd, elementToBind); elementToBind.classList.add('rbinder-'+binderName); elementToAdd.classList.remove('coveredAd'); break; } } } else if (containerFor7th[i]['elementPlace'] == 0) { elementToBind = tlArray[0]['element']; elementToBind.parentNode.insertBefore(elementToAdd, elementToBind); elementToBind.classList.add('rbinder-'+binderName); elementToAdd.classList.remove('coveredAd'); } else { for (let j = 0; j < tlArray.length; j++) { currentSumLength = currentSumLength + tlArray[j]['length']; if (needleLength < currentSumLength) { elementToBind = tlArray[j]['element']; elementToBind = currentElementReceiverSpec(false, j, tlArray, elementToBind); elementToBind.parentNode.insertBefore(elementToAdd, elementToBind.nextSibling); elementToBind.classList.add('rbinder-'+binderName); elementToAdd.classList.remove('coveredAd'); break; } } } } var spanMarker = document.createElement("span"); spanMarker.setAttribute("id", "markedSpan1"); lordOfElements.prepend(spanMarker); } } catch (e) { console.log(e); } } function percentInserter(lordOfElements, containerFor6th, tlArray, textLength) { try { var textNeedyLength = 0; let elementToAdd; var elementToBind; let elementToAddStyle; let block_number; var binderName; /* var checkIfBlockUsed = 0; */ function insertByPercents(textLength) { let localMiddleValue = 0; for (let j = 0; j < containerFor6th.length; j++) { textNeedyLength = Math.round(textLength * (containerFor6th[j]["elementPlace"]/100)); for (let i = 0; i < tlArray.length; i++) { if (tlArray[i]['lengthSum'] >= textNeedyLength) { binderName = elementBinderNameGenerator(); elementToAdd = document.createElement("div"); elementToAdd.classList.add("percentPointerClass"); elementToAdd.classList.add("marked"); if (containerFor6th[j]["sc"]==1) { elementToAdd.classList.add("scMark"); } elementToAdd.dataset.rbinder = binderName; elementToAdd.innerHTML = containerFor6th[j]["text"]; if (!elementToAdd) { break; } block_number = elementToAdd.children[0].attributes['data-id'].value; elementToAddStyle = createStyleElement(block_number, containerFor6th[j]["elementCss"]); if (elementToAddStyle&&elementToAddStyle!='default') { elementToAdd.style.textAlign = elementToAddStyle; } localMiddleValue = tlArray[i]['lengthSum'] - Math.round(tlArray[i]['length']/2); elementToBind = tlArray[i]['element']; currentElementReceiverSpec(false, i, tlArray, elementToBind); if (textNeedyLength < localMiddleValue) { elementToBind.parentNode.insertBefore(elementToAdd, elementToBind); } else { elementToBind.parentNode.insertBefore(elementToAdd, elementToBind.nextSibling); } elementToBind.classList.add('rbinder-'+binderName); elementToAdd.classList.remove('coveredAd'); break; } } } return false; } function clearTlMarks() { let marksForDeleting = document.querySelectorAll('.textLengthMarker'); if (marksForDeleting.length > 0) { for (let i = 0; i < marksForDeleting.length; i++) { marksForDeleting[i].remove(); } } } if (!document.getElementById("markedSpan")) { insertByPercents(textLength); clearTlMarks(); var spanMarker = document.createElement("span"); spanMarker.setAttribute("id", "markedSpan"); lordOfElements.prepend(spanMarker); } } catch (e) { console.log(e.message); } } function saveContentBlock(contentContainer) { try { if (!gather_content) { console.log('content gather save function entered'); let xhttp = new XMLHttpRequest(); let sendData = 'action=RFWP_saveContentContainer&type=gatherContentBlock&data='+contentContainer; xhttp.onreadystatechange = function(redata) { if (this.readyState == 4 && this.status == 200) { console.log('content gather succeed'); } else { console.log('content gather gone wrong'); } }; xhttp.open("POST", rb_ajaxurl, true); xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhttp.send(sendData); } } catch (er) { console.log('content gather error: '+er+';'); } } window.gatherContentBlock = function() { let cPointer = null, cPointerParent = null, cPointerParentString = null, classWords = ['content','entry','post','wrap','description','taxonomy'], classChoosed = false; cPointer = document.querySelector('#content_pointer_id'); if (cPointer) { if (window.jsInputerLaunch!==15) { return false; } cPointerParent = cPointer.parentElement; if (cPointerParent) { if (cPointerParent.id) { cPointerParentString = '#'+cPointerParent.id; } else { if (cPointerParent.classList.length > 0) { cPointerParentString = '.'+cPointerParent.classList[0]; for (let j = 0; j < classWords.length; j++) { for (let i = 0; i < cPointerParent.classList.length; i++) { if (cPointerParent.classList[i].includes(classWords[j])) { cPointerParentString = '.'+cPointerParent.classList[i]; classChoosed = true; break; } } if (classChoosed===true) { break; } } } } if (cPointerParentString) { console.log('content gather content block detected'); /* cPointerParentString = JSON.stringify(cPointerParentString); */ saveContentBlock(cPointerParentString); } } } else { console.log('content gather delayed'); setTimeout(function () { gatherContentBlock(); }, 500); } }; window.removeMarginClass = function(blockObject) { if (blockObject && typeof window.jsInputerLaunch !== 'undefined' && [15, 10].includes(window.jsInputerLaunch)) { let binderName, neededElement, currentDirection, seekerIterationCount, currentSubling; binderName = blockObject.dataset.rbinder; if (binderName) { seekerIterationCount = 0; currentDirection = 'before'; do { seekerIterationCount++; currentSubling = blockObject.nextElementSibling; if (currentSubling&¤tSubling.classList.contains('rbinder-'+binderName)) { neededElement = currentSubling; } } while (currentSubling&&!neededElement&&seekerIterationCount < 5); if (!neededElement) { seekerIterationCount = 0; currentDirection = 'after'; do { seekerIterationCount++; currentSubling = blockObject.previousElementSibling; if (currentSubling&¤tSubling.classList.contains('rbinder-'+binderName)) { neededElement = currentSubling; } } while (currentSubling&&!neededElement&&seekerIterationCount < 5); } if (neededElement) { if (currentDirection === 'before') { neededElement.classList.remove('rfwp_removedMarginTop'); } else { neededElement.classList.remove('rfwp_removedMarginBottom'); } } } } return false; }; function elementBinderNameGenerator() { let binderName = '', checkedElements, passed = false; while (passed===false) { binderName = Math.floor(Math.random()*100000); checkedElements = document.querySelectorAll('[data-rbinder="'+binderName+'"]'); if (checkedElements.length < 1) { passed = true; } } return binderName; }</script> <script>if (typeof rb_ajaxurl==='undefined') {var rb_ajaxurl = 'https://day24h.ru/wp-admin/admin-ajax.php';} if (typeof cache_devices==='undefined') {var cache_devices = true;} var nReadyBlock = false; var fetchedCounter = 0; function sendReadyBlocksNew(blocks) { if (!cache_devices) { let xhttp = new XMLHttpRequest(); let sendData = 'action=saveAdBlocks&type=blocksGethering&data='+blocks; xhttp.onreadystatechange = function(redata) { if (this.readyState == 4 && this.status == 200) { console.log('cache succeed'); } }; xhttp.open("POST", rb_ajaxurl, true); xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhttp.send(sendData); } } function gatherReadyBlocks() { if (block_classes && block_classes.length) { let blocks = {}; let counter1 = 0; let gatheredBlocks = document.querySelectorAll('.' + block_classes.join(', .')); let checker = 0; let adContent = ''; let curState = ''; let thisData = []; let sumData = []; let newBlocks = ''; let thisDataString = ''; if (gatheredBlocks.length > 0) { blocks.data = {}; for (let i = 0; i < gatheredBlocks.length; i++) { curState = gatheredBlocks[i]['dataset']["state"].toLowerCase(); checker = 0; if (curState&&gatheredBlocks[i]['innerHTML'].length > 0&&gatheredBlocks[i]['dataset']['aid'] > 0&&curState!='no-block') { if (gatheredBlocks[i]['innerHTML'].length > 0) { checker = 1; } if (checker==1) { blocks.data[counter1] = {id:gatheredBlocks[i]['dataset']['id'],code:gatheredBlocks[i]['dataset']['aid']}; counter1++; } } } blocks = JSON.stringify(blocks); sendReadyBlocksNew(blocks); } } else nReadyBlock = true; } function timeBeforeGathering() { if (block_classes && block_classes.length > 0) { let gatheredBlocks = document.querySelectorAll('.' + block_classes.join(', .')); let okStates = ['done','refresh-wait','no-block','fetched']; let curState = ''; for (let i = 0; i < gatheredBlocks.length; i++) { if (!gatheredBlocks[i]['dataset']["state"]) { nReadyBlock = true; break; } else { curState = gatheredBlocks[i]['dataset']["state"].toLowerCase(); if (!okStates.includes(curState)) { nReadyBlock = true; break; } else if (curState=='fetched'&&fetchedCounter < 3) { fetchedCounter++; nReadyBlock = true; break; } } } } else nReadyBlock = true; if (nReadyBlock == true) { nReadyBlock = false; setTimeout(timeBeforeGathering,2000); } else { gatherReadyBlocks(); } } function launchTimeBeforeGathering() { if (document.readyState === "complete" || (document.readyState !== "loading" && !document.documentElement.doScroll)) { timeBeforeGathering(); } else { setTimeout(launchTimeBeforeGathering,100); } } launchTimeBeforeGathering();</script> <link rel='preload' id='pgntn_stylesheet-css' href='https://day24h.ru/wp-content/plugins/pagination/css/nav-style.css' as="style" onload="this.onload=null;this.rel='stylesheet'" type='text/css' media='all' /> <script type='text/javascript' src='https://day24h.ru/wp-includes/js/comment-reply.min.js' id='comment-reply-js' defer></script> <script type='text/javascript' src='https://day24h.ru/wp-includes/js/imagesloaded.min.js?ver=4.1.4' id='imagesloaded-js' defer></script> <script type='text/javascript' src='https://day24h.ru/wp-includes/js/masonry.min.js?ver=4.2.2' id='masonry-js' defer></script> <script type='text/javascript' src='https://day24h.ru/wp-includes/js/jquery/jquery.masonry.min.js?ver=3.1.2b' id='jquery-masonry-js' defer></script> <script type='text/javascript' src='https://day24h.ru/wp-content/themes/i-craft/js/modernizr.custom.js?ver=2014-01-13' id='modernizer-custom-js' defer></script> <script type='text/javascript' src='https://day24h.ru/wp-content/themes/i-craft/js/waypoints.min.js?ver=2014-01-13' id='icraft-waypoint-js' defer></script> <script type='text/javascript' src='https://day24h.ru/wp-content/themes/i-craft/js/jquery.sidr.min.js?ver=2014-01-13' id='icraft-sidr-js' defer></script> <script type='text/javascript' src='https://day24h.ru/wp-content/themes/i-craft/js/owl.carousel.min.js?ver=2014-01-13' id='owl-carousel-js' defer></script> <script type='text/javascript' src='https://day24h.ru/wp-content/themes/i-craft/js/functions.js?ver=2013-07-18' id='icraft-script-js' defer></script> <script type='text/javascript' id='q2w3_fixed_widget-js-extra'>/* <![CDATA[ */ var q2w3_sidebar_options = [{"sidebar":"sidebar-2","margin_top":10,"margin_bottom":0,"stop_id":"","screen_max_width":0,"screen_max_height":0,"width_inherit":false,"refresh_interval":1500,"window_load_hook":false,"disable_mo_api":false,"widgets":["custom_html-6"]}]; /* ]]> */</script> <script type='text/javascript' src='https://day24h.ru/wp-content/plugins/q2w3-fixed-widget/js/q2w3-fixed-widget.min.js?ver=5.1.9' id='q2w3_fixed_widget-js' defer></script> <script type='text/javascript' src='https://day24h.ru/wp-content/plugins/easy-table-of-contents/vendor/smooth-scroll/jquery.smooth-scroll.min.js?ver=1.5.5' id='jquery-smooth-scroll-js' defer></script> <script type='text/javascript' src='https://day24h.ru/wp-content/plugins/easy-table-of-contents/vendor/js-cookie/js.cookie.min.js?ver=2.0.3' id='js-cookie-js' defer></script> <script type='text/javascript' src='https://day24h.ru/wp-content/plugins/easy-table-of-contents/vendor/sticky-kit/jquery.sticky-kit.min.js?ver=1.9.2' id='jquery-sticky-kit-js' defer></script> <script type='text/javascript' src='https://day24h.ru/wp-content/plugins/easy-table-of-contents/vendor/waypoints/jquery.waypoints.min.js?ver=1.9.2' id='jquery-waypoints-js' defer></script> <script type='text/javascript' id='ez-toc-js-js-extra'>/* <![CDATA[ */ var ezTOC = {"smooth_scroll":"1","visibility_hide_by_default":"","width":"auto","scroll_offset":"30"}; /* ]]> */</script> <script type='text/javascript' src='https://day24h.ru/wp-content/plugins/easy-table-of-contents/assets/js/front.min.js?ver=1.7' id='ez-toc-js-js' defer></script> <script>window.lazyLoadOptions={elements_selector:"img[data-lazy-src],.rocket-lazyload,iframe[data-lazy-src]",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}};window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){return} if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){return} images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1} if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1)</script><script data-no-minify="1" async src="https://day24h.ru/wp-content/plugins/wp-rocket/assets/js/lazyload/12.0/lazyload.min.js"></script><script>function lazyLoadThumb(e){var t='<img loading="lazy" data-lazy-src="https://i.ytimg.com/vi/ID/hqdefault.jpg" alt="" width="480" height="360"><noscript><img src="https://i.ytimg.com/vi/ID/hqdefault.jpg" alt="" width="480" height="360"></noscript>',a='<div class="play"></div>';return t.replace("ID",e)+a}function lazyLoadYoutubeIframe(){var e=document.createElement("iframe"),t="ID?autoplay=1";t+=0===this.dataset.query.length?'':'&'+this.dataset.query;e.setAttribute("src",t.replace("ID",this.dataset.src)),e.setAttribute("frameborder","0"),e.setAttribute("allowfullscreen","1"),e.setAttribute("allow", "accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"),this.parentNode.replaceChild(e,this)}document.addEventListener("DOMContentLoaded",function(){var e,t,a=document.getElementsByClassName("rll-youtube-player");for(t=0;t<a.length;t++)e=document.createElement("div"),e.setAttribute("data-id",a[t].dataset.id),e.setAttribute("data-query", a[t].dataset.query),e.setAttribute("data-src", a[t].dataset.src),e.innerHTML=lazyLoadThumb(a[t].dataset.id),e.onclick=lazyLoadYoutubeIframe,a[t].appendChild(e)});</script><noscript><link rel='stylesheet' id='wp-block-library-css' href='https://day24h.ru/wp-includes/css/dist/block-library/style.min.css' type='text/css' media='all' /></noscript><noscript><link rel='stylesheet' id='classic-theme-styles-css' href='https://day24h.ru/wp-includes/css/classic-themes.min.css?ver=1' type='text/css' media='all' /></noscript><noscript><link rel='stylesheet' id='ez-icomoon-css' href='https://day24h.ru/wp-content/plugins/easy-table-of-contents/vendor/icomoon/style.min.css?ver=1.7' type='text/css' media='all' /></noscript><noscript><link rel='stylesheet' id='ez-toc-css' href='https://day24h.ru/wp-content/plugins/easy-table-of-contents/assets/css/screen.min.css?ver=1.7' type='text/css' media='all' /></noscript><noscript><link rel='stylesheet' id='icraft-fonts-css' href='//fonts.googleapis.com/css?family=Open+Sans%3A300%2C400%2C700%2C300italic%2C400italic%2C700italic%7CRoboto%3A300%2C400%2C700&subset=latin%2Clatin-ext' type='text/css' media='all' /></noscript><noscript><link rel='stylesheet' id='genericons-css' href='https://day24h.ru/wp-content/themes/i-craft/fonts/genericons.css?ver=2.09' type='text/css' media='all' /></noscript><noscript><link rel='stylesheet' id='animate-css' href='https://day24h.ru/wp-content/themes/i-craft/css/animate.min.css?ver=2014-01-12' type='text/css' media='all' /></noscript><noscript><link rel='stylesheet' id='side-menu-css' href='https://day24h.ru/wp-content/themes/i-craft/css/jquery.sidr.dark.css?ver=2014-01-12' type='text/css' media='all' /></noscript><noscript><link rel='stylesheet' id='owl-carousel-css' href='https://day24h.ru/wp-content/themes/i-craft/css/owl.carousel.css?ver=2014-01-12' type='text/css' media='all' /></noscript><noscript><link rel='stylesheet' id='owl-carousel-theme-css' href='https://day24h.ru/wp-content/themes/i-craft/css/owl.theme.css?ver=2014-01-12' type='text/css' media='all' /></noscript><noscript><link rel='stylesheet' id='owl-carousel-transitions-css' href='https://day24h.ru/wp-content/themes/i-craft/css/owl.transitions.css?ver=2014-01-12' type='text/css' media='all' /></noscript><noscript><link rel='stylesheet' id='icraft-style-css' href='https://day24h.ru/wp-content/themes/i-craft/style.css?ver=2013-07-18' type='text/css' media='all' /></noscript><noscript><link rel='stylesheet' id='itrans-extra-stylesheet-css' href='https://day24h.ru/wp-content/themes/i-craft/css/extra-style.css?ver=2014-03-11' type='text/css' media='all' /></noscript><noscript><link rel='stylesheet' id='kirki-styles-css' href='https://day24h.ru/wp-content/themes/i-craft/inc/kirki/assets/css/kirki-styles.css' type='text/css' media='all' /></noscript><noscript><link rel='stylesheet' id='pgntn_stylesheet-css' href='https://day24h.ru/wp-content/plugins/pagination/css/nav-style.css' type='text/css' media='all' /></noscript></body></html> <!-- This website is like a Rocket, isn't it? Performance optimized by WP Rocket. Learn more: https://wp-rocket.me -->