[Помощь] Вставка php кода на сайт

Тема в разделе "WebAsyst", создана пользователем DENISXXXL, 23 дек 2009.

Статус темы:
Закрыта.
Модераторы: mdss
  1. DENISXXXL

    DENISXXXL

    Регистр.:
    14 апр 2008
    Сообщения:
    181
    Симпатии:
    10
    Захотел чтоб на сайте отображался статус ICQ, но не нравятся предлагаемые ими (сервисом ICQ) иконки.

    Решил использовать свои и поставил на сайт php код как описано здесь:

    http://www.focusoff.ru/razrabotchikam/scripts/9-icqstat.html

    также настроен файл конфигурации и использованы теги {php} {/php} как здесь:

    http://www.shop-script.ru/support/help/php-in-templates.html

    Но на сайте код не обрабатывается а просто отображается как текст...

    пробовал даже просто вот такой код:

    {php}
    echo “hello, world!…”;
    {/php}

    Он тоже отображается как простой код. (Вставляю редактором дизайна через произвольный HTML код)

    В чём причина, подскажите пожалуйста!!!!:bc::bc::bc:
     
  2. Valeras

    Valeras Постоялец

    Регистр.:
    23 апр 2007
    Сообщения:
    107
    Симпатии:
    36
    Некоторый функционал сложно или просто невозможно реализовать на smarty, а иногда
    просто проще вернуться к уже знакомому языку программирования.
    В smarty есть такая возможность, с помощью плагинов.
    Рассмотрим создание плагина на примере.
    Задача: в определенном месте вывести надпись “Hello world” с помощью php.
    В папке /kernel/includes/smarty/plugins создаем файл function.myfunction.php с
    содержанием:
    (В старых версиях скриптов плагины лежат в папке /published/SC/html/scripts/smarty/plugins)
    <?php
    function smarty_function_myfunction($params, &$smarty) {
    return 'Hello, world!';
    }
    ?>
    Теперь в нужном месте html-файла необходимо вставить тег {myfunction}.
    Чтобы эти теги работали в информационных страницах, нужно:
    В файле \published\SC\html\scripts\templates\frontend\aux_page.html после
    открывающейся “{” добавить - eval var=
    Плагины в смарти делятся на несколько типов:
    · function - функции
    · modifier - модификаторы (например, {$str|capitalize})
    · block - блоки (блоковые функции, например {foreach}…{/foreach})
    · compiler - функции, запускаемые во время компиляции
    · prefilter - фильтр шаблона, запускаемый перед компиляцией (работает с исходником
    шаблона)
    · postfilter - фильтр шаблона, запускаемый после компиляции (работает с результатом
    компиляции шаблона - php-кодом, который сохраняется на диск в папку templates_c)
    · outputfilter - фильтр шаблона, запускаемый после компиляции шаблона, но до вывода
    результатов этой компиляции
    · resource - ресурсы (для взаимодействия с базой данных, сокетами и т.д.)
    · insert - для тега {insert}
    Мы сейчас писали плагин первой категории, т.е. function, поэтому имя файла начинается с
    этого слова. А вообще, файл должен называться по таким правилам:
    тип_плагина.имя_функции.php
    А функция в самом файле плагина должна именоваться по таким правилам:
    smarty_[тип_плагина]_[имя_функции]
    Вместо вывода фразы вставляем тот функционал, который нам нужен.
     
  3. Valeras

    Valeras Постоялец

    Регистр.:
    23 апр 2007
    Сообщения:
    107
    Симпатии:
    36
    Нашел позже, взял отсюда

    Чтобы вставить в код файла шаблона фрагмент PHP-кода, в Smarty используются теги {php} ... {/php}, между которыми следует вставлять пользовательский код, например:
    Код:
    {php}echo 'Hello world!';{/php}
    
    В WebAsyst Shop-Script возможность использования тегов {php} ... {/php} по умолчанию отключена. Чтобы ее активировать, необходимо в файле /published/SC/html/scripts/classes/class.view.php изменить строку
    Код:
    $this->security_settings['PHP_TAGS'] = false;
    
    следующим образом:
    Код:
    $this->security_settings['PHP_TAGS'] = true;
    
    Кроме файлов-шаблонов PHP-код описанным здесь образом можно также вставлять с помощью встроенного редактора дизайна, переключившись в режим «Редактировать HTML-код».
     
Статус темы:
Закрыта.