Добавляем в sape сайт на Livestreet 0.5.1

При переносе сайта на свежую версию Livestreet я столкнулся с проблемой добавления кода сапы на новый сайт. Дело в том что в новой версии движка обновился шаблонизатор Smarty в котором фактически отказались от использования конструкций вида {php} ибо логику от вывода все же надо отделять.В большинстве сайтов на Livestreet сапа была подключена примерно таким образом в tpl-файле (в моём случае sidebar.tpl):

{php}
 if (!defined('_SAPE_USER')){
 define('_SAPE_USER', 'код');
 }
 $o['charset'] = 'UTF-8';
 require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
 $sape = new SAPE_client($o);
 unset($o);
 echo $sape->return_links(n);
 {/php}

Такая конструкция сейчас не работает!

Ответ как ни странно был найден на форуме sape.ru, думаю что мадемуазель Inga не огорчится если я опубликую здесь её решение:

1) Идём в engine/lib/external/Smarty/libs/plugins/
2) Создаём там файл function.sape.php с немного модифицированным предыдущим кодом:

<?php
 function smarty_function_sape($params,&$smarty)
 {
 define('_SAPE_USER', 'ваш_длинный_код');
 require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
 $o['charset'] = 'UTF-8';
 $sape = new SAPE_client($o);
 unset($o);
 return $sape->return_links();
 }
 ?>

3) Теперь для вызова кода сапы можно использовать конструкцию {sape} в любом шаблоне.

Если вы используете PHP версии 5.3 то возможно что вы также столкнётесь с такой ошибкой:

Deprecated: Function set_magic_quotes_runtime() is deprecated ...

Дело в том что данную функцию в ближайшем будущем уберут из php.

Для решения этой проблемы открываем файл sape.php который находится в папке с вашим sape-кодом в корне сайта и заменяем вот эту строчку:

set_magic_quotes_runtime(0);

на

ini_set(«magic_quotes_runtime», 0);

Теперь всё работает как надо! =)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.