X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> С Smarty знаком кто-то?, Вывод php-кода и проблемы
devuser
devuser
Topic Starter сообщение 23.1.2013, 2:42; Ответить: devuser
Сообщение #1


Здравствуйте, товарищи

Имеется проблема:
В третьей версии smarty отключено выполнение php-кода в шаблонах.
Но в некоторых случаях нужно иметь возможность выполнять этот самый код, например, чтоб не писать прокладку под каждую из бирж (я про сабж из подписи, но не реклама).

Самый простой способ - это написать свой плагин для смарти

block.php.php
<?php
    function smarty_block_php($params, $content, $template, &$repeat) {
        eval ($content);
        return '';
    }
?>


и вызывать его из шаблона следующим образом:
{php}
echo 'Hello, world';
{/php}

С этим проблем нет.

Как заставить его запоминать данные, вот в чем проблема.
Вызов вида
<div class="footer">
    {php}
        $i = 10;
    {/php}
    Какой-то текст и второй вызов блока php
    {php}
        echo $i;
    {/php}
</div>

Ничего не выведет.
То есть в рамках разных блоков переменная не сохраняется. Соответственно та же сапа при подключении в двух местах будет выводить одно и то же, с начала, что не хорошо.
Есть идеи по реализации?


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
kronos
kronos
сообщение 23.1.2013, 3:22; Ответить: kronos
Сообщение #2


Написать код в самом плагине, через параметры выводить что нужно.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
devuser
devuser
Topic Starter сообщение 23.1.2013, 3:23; Ответить: devuser
Сообщение #3


kronos,
это понятно

но я уточнял
чтоб не писать прокладку под каждую из бирж


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
x64
x64
сообщение 23.1.2013, 8:08; Ответить: x64
Сообщение #4


так из Вашего кода очевидно же: вызов идёт через функцию. а переменные, объявленные таким образом, локальны именно для этой функции. как вариант, использовать глобальные переменные.

<div class="footer">
    {php}
        $GLOBALS['i'] = 10;
    {/php}
    Какой-то текст и второй вызов блока php
    {php}
        echo $GLOBALS['i'];
    {/php}
</div>


Сообщение отредактировал x64 - 23.1.2013, 8:08
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
devuser
devuser
Topic Starter сообщение 24.1.2013, 1:11; Ответить: devuser
Сообщение #5


x64, спасибо, понимаю, про область видимости тоже в курсе.
Поэтому и спрашиваю идеи, как это обойти.

Если на примере, то:
Есть код сапы, который в одном месте подключается, а в некоторых других выводится методом $sape->return_links($n);
Этот код дает сама сапа и задача пользователя просто вставить его в шаблон.
Так вот, я не хочу заставлять их писать в одном месте что-то типа
$sape = new SAPE_client();
$sape->return_links();
$GLOBALS['sape'] = $sape;

а в другом
$sape = $GLOBALS['sape'];
$sape->return_links();

То есть не хочу напрягать рядового пользователя, возможно не знакомого с PHP, лишними действиями.
И поэтому спрашиваю мнения - как это реализовать.

Сапа - как пример, бирж может быть масса, коды разные. Писать прокладки под каждый не предлагайте, пожалуйста.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


Сообщение отредактировал devuser - 24.1.2013, 1:12


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Кто где хранит файлы? И какой объем?
просто интересно
22 mark2013 2645 15.4.2024, 8:08
автор: Room
Горячая тема (нет новых ответов) LITE.HOST - хостинг для тех, кто любит не переплачивать
74 akkyoh 30870 6.4.2024, 19:41
автор: Kseniya_Klimova
Открытая тема (нет новых ответов) Пишет кто отзывы на сайт в янднекс с разных аккаунтах
1 TenDemon_rs 1177 22.3.2024, 13:18
автор: writer80
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыКто и зачем покупает картинки обезьян по $200 тысяч?
NFT
167 metvekot 27417 6.3.2024, 21:58
автор: Boymaster
Открытая тема (нет новых ответов) Тизерная сеть Visitweb - кто покупает здесь трафик?
3 Boymaster 1354 29.2.2024, 10:24
автор: Skyworker


 



RSS Текстовая версия Сейчас: 20.4.2024, 5:01
Дизайн