Установка кода Sape и Linkfeed на phpBB 3.2 | Вебмастер DataLife Engine

Начиная с версии 3.1.x в phpBB произошли изменения которые усложнили установку кода систем Sape и Linkfeed на форумы phpBB. В данной статье я расскажу как без использования каких либо модулей phpBB установить код этих систем на форум phpBB с версиями 3.1.x и 3.2.

В phpBB 3.2 в целях безопасности по умолчанию отключена функция выполнения кода php в шаблонах. Ее конечно можно включить в администраторском разделе, но  лучше этого не делать, т.к при этом снижается безопасность форума. Так же в phpBB начиная с версии 3.1.x перестала работать переменная $_SERVER. Поскольку эта переменная фигурирует и в коде подключения как sape, так и linkfeed, а так же в php файлах с их кодом установка кода этих систем на форум phpBB 3.2 немного осложнена.

Итак, для того что бы не выполнять php код вызова sape и linkfeed в шаблоне форума, поместим этот код в /includes/functions.php.

При этом, поскольку переменная $_SERVER у нас не работает, везде где встретим $_SERVER будем пользоваться правилом:

Каждое вхождение $_SERVER[‘что_то_там’]; заменяем на $request->server(‘что_то_там’);
В каждой функции, где есть эти вхождения, в начале добавить global $request;

Это правило стоит выполнять как в коде вызова sape и linkfeed, так и в самих файлах этих систем sape.php и linkfeed.php.

Модернизированные файлы этих систем с учетом этого правила вы можете скачать здесь — linkfeed и sape.

После того, как вы заменили sape.php и linkfeed.php на модернизированные приступим к их вызову. Для этого идем в файл /includes/functions.php форума и ищем в нем следующий код:

if ($task)
{
$url = $task->get_url();
$template->assign_var(‘RUN_CRON_TASK’, ‘<img src=»‘ . $u
}
else
{
$cache->put(‘_cron.lock_check’, true, 60);
}

Ниже добавляем код sape:

if (!defined(‘_SAPE_USER’)){
define(‘_SAPE_USER’, ‘тут пишем свой саповский код‘);
}
global $request;
require_once($request->server(‘DOCUMENT_ROOT’).’/’._SAPE_USER.’/sape.php’);
$o[‘charset’] = ‘utf-8’;
$sape = new SAPE_client($o);
$sape = new SAPE_client();
unset($o);
$sape_links = $sape->return_links();
$template->assign_var(«SAPE_LINKS», $sape_links);

При использовании linkfeed код будет следующим:

define(‘LINKFEED_USER’, »тут пишем свой код linkfeed»);
global $request;
require_once($request->server(‘DOCUMENT_ROOT’).’/’.LINKFEED_USER.’/linkfeed .php’);
$linkfeed = new LinkfeedClient();
$linkfeed->return_links();
$template->assign_var(«LINKFEED_LINKS», $linkfeed);

Теперь идем в шаблон, что бы указать место в которое выводить ссылки. Для этого откроем файл /forum/styles/prosilver /template/ overall_footer.html и в нем в необходимом месте для вывода ссылок укажем {SAPE_LINKS} для вывода ссылок sape или {LINKFEED_LINKS} для вывода ссылок с linkfeed.

При каждом изменении в шаблоне, для того чтобы обновилась информация на форуме, в разделе администратора необходимо сбросить кэш.


После этого код с систем sape и linkfeed на вашем форуме должен начать работать. Проверить это можно удалив файл .db в папке с кодом sape или linkfeed, обновить страницу форума, при этом файл .db в папке с кодом биржи ссылок должен восстановиться.

  • Опубликовано 18. марта 2017
  • Автор: admin
  • Категории WordPress
Оставить комментарий
 

Еще нет никаких комментариев.

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

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