Задача: Для форумного движка XenForo организовать вызов и выполнение собственного php-скрипта с добавлением результата в шаблон страницы. Версия XenForo 1.1.4.
Статья для тех, кто пока не хочет вдаваться в подробности архитектуры и тонкостей программирования под данный движок. Рассматриваемое решение собрано и обобщено из материалов форумов, посвященных xenForo.
Для решения этой задачи нам необходимо пошагово выполнить несколько действий: создать и добавить php-файл и сделать несколько настроек в панели администратора движка.
Теперь более подробно:
1. в директории /libary/ создаем новую папку myNewAddon, где создаем новый файл Listener.php со следующим кодом:
<?php
class myNewAddon_Listener {
public static function templateHook($hookName, &$contents, $params, XenForo_Template_Abstract $template) {
if ($hookName == 'my_php_include') {
ob_start();
// вместо my_php_file.php указываем нужный нам php или html файл с указанием директории
require_once(($_SERVER['DOCUMENT_ROOT'] . '/my_php_file.php');
$contents .= ob_get_contents();
ob_end_clean();
}
}
}
Стоит отдельно уточнить, что название папки (myNewAddon) должно совпадать с названием класса (myNewAddon_Listener). Из-за разницы в названиях может быть ошибка.
2. далее необходимо переключить форум в режим отладки. В файле /libary/config.php меняем:
$config['debug'] = false;
на:
$config['debug'] = true;
Теперь в меню панели администратора появится дополнительный раздел «Разработка».
3. Создаем новое дополнение: в админке Разработка > Создать дополнение
. Заполняем поля:
ID дополнения: произвольно
Заголовок: название своего дополнения, например myNewAddon
Сохраняем, закрываем.
4. Далее Админка > Разработка > Обработчики событий > Создать новый обработчик события
. В форме заполняем поля:
Обрабатывать событие: template_hook
Выполнить обработчик: myNewAddon_Listener :: templateHook
Дополнение: myNewAddon
Сохраняем, закрываем. После этого режим разработки уже не потребуется и его можно отключить (пункт 2).
5. Создаем новый шаблон Админка > Внешний вид > Шаблоны > Создать новый шаблон
. Заполняем поля:
Имя шаблона: my_php_code
шаблон без заголовка:
<xen:hook name="my_php_include"></xen:hook>
6. Добавляем код:
<xen:include template="my_php_code" />
в любое нужное место, точнее в любой шаблон Админка > Внешний вид > Шаблоны
.
Стоит внимательно отнестись к названиям классов и создаваемых директорий их название должны совпадать.
Что такое домен и для чего он нужен?
Простой способ открыть XML-файл выписки Росреестра
XenForo - выполнение собственного php-файла
В комментариях запрещено публиковать рекламные материалы. Все сообщения оправляются на модерацию и будут опубликованы, если не нарушают правил сайта после проверки.