Возможность вставки php кода на страницу

Всем привет!
Имеется необходимость в использовании php кода на странице AltoCMS, возможно ли такое?
Нашел плагин для LS, но он Вызывает ошибку в админке.
Как можно разрешить использование кода на странице, а если это не возможно то хотя бы в шаблоне smarty?

Похожие статьи

  • Установить Nginx на Centos7
    Требуется на VPS сервере установить Nginx и обновить PHP на Centos 7. P.s. сам пробовал по мануалам, с конфигами и директориями не разобрался.
  • Вставить PHP
    Как вставить в шаблон php-код? Код не выполняется, просто выводится. Что делать?
  • Проблема с функцией glob() на PHP + cURL
    Столкнулся со следующей проблемой. Была конфигурация PHP 5.4.14: '--enable-fpm' '--with-mysql' '--with-mysqli' '--with-gd' '--with-jpeg-dir' '--with-zlib-dir' '...

12 комментариев

0
В общем решение следующее:
В файле /engine/classes/modules/viewer/Viewer.class.php
19 строчка:
F::IncludeLib('Smarty/libs/Smarty.class.php');

Дописываем BC:
F::IncludeLib('Smarty/libs/SmartyBC.class.php');

765 строчка
return new Smarty();

Дописываем BC:
return new SmartyBC();


После чего в шаблонах можно использовать PHP код следующим образом:
{php}
    echo "Hello world!";
{/php}


Если кто знает минусы такого решения, буду рад их услышать!
Отредактирован:
+1
А что мешает писать код в фигурных скобках?

Отключили его в 3 смарти я так понимаю чтобы юзеры не косячили с одной стороны, с другой это в принципе неверный подход, не для того он предназначен…
Отредактирован:
0
принципе неверный подход
В связи с чем?
Можно так

{sprintf("%s", «hello world!»)}

Как будет выглядеть любая функция в таком случае?
+1
Ну смысл шаблонизатора в том что логика представления отделяется от бизнес логики. Иначе зачем он тогда вообще нужен, делайте все на php

Там можно задать свои smarty функции типа {myfunc parameter=блаблабла} а можно использовать обращения к php функциям такого плана как я привел пример. Например нужно вам дату вывести или какие-то простые вычисления — без проблем можно переменные определять и использовать в дальнейшем и т.д. {$p=$a*$b+$c}, вывод {$p}. Более того там со строками упрощена работа, разыменовывание в выражении автоматически происходит. Если нужно что-то сложное то это должно быть вынесено из шаблона.

Что вообще сделать хотите, вдруг это проще стандартными средствами?
Отредактирован:
0
Если нужно что-то сложное то это должно быть вынесено из шаблона
Плагины писать не умею, smarty не понимаю, php знаю, php понимаю, есть готовый скрипт на php, его необходимо интегрировать на сайт, поэтому и прибегаю к таким радикальным методам!
Отредактирован:
+1
предлагаю пойти таким путем
www.smarty.net/docs/en/plugins.functions.tpl
0
В принципе Вы мне помогли! Спасибо!
0
{php}
    echo "Hello world!";
{/php}


Можно так
{sprintf("%s", «hello world!»)}
Отредактирован:
0
Что что ни так, ни так не работает(
0
Может вы кавычки-елочки скопипастили =)
Первый способ в 3 смарти вроде убрали.
0
не пойму Вас… какие именно кавычки, без них нелогично как то
0
В примере выше обычные кавычки автоматически преобразованы в елечки "" -> «». Представленный код я перед тем как постить проверил. В общем не знаю почему у вас не сработало.
Отредактирован:
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.