чанки что это такое
MODX чанки (chunks)
В прошлых уроках мы разобрали различный синтаксис модх парсера и fenom, а также перенесли HTML шаблон в MODX Revo (там можно скачать шаблон на основе которого пойдут дальнейшие уроки). Сейчас код шаблона статичный и чтобы что то поправить нужно править код — начнем это исправлять. В данном уроке разобьем код на отдельные части — MODX чанки, чтобы в будущем с кодом шаблона было проще работать.
Что такое
MODX чанки – это контейнеры для HTML/CSS/JS-кода (нельзя добавлять php-скрипты, вернее можно но они будут игнорироватся, для этого есть сниппеты). В чанке можно вызывать другие чанки, tv и сниппеты (можно вкладывать другие элементы).
Где хранятся
Чанки, хранятся в БД, в таблице modx_site_htmlsnippets (где modx_ — это префикс таблиц, который задан во время установки движка).
Как создать
Есть несколько способов создания чанков, рассмотрим каждый из них.
Переходим во вкладку «Элементы» и кликаем:
Как вызывать
Выводятся чанки в шаблоне при помощи следующей конструкции:
Чанк с параметрами
Допустим у нас есть чанк «info», со следующим содержимым:
Он имеет 2 плейсхолдера: [[+name]] и [[+mesCount]]. Передать значения данным плейсхолдерам можно при помощи указания соответствующих параметров вызову чанка:
В результате, получим следующее содержимое:
Условия в чанках
Условия и другие phx фильтры / модификаторы MODX можно использовать в любых специальных тегах. Например, нам нужно вывести чанк в чанке (один или другой) в зависимости от идентификатора родителя текущего ресурса.
Внимание! Будьте осторожными, условия могут сильно увеличить время генерации страницы.
Натягиваем шаблон — логика разбивки шаблона
Не нужно дробить шаблон на сотни чанков, как многие рекомендуют, это создает нагрузки. Выносите только те элементы верстки, которые в последующем могут поменяться.
Обычно весь внешний вид сайта строится на одном дизайне, т.е. шапка, меню, подвал сайта на всех страницах одинаковые (сквозные), меняется внутренне наполнение, самый идеальный вариант разбития на мой взгляд следующий.
Выносим весь код шаблона (у на пока только один шаблон базовый, смотрите урок Перенос HTML шаблона в MODX Revo) в отдельный чанк tpl и вызываем чанк tpl в самом шаблоне [[$tpl]] или
Если сейчас перейти на главную страницу — у нас не чего не поменялось — она также открывается с перенесенным html дизайном. Далее открываем чанк tpl и вырезаем из него весь контент который меняется в чанк tpl.1, а на месте вырезанного кода вставляем вот такую конструкцию [[$tpl.[[*template]]]] или тоже самое на fenom:
Для чего все это?
Тэг «template» выводит id примененного шаблона, а выше приведенная конструкция обращается к соответственному чанку и выводит его. Так мы в дальнейшем сэкономим кучу времени при внесении изменений в верстку сайта.
В дальнейшем мы будем создавать дополнительные шаблоны (для типовых страниц, для статей, для портфолио и т.д.), вызывать во всех будем чанк tpl — там у нас шапка, подвал и другие элементы которые присутствуют на всех остальных страницах. У каждого нового шаблона будет свой id, следовательно, мы будем создавать дополнительные чанки tpl.2, tpl.3, …, tpl.7 и уже в них вносить недостающий контент. Забегая вперед, у нас получится примерно такая структура.
В следующем уроке, мы рассмотрим сниппеты — для чего они нужны и как их использовать.
Понравилась статья? Можно поблагодарить автора: отправив ему донат на
В этой статье рассмотрим понятие, назначение и применение чанков в MODX Revolution. Кроме этого познакомимся с тем, как выполняется обработка и управление чанками в сниппетах через API.
Что такое чанк
Например, чанк (его содержимое), который используется для вывода меню сайта:
Кроме этого чанки в MODX Revolution также используются в качестве шаблонов для вывода результатов работы сниппета.
Например, чанк (tpl.Tickets.list.row), который используется в качестве шаблона сниппета getTickets :
Внутри чанках, как и во многих других элементах MODX Revolution (шаблонах, TV-параметрах, полях ресурса), нельзя непосредственно размещать php-код. Размещение в этих элементах динамического содержимого осуществляется посредством вызовов сниппетов, которые исполняют хранящийся внутри них PHP-код.
Где хранятся чанки
Работа с чанками в админке MODX
Чанки в админке MODX Revolution расположены на левой панели во вкладке «Элементы».
Создание чанка
Кроме этого система MODX позволяет хранить содержимое чанка во внешнем файле. Для этого необходимо установить галочку в поле статичный, выбрать источник файлов и указать его расположение.
Редактирование чанка
Для редактирования некоторого чанка в админке необходимо нажать на него левой кнопкой мыши. После этого откроется форма полями чанки, в которую необходимо внести изменения и нажать на кнопку «Сохранить».
Как использовать чанки в MODX
Вставка чанка в шаблон или содержимое ресурса осуществляется с помощью следующего тега MODX:
Во время обработки страницы, парсер MODX заменит тег чанка его содержимым.
Чанк и его параметры
Чанки в MODX могут иметь параметры. Например, рассмотрим чанк «intro», имеющий следующее содержимое:
Он имеет 2 плейсхолдера: [[+name]] и [[+messageCount]]. Передать значения этим плейсхолдерам можно с помощью указания соответствующих параметров вызову чанка:
В результате, получим следующее содержимое:
или в содержимом чанка:
Условия в чанках
Условия и другие фильтры MODX можно использовать в любых специальных тегах этой системы.
Например, внутри чанка в зависимости от идентификатора родителя текущего ресурса вывести один или другой чанк.
Но с фильтрами в MODX надо быть очень осторожными, т.к. они могут сильно увеличить время генерации страницы. Это происходит потому, что условия в тегах MODX работают не так как обычные условия в php. Например, в вышеприведённом примере оба чанка вызовутся, не зависимого от того какой идентификатор имеет родитель текущего ресурса. А уже только потом будет определяться какой из этих чанков будет выведен на страницу. Поэтому в MODX они и называются фильтрами. А теперь давайте представим, что в этих чанках есть вызовы некэшируемых сниппетов. В результате в не зависимости от идентификатора родителя текущего ресурса эти вызовы будут выполняться как в первом, так и во втором чанке. Это может привести к значительному увеличению времени генерации страницы и нагрузке на сервер. В таких случаях лучше фильтры не использовать, а выполнять эти действия с помощью сниппета.
Обработка чанка с помощью API
Чанки часто выступают в качестве шаблонов для вывода результатов работы сниппета. Обрабатывается чанк в сниппете через функцию getChunk().
Например, рассмотрим, как использовать чанк «rowTpl» в сниппете.
Чанк «rowTpl», имеет следующее содержимое:
Содержимое (php-код) сниппета, который получает все опубликованные ресурсы на сайте и выводит их в таблицу. Для вывода данных отдельного ресурса (одной строки таблицы, состоящей из 2 ячеек) используется шаблон rowTpl.
Чанки что это такое
Today’s topic is CHUNKS
Что такое чанки, какова их роль в изучении языка?
Множество людей, которые изучают английский язык, при попытках говорить или писать «скатываются» к руинглишу. Это особый термин, который близок многим студентам. Если вы иногда стараетесь писать или говорить in English, но при этом ваша мысль понятна только соотечественникам – вы не одиноки. В сегодняшней статье мы расскажем о чанках, и о том, какую пользу они могут принести изучающему английский язык.
Важно: знание чанков и умение ими «жонглировать» – это тот самый ключик, который приблизит вас к fluent English.
Для начала проведем небольшой тест. Предлагаем ответить вам на несколько вопросов:
1. В вашей голове полно заученных списков слов, но при разговоре вы не знаете, какое слово употребить в той или иной ситуации, чтобы ваши предложения звучали более натурально?
2. Вы заучивали лексические единицы по карточкам или в виде списков, но понимаете, что не можете соединить отдельные слова в целостное предложение?
3. Ваши предложения слишком громоздкие в отличие от фраз носителей языка?
4. Вам долго приходится думать, какое грамматическое время необходимо использовать?
Если ваши ответы утвердительны, то вам не хватает знания естественных английских фраз.
Что же такое пресловутые чанки
Chunk – это группа слов, которые при объединении превращаются в одно значение. К чанкам относятся и идиомы, и фразовые глаголы. Но помимо них в разряд чанков можно записать целые фразы или их кусочки. Например, since I can remember myself, how are you doing, do you have a pen at hand, Why are you yelling at us, what about it, hang on a minute и многие другие. Среди них есть те, которые большинство изучающих узнает на начальном уровне, так и те, которые большинство студентов встречает на уровнях Intermediate и выше. Нельзя забывать и о social formulas: Have a nice day, See you later and etc.
Обратите внимание: отдельные фразы можно так же запоминать в виде чанков. Обычно принято считать, что чанк состоит 2-5 слов. Для примера предлагаем обратить внимание на такой вопрос: What movie did you love as a kid?
Конечно, предложение можно запомнить и в таком виде, но есть еще один вариант – «раздробить» его на несколько chunks: You really loved и as a kid (or when you were a kid).
Почему так важно учить чанки:
Они очень частотные. Исследователи считают, что formulaic language (второе более причудливое название для chunks) составляют по меньшей мере 50% словарного запаса изучаемого языка. Если говорить об английском, то к 50% можно смело добавить как минимум 10-20% сверху. В этом и заключается проблема не носителей, речь которых для нейтивов звучит неестественно. Студенты, изучающие English, просто не знают чанков.
Без чанков не обойтись. Существует множество мыслей, которые вы просто не сможете правильно выразить при переводе с родного языка на английский. Именно из-за злоупотребления дословными переводом сформировалось такое понятие как руанглийский язык.
Где же брать чанки и как с ними работать
Их не нужно нигде брать – они повсюду. Вы на них натыкаетесь при чтении Harry Potter, читая учебник по грамматике, смотря фильм и даже играя в компьютерные игры. Главная задача, которая стоит перед вами – быть всегда готовым к встрече с таким лексическим или даже грамматическим «куском.»
Помимо такого вот простого подхватывания новых фраз и чанков, можно работать с ними и более серьезно. Для этого предлагаем скачать учебник по подготовке к международным экзаменам (если уровень средний – FCE, а если выше CAE или CPE). Теперь откройте секцию с текстами для listening. Перед вами будет несколько небольших текстов.
Алгоритм работы с текстом:
Прочтите его полностью. Задайте себя вопрос: понятен ли основной смысл текста?
Затем тщательно проработайте его, смотря значение незнакомых слов.
Теперь еще раз прочтите. На этот раз вы должны полностью понять текст. И здесь начинается самое веселое: выписывайте из текста куски грамматических паттернов, сочетания linking words, word combinations. Можете записывать и особенно понравившиеся вам предложения целиком.
Как вы понимаете, выписать – это лишь часть работы. Теперь вам необходимо составить свои собственные предложения с найденными «золотыми слитками». Старайтесь не только проговорить их, но и записать на бумаге. Не забывайте, что при задействовании механической памяти – информация в несколько раз лучше и быстрее оседает в памяти.
Время от времени в процессе работы по предложенному алгоритму можете немного попрактиковаться, проверяя себя:
Для начала выпишите на листок или в тетрадку 10-20 выученных за последнее время слов из отдельных чанков.
Затем попробуйте вспомнить, с какими словосочетаниями (то есть в составе каких chunks) вы их запомнили или они вам неоднократно встречались К примеру, новичок вспомнил слово an hour. Возможно, вам недавно встречалось a solid hour или it takes an hour. Попробуйте составить несколько простых предложений с чанками (не важно, чанк представлен коллокацией или небольшой фразой).
Внимание: такое упражнение будет полезно и для продолжающих студентов. К примеру, возьмите слово an hour и вспомните, какие грамматические паттерны вам с ним встретились. Например, I’ve spent countless hours. Вспомнили? Значит надо использовать чанк в предложении для лучшего закрепления и его «активации». К примеру, напишите другу или просто у себя в дневнике о проблеме, которая недавно у вас случилась: I’ve spend countless hours trying to fix my wireless adapter.
Что еще можно делать:
Очень полезно делать распечатки или же можно читать статью в ворде. При этом каждый раз отмечайте «маркером» те фразы или куски, при чтении которых у вас возникает мысль в голове: «так вот, как они это говорят!»
Желательно держать рядом с собой блокнот при просмотре фильмов или во время прослушивания аудиокниги, подкастов.
Записывайте целые выражения или «куски», которые покажутся вам интересными.
Незабываем использовать в повседневной практике приобретенные знания. Только частое проговаривания поможет надежно закрепить в сознании новые фразы. Моделируем ситуации и используем чанки. Чем больше будет активных чанков тем речь будет краше и вы никогда не будете иметь вид человека, словарный запас которого оставляет желать лучшего.
Немного о повторении чанков
Конечно, вы предугадываете, что мы скажем дальше: без практики не обойтись. И это действительно так. Вставляйте чанки (мы их еще называем «золотыми слитками») в свою письменную и устную речь.
Людям, которые любят запоминать слова посредством компьютерных программ для интервального повторения, предлагаем использовать Анки или Квизлет для запоминания не только отдельных лексических единиц, но и их сочетаний (чанков).
Это интересно: для многих изучающих, «посвященных» в тайну чанков, процесс изучения английского превращается в увлекательный процесс. При этом возраст не имеет значение. Взрослые так же, как и дети наслаждаются «A-ha! moment», находя и вычленяя отдельные чанки из текстов.
Более подробно узнать о чанках и методах работы с ними вы можете в книге Michael Lewis.
MODx: ресурсы, чанки и какие-то телевизоры
После того как один мой знакомый спросил у меня про то, что за телевизоры используются в шаблонах, я решил отложить все дела на вечер и написать эту статью.
Речь пойдёт о том из чего состоит MODx, как его лучше «готовить», «подавать» и «употреблять».
Рассчитана она в первую очередь на новичков т.к. содержит базовый минимум того, что нужно знать любому modxоводу, ну и конечно на тех кому просто интересно.
Статья ориентирована в основном на Revolution и отражает основные отличия в синтаксисе её от предшественницы, но для обратной совместимости буду вставлять иногда аналогии с Evolution.
Ресурсы (Resources)
Зачастую ресурс представляет собой страницу сайта. Кроме того существуют другие типы ресурсов, такие как, ссылки, сами файлы, и т.д. По умолчанию тип нового ресурса — документ, точнее представление одной страницы вашего сайта.
Шаблоны (Templates)
Параметры
Используются для вывода значений полей ресурса.
Вызов осуществляется так:
Evolution | Revolution |
[*field*] | [[*field]] |
Полный список полей можно посмотреть в документации здесь.
TV параметры
ТелевизорДополнительное поле или переменная шаблона (TV) — это настраиваемое поле, или, точнее это настраиваемое поле для ресурсов MODx. TV-параметры используются для расширения стандартных полей ресурса. Каждый ресурс в MODx имеет определенное количество полей по умолчанию см. выше в разделе про ресурсы.
Если встаёт задача добавить некоторые дополнительные поля на страницу, например, выпадающий список названий месяцев или дополнительное изображение, или любой другой тип пользовательских данных, это можно сделать добавив TV-параметр соответствующего типа. MODx позволяет иметь практически неограниченное количество TV-параметров.
TV-тег заменяется соответствующим значением заполненным пользователем при обработке ресурса. Так же каждый такой параметр привязан к какому либо шаблону и может использоваться лишь в совокупности с ним.
Вызов осуществляется так:
Evolution | Revolution |
[*tv*] | [[*tv]] |
TV параметры можно использовать как чанки добавляя им параметры. Например если есть TV-параметр ‘intromsg’ со значением:
Полный список фильтров можно посмотреть тут. Кроме того фильтры можно применять к чанкам и сниппетам.
Комментарии
Чанки (Chunks)
Чанк — кусок статического текста который можно встроить в шаблон, в другой чанк, либо вызвать в снипете. Чанк обладает теми же свойствами что и шаблон за исключением того, что не содержит TV-параметров и не может быть назначен ресурсу напрямую.
Чанк не может содержать какой-либо исполняемый код, но в нём можно вызывать сниппеты для вывода динамического контента.
Вызов чанка осуществляется так:
Evolution | Revolution |
< | [[$chunk]] |
В чанк можно передавать параметры. К примеру мы создадим чанк с таким содержанием:
Сниппеты (Snippets)
Сниппет — PHP код который исполняется во время обработки шаблона MODx. Результат работы его может быть расположен либо на месте его вывода, либо в плейсхолдерах, специальных тегах определяющими куда поместить те или иные результаты.
Вызов сниппета осуществляется так:
Evolution | Revolution |
[[snippet]] | [[snippet]] |
Размещение плейсхолдера:
Evolution | Revolution |
[+placeholder+] | [[+placeholder]] |
Как и чанки в сниппеты можно передавать параметры, например так:
Чтобы указать системе не кешировать сниппет требуется добавить восклицательный знак перед именем:
Синтаксис тегов
Каждый тег MODx Revolution может содержать в себе другие теги MODx. Для того что бы код был более менее читаем разрешено размещать код тега на нескольких строках придерживаясь такого общего формата (в скобках мои комментарии, которые писать не надо =)):
Чанки
Визуализация одного чанка.
На снегу нанесены границы отдельных чанков
Чанки (от англ. Chunk — ячейка, кусок, осколок) — метод, который использует игра для разделения бесконечных карт на части.
Содержание
Генерация [ ]
Размеры одного чанка — 16 блоков в ширину, 16 блоков в длину и 256 блоков (384 блока [ заплан. : 1.18] ) в глубину. Это составляет 65 536 блоков. При прогрузке новой области карты, генерируется и становится активным 441 чанк вокруг игрока, или больше, если была установлена дальность прорисовки свыше 10 чанков. Чанки генерируются с помощью зерна карты, а это означает, что они будут всегда одинаковыми если вы будете использовать одно и то же зерно снова.
Прогрузка чанков [ ]
Количество активных чанков вокруг игрока в одиночной игре определяется дальностью прорисовки: от 25 на минимальной (2 чанка) до 4225 на максимальной (32 чанка). В многопользовательском режиме чанки по умолчанию загружаются в радиусе 10 от игрока (21*21 чанк). Радиус может быть сконфигурирован от 2 до 16, в зависимости от мощности оборудования и скорости подключения. На этих чанках могут появляться мобы, деревья, вода, предметы и прочее, когда активность на всех других чанках на карте остановлена и они являются полностью статичными. Если игрок переместится на область уже сгенерированных чанков, то эти чанки восстановятся и наполнятся динамическими объектами. С 20 декабря 2010 года сервер сохраняет чанки реже, чем раньше. Чанки не пересохраняются, если они уже были сохранены 30 секунд назад.
В некоторых версиях игры существует ошибка, в связи с которой один или несколько чанков на сервере не загружается, и игрок видит перед собой огромную пропасть до дна, но не может в неё упасть. Для ликвидации этой ошибки нужно переподключиться к серверу, изменить дальность прорисовки ( F3 + F ), перезагрузить чанки без изменения дистанции прорисовки ( F3 + A ), или установить факел неподалеку от этой дыры.
Спаун чанков [ ]
Чанки в области, непосредственно окружающей точку появления мира, являются особыми чанками, которые никогда не выгружаются из памяти, пока хотя бы один игрок находится в обычном мире. Это означает, что такие вещи, как механизмы из красного камня и мобофермы продолжают работать, даже когда все игроки находятся далеко.
Влияние на производительность [ ]
Чанки обычно загружаются в энергозависимую память только тогда, когда они необходимы для отображения. Это управление памятью «до тех пор, пока оно не понадобится» обычно используется в играх с процедурно-генерируемым ландшафтом, чтобы компьютерам игроков не приходилось одновременно отслеживать и обновлять сотни растений и мобов.
Механизм рендеринга Minecraft использует функцию отображения списка OpenGL, чтобы разделить мировой блок на шестнадцать больших списков отображения 16×16×16 блоков, чтобы значительно ускорить рендеринг. Их необходимо перестраивать каждый раз, когда блок внутри них изменяется, и их можно визуализировать несколько раз, например, для достижений, прозрачности. [1]
Чанки со слизнями [ ]
Слизни могут спауниться только на чанках, определяемых расчетами его координат, а также на чанках болота и в плоском мире. Существуют специальные программы и модификации, которые позволяют указать, где они могут спауниться.
Нахождение краев чанков [ ]
Сочетание клавиш F3 + G может использоваться для отображения границ чанка.
Кроме того, нажатие кнопки «F3» открывает экран «Отладка», который показывает координаты X, Y и Z игрока в дополнение к переменной «c». Эти координаты меняются по мере перемещения игрока. Игрок может узнать блок, в котором он находится, по переменной «c», которая находится рядом с переменными «x» и «z». Число в скобках указывает, как далеко игрок находится от северо-западного угла чанка, поэтому, если «с» рядом с Х было 3 (5), а «с» рядом с Z было 2 (4), то игрок находится на чанке (3, 2) и в блоке (5, 4) с северо-западного угла.
Координаты X и Z, которые делятся на 16, представляют границы между кусками. EG.: (96, −32) — это угол, где встречаются четыре чанка. Один из этих фрагментов находится между координатами X от 80 до 96 и координатами Z от −48 до −32. Другой находится между координатами X 96-112 и координатами Z-32-16, и так далее. Когда X или Z пересекают кратное 16, игрок перемещается через куски.
По сути, игрок находится в верхнем левом углу (северо-запад) чанка, когда обе координаты x и z делятся на 16.
Кроме того, игрок может узнать чанк, в котором он находится, по следующей формуле:
Х чанка — Floor(Х / 16),
Z чанка — Floor(Z / 16),
Где Floor(N) — целое число, меньшее, чем N. Например, Floor(27.9561) = 27.
Другими словами, если X было 27, Z было 15, то координаты чанка — это (Floor(27/16), Floor(-15/16)), что означает, что игрок находится в чанке (1, −1)
Также игрок может узнать, как далеко он находится от северо-западного угла по формуле:
(координата X или Z) И 15
В Bedrock Edition, при переключении причудливой графики, мир рендерится снова, загружая только часть, в которой находится игрок, в течение доли секунды, кратко показывая границы фрагментов.