Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2013-01-04 13:38:59

lawelian
Участник
Зарегистрирован: 2012-12-21
Сообщений: 3
Рейтинг :   

Эврика я реализовал {include file=""} как в DLE!!!

В общем я решил немножко доработать шаблонную систему и надеюсь разработчики включат мою доработку в следующую версию 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)

Не в сети

#2 2013-01-04 18:41:01

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Эврика я реализовал {include file=""} как в DLE!!!

lawelian, поздравляю, ты изобрёл блок [:include TEMPLATE], обработка которого находится в строке ~47 файла template.class.php smile
Единственное "но" - по умолчанию такой инклуд отключен и его нужно специально включать.

Не в сети

#3 2013-01-05 11:32:57

lawelian
Участник
Зарегистрирован: 2012-12-21
Сообщений: 3
Рейтинг :   

Re: Эврика я реализовал {include file=""} как в DLE!!!

Да я в курсе этого блока только не в курсе почему нету его в документации;)  это раз, во вторых он у вас очень хреново сделан.
У вас очень плохо реализована функция подключения php кода: eval() в большинстве случаев на хостинге попросту отключен и включть его нельзя потому что "данная функция очень опасна и чревата взломами". Посмотрите как это реализованно у меня (в моем файле в классе функция load_file) это DLEшный вариант. Не в угоду разработчикам дле но просто и изящно честное слово: файл просто инклюдится через ob_start, а потом ob_get_clean() вставляется за место конструкции. Тем самым нам без разницы какой это файл tpl или php и не нужно никаких проверок, как в вашей реализации.

Не в сети

#4 2013-01-06 22:09:37

irbees2008
Продвинутый чайник ;)
Откуда Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2,873
Рейтинг :   121 
Сайт

Re: Эврика я реализовал {include file=""} как в DLE!!!

lawelian пишет:

Да я в курсе этого блока только не в курсе почему нету его в документации;)  это раз, во вторых он у вас очень хреново сделан.
У вас очень плохо реализована функция подключения php кода: eval() в большинстве случаев на хостинге попросту отключен и включть его нельзя потому что "данная функция очень опасна и чревата взломами". Посмотрите как это реализованно у меня (в моем файле в классе функция load_file) это DLEшный вариант. Не в угоду разработчикам дле но просто и изящно честное слово: файл просто инклюдится через ob_start, а потом ob_get_clean() вставляется за место конструкции. Тем самым нам без разницы какой это файл tpl или php и не нужно никаких проверок, как в вашей реализации.

этот вопрос уже решался на форуме http://ngcms.ru/forum/viewtopic.php?id=2726

Не в сети

#5 2013-01-08 01:59:26

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Эврика я реализовал {include file=""} как в DLE!!!

lawelian, невозможность лёгкого include'а php файлов - осознанный шаг.
От этого можно получить намного больше проблем чем решить задач, при этом при наличии минимального желания можно нужный код "обернуть" в плагин.

Не в сети

Подвал раздела

Работает на FluxBB