Вы не зашли.
В общем я решил немножко доработать шаблонную систему и надеюсь разработчики включат мою доработку в следующую версию CMS.
также я ввел новый код {tpl_root} это путь до шаблона выглядит так: /templates/vash_shablon
теперь если допустим вы создатите шаблон ame.tpl и поместите его в папку vash_shblon, а допустим в main.tpl вы разместите вот такую конструкцию {include file="{tpl_root}/ame.tpl"} то она обернется содержимым файла ame.tpl
Также можно подключать и php файлы как в DLE и еще один момент: в отличии от DLEшной версии данной реализации в моей можно подключать файлы во всех папках к примеру и вот такой вариант {include file="engine/ame.php"} будет спокойно работать конечно при условии что файл ame.php находится в папке engine.
Так в общем инструкции по установке: мой файл templates.class.php ( http://zalil.ru/34134579 ) нужно поместить (удалить старый поставить мой) в папку
engine/includes/classes
и всё
еще раз очень надеюсь что разработчики учтут мою модификацию в новой версии потому что иногда нет нужды писать полный плагин а достаточно просто подключить определенный php-файл или допустим шаблон меню вынести в отдельный файл
Изменено lawelian (2013-01-04 13:41:13)
Не в сети
lawelian, поздравляю, ты изобрёл блок [:include TEMPLATE], обработка которого находится в строке ~47 файла template.class.php
Единственное "но" - по умолчанию такой инклуд отключен и его нужно специально включать.
Не в сети
Да я в курсе этого блока только не в курсе почему нету его в документации;) это раз, во вторых он у вас очень хреново сделан.
У вас очень плохо реализована функция подключения php кода: eval() в большинстве случаев на хостинге попросту отключен и включть его нельзя потому что "данная функция очень опасна и чревата взломами". Посмотрите как это реализованно у меня (в моем файле в классе функция load_file) это DLEшный вариант. Не в угоду разработчикам дле но просто и изящно честное слово: файл просто инклюдится через ob_start, а потом ob_get_clean() вставляется за место конструкции. Тем самым нам без разницы какой это файл tpl или php и не нужно никаких проверок, как в вашей реализации.
Не в сети
Да я в курсе этого блока только не в курсе почему нету его в документации;) это раз, во вторых он у вас очень хреново сделан.
У вас очень плохо реализована функция подключения php кода: eval() в большинстве случаев на хостинге попросту отключен и включть его нельзя потому что "данная функция очень опасна и чревата взломами". Посмотрите как это реализованно у меня (в моем файле в классе функция load_file) это DLEшный вариант. Не в угоду разработчикам дле но просто и изящно честное слово: файл просто инклюдится через ob_start, а потом ob_get_clean() вставляется за место конструкции. Тем самым нам без разницы какой это файл tpl или php и не нужно никаких проверок, как в вашей реализации.
этот вопрос уже решался на форуме http://ngcms.ru/forum/viewtopic.php?id=2726
жизнь бьёт ключом......,ну иногда и гайкой.....
Хаки и Скрипты| Бесплатные шаблоны NGCMS
На Районе - Шахтинск Украшение Windows
Не в сети
lawelian, невозможность лёгкого include'а php файлов - осознанный шаг.
От этого можно получить намного больше проблем чем решить задач, при этом при наличии минимального желания можно нужный код "обернуть" в плагин.
Не в сети