Macik |
|
---|---|
В общем согласен.
Хотя логика в блочном виде как сейчас не менее громоздка чем callback-функции. Отдельного плагина на каждый случай не потребуется - достаточно описать класс с минимальным и достаточным набором callback функций. Верстальщику вообще практически ничего объяснять не надо - надо показать 1 пример и все будет понятно. Вот конкретика и примеры: Вместо вот этого <!-- IF {PAGE_DESC}== "" --> Описание страницы пустое. <!-- ENDIF --> Можно будет писать так: {PAGE_DESC|IS_NULL('Описание страницы пустое.')} Все что нужно для этого - создать в системе дочерний класс:
class XT extends XTemplate {
// функция проверки на предмет присвоено ли тэгу значение
public function IS_NULL ($tag,$str) {
// $tag - тело тэга с уже присвоеным значением
// $str - строка, которую необходимо вывести если тег пустой
if ($tag=='') {return $str;} else {return $tag;}
}
}
Аналогичным образом можно реализовать любое другое условие. Из плюсов такого подхода: 1. Мы не трогаем исходный класс; 2. Никаких отдельных плагинов - один раз описываем в системе класс и прописываем необходимую функциональность; 3. Экономим на размерах шаблона и соответственно меньше шансов допустить в шаблоне ошибку/опечатку. Как дополнение: В своем проекте пытаюсь реализовать "прозрачную" (более абстрактную) для верстальщиков систему интерфейса. Сейчас по сути в шаблонах огромное количество HTML кода, и при том программно зависимого, как например:
<form action="{PAGEADD_FORM_SEND}" method="post" name="newpage" enctype="multipart/form-data">
...
<form>
Идея в том, что бы абстрагироваться от этого. Дизайнер указывает в шаблоне только ключевые Тэги: <!-- BEGIN: MAIN --> Форма регистрации: {FORM_LOGIN} <!-- END: MAIN --> <!-- BEGIN: FORM_LOGIN --> Введите свои данные: Login: {INPUT_USER_LOG} Password: {INPUT_USER_PASS} {BUTTON_LOGIN_SEND} {SOME_TEXT} <!-- END: FORM_LOGIN --> Задача программиста договориться с дизайнером о наборе тегов для конкретной формы. Затем проинициализировать структуру данных, которая задаст парамертры конкретных элементов. Далее вызвать автоматический обработчик, который уже на основании заполненых данных и на основании названия тегов решит что и как парсить. https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F |
|
Bu gönderi Macik tarafından düzenlendi (2009-07-09 22:57, 15 yıllar önce) |