Перейти к содержанию
Официальный форум поддержки Simpla

Использование php в шаблоне


Перейти к решению Решено Kors,

Рекомендуемые сообщения

Друзья, подскажите как в новой версии Simpla 2.3.5 включить возможность использования php кода в шаблоне? Ковырять нужно Smarty.class.php но где?

Заранее благодарен!

Ссылка на сообщение
Поделиться на другие сайты
  • 6 месяцев спустя...
Ссылка на сообщение
Поделиться на другие сайты

Самый простой вариант для 3.5.6 удалить папку Smarty, вместо неё ту что во вложении, далее почистить обе папки Compiled.

Теперь в index.tpl можно вставить например

{php}
phpinfo();
{/php}

 

Ссылка на сообщение
Поделиться на другие сайты

Друзья, подскажите как в новой версии Simpla 2.3.5 включить возможность использования php кода в шаблоне? Ковырять нужно Smarty.class.php но где?

Заранее благодарен!

 

Поддерживаю не смог тоже

 

Сделать как в посте выше, либо заменить два файла, на те что во вложении

Изменено пользователем Djep
Ссылка на сообщение
Поделиться на другие сайты

А смысл в чем? Поставьте первоначальную задачу, расскажу где ошиблись на этапе проектирования логики

Ссылка на сообщение
Поделиться на другие сайты

Djep -  зачем все так запутано? 

 

В api/Design.php в конструкторе после строки

$this->smarty->error_reporting = E_ALL & ~E_NOTICE;

пишем:

$this->smarty->allow_php_tag = true;

 

Ссылка на сообщение
Поделиться на другие сайты

 

Djep -  зачем все так запутано? 

 

В api/Design.php в конструкторе после строки

$this->smarty->error_reporting = E_ALL & ~E_NOTICE;

пишем:

$this->smarty->allow_php_tag = true;

Варианты которые я предложил, работают

Предлагаемый Вами вариант, не сработает для 3.5.х так как там в Smarty удален allow_php_tag

Проверьте на досуге

Ссылка на сообщение
Поделиться на другие сайты
  • Решение

Да, формально Вы правы: не сработает для 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 по ссылке в третье посте. Вы упорно игнорируете простое легкое решение, изобретая сложный велосипед...

Изменено пользователем Kors
Ссылка на сообщение
Поделиться на другие сайты

Да, формально Вы правы: не сработает для 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; 
	}

Ссылка на сообщение
Поделиться на другие сайты

У меня работает без такого добавления.

Даже если это и нужно, то две простенькие вставки - лучше, чем замена папки с мегабайтом скриптов...

 

А если надо будет еще мелкую настройку с изменением какого параметра в Smarty делать, то надо будет пользователю еще у Вас просить подготовить папку? А если комбинацию из пяти-шести параметров? Такой стиль работы Имперу переплюнет...

Ссылка на сообщение
Поделиться на другие сайты

Варианты которые я предложил, работают

Предлагаемый Вами вариант, не сработает для 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();
Изменено пользователем yr4ik
Ссылка на сообщение
Поделиться на другие сайты

А если надо будет еще мелкую настройку с изменением какого параметра в Smarty делать, то надо будет пользователю еще у Вас просить подготовить папку? А если комбинацию из пяти-шести параметров? Такой стиль работы Имперу переплюнет...

Я не фрилансер и деньги на Simpla не зарабатываю, и это не стиль работы...........

а желание помочь

Если попросят, сделаю все что в моих силах

Ссылка на сообщение
Поделиться на другие сайты

Так его можно легко добавить в Smarty/libs/Smarty.class.php одной строчкой:

public $allow_php_tag;

Для новых версий смарти - это не поможет.

Тут же не просто переменная отсутствует, а вырезаны подключения обработчиков тегов {php}. 

Теперь они включены в отдельном классе SmartyBC. Постом выше я описал как его подключить

Изменено пользователем yr4ik
Ссылка на сообщение
Поделиться на другие сайты

Для новых версий смарти - это не поможет.

Тут же не просто переменная отсутствует, а вырезаны подключения обработчиков тегов {php}. 

Теперь они включены в отдельном классе SmartyBC. Постом выше я описал как его подключить

вариант SmartyBC  будет работать, проверил

Изменено пользователем Djep
Ссылка на сообщение
Поделиться на другие сайты

Все версии Smarty не проверял.
Проверял на стандартном дистрибутиве Simpla 2.3.6.
Способ

А можно и максимально просто: в Smarty/libs/Smarty.class.php добавить одну строчку:
public $allow_php_tag = truе;

прекрасно работает...

Если Ваши сложные способы имеют цель
 

Способы которые здесь выложены позволяют пользователю вообще не думать , что и куда добавлять, а получить сразу результат.

то сомневаюсь, что простой пользователь будет изучать версии Smarty и уж тем более заменять версию самостоятельно без особых причин. А делать на перспективу - может, когда-то разработчик изменит версию Smarty в будущем дистрибутиве - это бежать впереди паровоза...

Кстати, этот разработчик уже полгода новых версий не выпускал. И те новые версии, которые были в середине 2014 года, нового содержат не сильно много.  А ошибок в Simpla, в том числе и серьезных, которые надо было бы исправить, найдено достаточно...

Ссылка на сообщение
Поделиться на другие сайты

Все версии Smarty не проверял.

Проверял на стандартном дистрибутиве Simpla 2.3.6.

Способ

А можно и максимально просто: в Smarty/libs/Smarty.class.php добавить одну строчку:
public $allow_php_tag = truе;

прекрасно работает...

 

Если Ваши сложные способы имеют цель

 

то сомневаюсь, что простой пользователь будет изучать версии Smarty и уж тем более заменять версию самостоятельно без особых причин. А делать на перспективу - может, когда-то разработчик изменит версию Smarty в будущем дистрибутиве - это бежать впереди паровоза...

 

Кстати, этот разработчик уже полгода новых версий не выпускал. И те новые версии, которые были в середине 2014 года, нового содержат не сильно много.  А ошибок в Simpla, в том числе и серьезных, которые надо было бы исправить, найдено достаточно...

Столько словесного поноса в мой адрес , да ещё и от плюшевого давненько не встречал

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...