Как сделать чанк

Добавил пользователь Владимир З.
Обновлено: 19.09.2024

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

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

Кроме этого чанки в MODX Revolution также используются в качестве шаблонов для вывода результатов работы сниппета.

Например, чанк (tpl.Tickets.list.row), который используется в качестве шаблона сниппета getTickets :

Внутри чанках, как и во многих других элементах MODX Revolution (шаблонах, TV-параметрах, полях ресурса), нельзя непосредственно размещать php-код. Размещение в этих элементах динамического содержимого осуществляется посредством вызовов сниппетов, которые исполняют хранящийся внутри них PHP-код.

Совет: не храните повторяющийся код (раздел head , шапку сайта, меню, подвал, контактную информацию и др. блоки страницы) в шаблонах. Более предпочтительно всё это оформить в виде чанков, а затем использовать их в необходимых шаблонах. Это позволит сократить значительное количество времени, если потребуется внести изменения в некоторый блок. Вместо редактирования большого количества шаблонов, в данном случае потребуется всего внести изменения только в один чанк.

Где хранятся чанки

Чанки, как и остальные объекты MODX, хранятся в базе данных. Чанки содержатся в таблице modx_site_htmlsnippets (modx - это префикс таблиц, заданный во время установки системы).

MODX - Таблица базы данных, в которой хранятся чанки

Работа с чанками в админке MODX

Чанки в админке MODX Revolution расположены на левой панели во вкладке "Элементы".

MODX - Чанки в админке

Создание чанка

Создание чанка осуществляется с помощью кнопки "+". После нажатию на эту кнопку открывается страница, содержащая форму. Среди полей этой формы, основными являются имя и код чанка (html). Имя - это название, посредством которого этот чанк можно будет вызывать в шаблоне, содержимом ресурса или в другом месте. Код чанка (html) - это контент, который парсер будет выводить на месте вызова чанка.

MODX - Создание чанка

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

MODX - Создание статичного чанка

Редактирование чанка

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

Как использовать чанки в MODX

Вставка чанка в шаблон или содержимое ресурса осуществляется с помощью следующего тега MODX:

Во время обработки страницы, парсер MODX заменит тег чанка его содержимым.

Чанк и его параметры

Чанки в MODX могут иметь параметры. Например, рассмотрим чанк "intro", имеющий следующее содержимое:

Он имеет 2 плейсхолдера: [[+name]] и [[+messageCount]]. Передать значения этим плейсхолдерам можно с помощью указания соответствующих параметров вызову чанка:

В результате, получим следующее содержимое:

Если пойти немного дальше, то можно, например, создать TV-параметры name и messageCount , и добавить их (эти переменные) к соответствующему шаблону. После этого у каждого ресурса, имеющего этот шаблон, появятся эти TV-параметры. Значения этих TV-параметров можно использовать в качестве значений параметров чанка:

или в содержимом чанка:

Условия в чанках

Условия и другие фильтры MODX можно использовать в любых специальных тегах этой системы.

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

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

Обработка чанка с помощью API

Чанки часто выступают в качестве шаблонов для вывода результатов работы сниппета. Обрабатывается чанк в сниппете через функцию getChunk().

Например, рассмотрим, как использовать чанк "rowTpl" в сниппете.

Чанк "rowTpl", имеет следующее содержимое:

Содержимое (php-код) сниппета, который получает все опубликованные ресурсы на сайте и выводит их в таблицу. Для вывода данных отдельного ресурса (одной строки таблицы, состоящей из 2 ячеек) используется шаблон rowTpl.

ikWxX517G0Y.jpg

Чанк будет обозначен зеленой сеткой. Красные линии в углах - его угловые точки.

Что такое такты или тики, или TPS

Такт (англ. Tick) — программная единица времени Minecraft, на которой основана вся игровая механика. Представляет из себя паузу между повторами цикла обновлений игрового мира.​

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

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

Подробнее о TPS значениях нашего сервера можно узнать здесь (ссылка).

