vakravcov Posted June 19, 2014 Report Share Posted June 19, 2014 Друзья, подскажите как в новой версии Simpla 2.3.5 включить возможность использования php кода в шаблоне? Ковырять нужно Smarty.class.php но где?Заранее благодарен! Quote Link to post Share on other sites
seolink Posted January 18, 2015 Report Share Posted January 18, 2015 Поддерживаю не смог тоже Quote Link to post Share on other sites
Kors Posted January 18, 2015 Report Share Posted January 18, 2015 Поиск на форуме на фразу "php в шаблоне" сразу дает:http://forum.simplacms.ru/topic/5976-%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-php-%D0%B2-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B5/ Quote Link to post Share on other sites
seolink Posted January 18, 2015 Report Share Posted January 18, 2015 Да только информация не работает Quote Link to post Share on other sites
Djep Posted January 18, 2015 Report Share Posted January 18, 2015 Самый простой вариант для 3.5.6 удалить папку Smarty, вместо неё ту что во вложении, далее почистить обе папки Compiled.Теперь в index.tpl можно вставить например {php} phpinfo(); {/php} Quote Link to post Share on other sites
Djep Posted January 18, 2015 Report Share Posted January 18, 2015 (edited) Друзья, подскажите как в новой версии Simpla 2.3.5 включить возможность использования php кода в шаблоне? Ковырять нужно Smarty.class.php но где?Заранее благодарен! Поддерживаю не смог тоже Сделать как в посте выше, либо заменить два файла, на те что во вложении Edited January 18, 2015 by Djep Quote Link to post Share on other sites
Kasha Posted January 18, 2015 Report Share Posted January 18, 2015 А смысл в чем? Поставьте первоначальную задачу, расскажу где ошиблись на этапе проектирования логики Quote Link to post Share on other sites
yr4ik Posted January 18, 2015 Report Share Posted January 18, 2015 Djep - зачем все так запутано? В api/Design.php в конструкторе после строки $this->smarty->error_reporting = E_ALL & ~E_NOTICE; пишем: $this->smarty->allow_php_tag = true; Quote Link to post Share on other sites
Djep Posted January 18, 2015 Report Share Posted January 18, 2015 Djep - зачем все так запутано? В api/Design.php в конструкторе после строки $this->smarty->error_reporting = E_ALL & ~E_NOTICE; пишем: $this->smarty->allow_php_tag = true; Варианты которые я предложил, работаютПредлагаемый Вами вариант, не сработает для 3.5.х так как там в Smarty удален allow_php_tagПроверьте на досуге Quote Link to post Share on other sites
Solution Kors Posted January 18, 2015 Solution Report Share Posted January 18, 2015 (edited) Да, формально Вы правы: не сработает для 3.5.х так как там в Smarty удален allow_php_tag. Так его можно легко добавить в Smarty/libs/Smarty.class.php одной строчкой: public $allow_php_tag; Сомнительно, что Ваш способ с заменой папки намного легче... А можно и максимально просто: в Smarty/libs/Smarty.class.php добавить одну строчку: public $allow_php_tag = truе; Почти то же самое написал Rash по ссылке в третье посте. Вы упорно игнорируете простое легкое решение, изобретая сложный велосипед... Edited January 18, 2015 by Kors Quote Link to post Share on other sites
Djep Posted January 18, 2015 Report Share Posted January 18, 2015 Да, формально Вы правы: не сработает для 3.5.х так как там в Smarty удален allow_php_tag. Так его можно легко добавить в Smarty/libs/Smarty.class.php одной строчкой:public $allow_php_tag; Сомнительно, что Ваш способ с заменой папки намного легче... А можно и максимально просто: в Smarty/libs/Smarty.class.php добавить одну строчку:public $allow_php_tag = truе; Почти то же самое написал Rash по ссылке в третье посте. Вы упорно игнорируете простое легкое решение, изобретая сложный велосипед...Способы которые здесь выложены позволяют пользователю вообще не думать , что и куда добавлять, а получить сразу результат.А если делать самому замену, надо по аналогии с предыдущей Smarty добавить ещё в smarty_security.php public $allow_php_tag = true; public function __construct($smarty) { $this->smarty = $smarty; } Quote Link to post Share on other sites
Kors Posted January 18, 2015 Report Share Posted January 18, 2015 У меня работает без такого добавления. Даже если это и нужно, то две простенькие вставки - лучше, чем замена папки с мегабайтом скриптов... А если надо будет еще мелкую настройку с изменением какого параметра в Smarty делать, то надо будет пользователю еще у Вас просить подготовить папку? А если комбинацию из пяти-шести параметров? Такой стиль работы Имперу переплюнет... Quote Link to post Share on other sites
yr4ik Posted January 18, 2015 Report Share Posted January 18, 2015 (edited) Варианты которые я предложил, работаютПредлагаемый Вами вариант, не сработает для 3.5.х так как там в Smarty удален allow_php_tagПроверьте на досугеНа досуге я перековырял уже много версий смарти...Но 3.5.х еще не встречал. Последнюю что я видел так это 3.1.21 Ну могу дополнить раз того не хватило. Тот же файл api/Design.php заменяем: require_once(dirname(dirname(__FILE__)).'/Smarty/libs/Smarty.class.php'); на: require_once(dirname(dirname(__FILE__)).'/Smarty/libs/SmartyBC.class.php');и в конструкторе: $this->smarty = new Smarty(); меняем на: $this->smarty = new SmartyBC(); Edited January 18, 2015 by yr4ik Quote Link to post Share on other sites
Djep Posted January 18, 2015 Report Share Posted January 18, 2015 А если надо будет еще мелкую настройку с изменением какого параметра в Smarty делать, то надо будет пользователю еще у Вас просить подготовить папку? А если комбинацию из пяти-шести параметров? Такой стиль работы Имперу переплюнет...Я не фрилансер и деньги на Simpla не зарабатываю, и это не стиль работы...........а желание помочьЕсли попросят, сделаю все что в моих силах Quote Link to post Share on other sites
yr4ik Posted January 18, 2015 Report Share Posted January 18, 2015 (edited) Так его можно легко добавить в Smarty/libs/Smarty.class.php одной строчкой: public $allow_php_tag;Для новых версий смарти - это не поможет. Тут же не просто переменная отсутствует, а вырезаны подключения обработчиков тегов {php}. Теперь они включены в отдельном классе SmartyBC. Постом выше я описал как его подключить Edited January 18, 2015 by yr4ik Quote Link to post Share on other sites
Djep Posted January 18, 2015 Report Share Posted January 18, 2015 (edited) Для новых версий смарти - это не поможет.Тут же не просто переменная отсутствует, а вырезаны подключения обработчиков тегов {php}. Теперь они включены в отдельном классе SmartyBC. Постом выше я описал как его подключитьвариант SmartyBC будет работать, проверил Edited January 18, 2015 by Djep Quote Link to post Share on other sites
Kors Posted January 19, 2015 Report Share Posted January 19, 2015 Все версии Smarty не проверял.Проверял на стандартном дистрибутиве Simpla 2.3.6.Способ А можно и максимально просто: в Smarty/libs/Smarty.class.php добавить одну строчку: public $allow_php_tag = truе; прекрасно работает...Если Ваши сложные способы имеют цель Способы которые здесь выложены позволяют пользователю вообще не думать , что и куда добавлять, а получить сразу результат.то сомневаюсь, что простой пользователь будет изучать версии Smarty и уж тем более заменять версию самостоятельно без особых причин. А делать на перспективу - может, когда-то разработчик изменит версию Smarty в будущем дистрибутиве - это бежать впереди паровоза...Кстати, этот разработчик уже полгода новых версий не выпускал. И те новые версии, которые были в середине 2014 года, нового содержат не сильно много. А ошибок в Simpla, в том числе и серьезных, которые надо было бы исправить, найдено достаточно... Quote Link to post Share on other sites
Djep Posted January 19, 2015 Report Share Posted January 19, 2015 Все версии Smarty не проверял.Проверял на стандартном дистрибутиве Simpla 2.3.6.Способ А можно и максимально просто: в Smarty/libs/Smarty.class.php добавить одну строчку: public $allow_php_tag = truе; прекрасно работает... Если Ваши сложные способы имеют цель то сомневаюсь, что простой пользователь будет изучать версии Smarty и уж тем более заменять версию самостоятельно без особых причин. А делать на перспективу - может, когда-то разработчик изменит версию Smarty в будущем дистрибутиве - это бежать впереди паровоза... Кстати, этот разработчик уже полгода новых версий не выпускал. И те новые версии, которые были в середине 2014 года, нового содержат не сильно много. А ошибок в Simpla, в том числе и серьезных, которые надо было бы исправить, найдено достаточно...Столько словесного поноса в мой адрес , да ещё и от плюшевого давненько не встречал Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.