Установка коду sape і linkfeed на phpbb 3

Установка коду sape і linkfeed на phpbb 3
Починаючи з версії 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 форуму і шукаємо в ньому наступний код:

Нижче додаємо код 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 або для виведення посилань з linkfeed.

При кожній зміні в шаблоні, для того щоб оновилася інформація на форумі, в розділі адміністратора необхідно скинути кеш.

Установка коду sape і linkfeed на phpbb 3

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