Почему нужно соблюдать границы чанков?
Потому что моды обрабатываются так же по чанкам. Если чанк отгружен - энергия например идти по проводам из отгруженного чанка в загруженный не будет. Мобы не будут плодится. Растения не будут расти. В механизмах остановится переработка потому что остановятся сами механизмы.
Если вы строите что-то большое старайтесь делать это так, чтобы провода, трубы и все такое - не пересекало в замкнутой системе границ чанков. Нам это не помешает. А вот вам будет приятнее играть.

Как работают чанки (вообще) на серверах.

vfwMsmLlybE.jpg


На многих (на всех) проектах чанки работают крайне хреново.
Прогружается на 100% только чанк, в котором стоит игрок (Красная зона)
Чанки рядом с активным чанком режуться по прогрузке на 50% (желтая зона) (то есть работают в 2 раза медленнее).
Чанки по диагонали - режутся на 75% (синяя зона) (то есть работают на в 4 раза медленнее)
На лагающих серверах синяя зона замещает желтую - то есть все чанки вокруг игрока работают в 4 раза медленее.
Все чанки дальше (сиреневая зона) - отключаются вообще. То есть грубо говоря - вы имеете только один рабочий чанк - тот в котором вы стоите.
Если на сервере стоит прогрузка чанков равная 2 (не касается прогрузки в клиенте - это серверная настройка), то выглядит это так:

ypHjxOkbjtA.jpg

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

Как работают чанки у нас?
НОРМАЛЬНО. Так же, как в сингле.
Все прогружаемые чанки вокруг игрока на расстоянии 6-12 чанков РАДИУСОМ (!) (зависит от нагрузки сервера в данный момент) работают на 100%.

o2RHC72slKk.jpg

Неважно, стоите вы в этом чанке, или нет. Если вы прогружаете этот чанк и радиусом вокруг него - все они работают одинаково на 100%.

Спасибо за внимание.

ChickenChunks [1.16.5] [1.15.2] [1.12.2] [1.11.2] [1.10.2] [1.9.4] [1.7.10]

Мод ChickenChunks - прогрузка дальних чанков в майнкрафте для работы механизмов

ChickenChunks - это мод, который прогружает чанки, там где вас нет. Это поможет, если ставите помпу, или карьер из BuildCraft, буровую установку из IC2 в далеких местах. Даже если вы ушли в другой мир, то они все равно будут работать.

Подробности и крафты

ChickenChunks [1.16.5] [1.15.2] [1.12.2] [1.11.2] [1.10.2] [1.9.4] [1.7.10]

1. Ставим загрузчик чанков в нужном вам месте.

ChickenChunks [1.16.5] [1.15.2] [1.12.2] [1.11.2] [1.10.2] [1.9.4] [1.7.10]

2. Заходим в его GUI. Выбираем форму и размер.

ChickenChunks [1.16.5] [1.15.2] [1.12.2] [1.11.2] [1.10.2] [1.9.4] [1.7.10]

4. Видим, что чанки прогружены. PROFIT.

ChickenChunks [1.16.5] [1.15.2] [1.12.2] [1.11.2] [1.10.2] [1.9.4] [1.7.10]

Загрузчик чанков - загружает несколько чанков.

ChickenChunks [1.16.5] [1.15.2] [1.12.2] [1.11.2] [1.10.2] [1.9.4] [1.7.10]

Загрузчик чанка - грузит только чанк в котором находится.

чанк

Чанки в Майнкрафте- это куски карты, которые генерируются, когда игрок находится рядом. Они небольшие по своей длине и ширине, но огромны по своей высоте.

Один чанк имеет 16 блоков в длину, 16 блоков в ширину, и 256 блоков в глубину, что позволяет вычислить его объем (16*16*256=65536 блоков). Когда игрок появляется в новом мире, вокруг него сразу генерируется 81 чанк. В сетевой игре этот радиус от 3 до 15, хотя его можно настроить. Если у вас тормозит игра, то лучше всего поставить радиус в 3 чанка. Если игра работает более чем стабильно, то можно сделать этот радиус чуть больше.

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

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

1. При активации поршня его стержень будет обращен в нуль.
2. Редстоун провод будет иметь искаженные текстуры, будет более растянутым.
3. Ваши вещи в инвентаре будут трястись.
4. Частицы огня в факеле, и в редстоун факеле изначально будут иметь неправильное положение.
5. Некоторые блоки не будут гореть вообще.

Читайте также: