Куски кода в шаблоне
Macik |
|
---|---|
#39730 Dr2005alex: Да. Только сделать это надо красиво и продуманно, с перспективой на будущее. (см. ниже)
Главное, что в таком случае мы теряем возможность использовать внутри чанков теги текущего шаблона (в котором чанк используется), и все «скатывается» к прямому аналогу слотов с парсингом а-ля «slot-n-tags».
Нет, это совсем не вариант. --- На счет универсального расширения CoTemplate мысль такая:
Т.е. если такой механизм будет готов, то для чанков мы просто создаем отдельный плагин, которы будет его использовать, заключая всю логику обработки таких блоков только в себе, без необходимости вносить дополнительные правки в шаблонизатор. // условный код на PHP // в хуке global регистрируем свои обработчики XTemplate::set_extender(array( 'CHUNK:' => 'cot_chunk_parse', '$' => 'cot_chunk_parse', // тоже самое но в стиле ModX )); // в плагине, описываем функцио обработки, которая будет заниматься всем дальнейшим процессом обработки /** * обработка чанков * * @param array $found_ext_tag массив содержащий PCRE совпадения, содержит: * $found_ext_tag[1] — имя расширенного тега, например `CHUNK:` * $found_ext_tag[2] — тело расширенного тега для дальнейшей работы * @param XTemplate $tpl_context ссылка на текущий экземпляр CoTemplate (из которого осуществлен вызов) * @return string */ function cot_chunk_parse($found_ext_tag, $tpl_context){ /* парсим $found_ext_tag[2] для получения имени конкретного чанка, его параметров и т.п. в зависимости от установленного синтаксиса */ // … return $parsed; }
Добавлено 4 минуты спустя: #39733 Dr2005alex: Предлагаю более универсальный вариант — см. выше. https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F |