Установка кода SAPE на phpbb 3.1.1
25.11.2014Поскольку великомудрые разработчики в новой версии неслабо перепилили движок форума, то закономерно встал вопрос как поставить код Sape на phpbb3.1. Памятка дабы не забыть:
0. Скачиваем с сайта сапы новый код.
1. Открываем файлы index.php, viewforum.php и viewtopic.php.
2. В самое начало добавляем код:
if (!defined('_SAPE_USER')){
define('_SAPE_USER', 'сюда копипастнуть ваш ид');
}
require_once(realpath($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'));
$o['multi_site'] = true; //это если у вас несколько сайтов
$o['charset'] = 'utf-8';
$sape = new SAPE_client($o);
unset($o);
$sapeLinks = $sape->return_links();
4. Ищем строку:
$template->assign_vars(array(
Там таких несколько, нужна та где много всяких разных присвоений массиву. После неё вставляем:
'SAPE_LINKS' => $sapeLinks,
5. В нужном месте шаблона добавляем:
{SAPE_LINKS}
6. Чистим кэш.
Если хочется выводить в разных местах и разное количество ссылок, то соответственно:
$sapeLinks1 = $sape->return_links(2);
$sapeLinks2 = $sape->return_links(2);
$sapeLinks = $sape->return_links();
и
'SAPE_LINKS1' => $sapeLinks1,
'SAPE_LINKS2' => $sapeLinks2,
'SAPE_LINKS' => $sapeLinks,
и
{SAPE_LINKS1}
{SAPE_LINKS2}
{SAPE_LINKS}
Справедливости ради надо отметить, что это не особо кошерный способ, ибо идеология новой версии не подразумевает правку кода, однако на данный момент нет расширения прямо реализующего этот функционал. Так что пока ждём и используем грязные хаки.
Берем includes/functions.php и создаем там
function smarty_function_sape($params,&$smarty){
$linkId=isset($params[‘linkId’])?$params[‘linkId’]:””; // Проверяем если нам передали параметр linkId, то переменной $linkId присваиваем это значение, если нет то устанавливаем ее в пустую строку
define(‘_SAPE_USER’, ‘хххххххххххх’);
require_once($_SERVER[‘DOCUMENT_ROOT’].’/’._SAPE_USER.’/sape.php’);
$o[‘charset’] = ‘UTF-8’; // Кодировка сайта
$o[‘force_show_code’] = true; // Проверка работоспособности кода
$o[‘request_uri’] = getenv(‘REQUEST_URI’); // Делаем ссылки sape устойчивыми к GET-параметрам
$sape = new SAPE_client($o);
unset($o);
return $sape->return_links();
}
Затем в темплайте вставляем {sape} и усе.
Уже неактуально, запилили рабочий мод: http://www.ppkbb3cker.ru/viewtopic.php?f=67&t=3931
Чтобы скачать требуется регистрация, ну и там с файлом sape.php пошаманить надо, либо взять готовый из дистра.