Активный
- Тема Автор
- #1
Дополнения расширяют функциональность форума. Разберем создание простого дополнения.
Структура дополнения
Дополнение состоит из:
- addon.json - файл конфигурации
- Классы PHP
- Шаблоны (опционально)
- JavaScript (опционально)
Создание addon.json
Создание класса дополнения
Регистрация слушателей событий
В файле _metadata.json:
Создание страницы
Создание маршрута
В файле _metadata.json:
Создание шаблона
Создайте файл myaddon_page в папке шаблонов:
Установка дополнения
1. Загрузите файлы дополнения на сервер
2. Перейдите в админ-панель
3. Установите дополнение через интерфейс
Обновление дополнения
1. Загрузите новые файлы
2. Обновите версию в addon.json
3. Обновите через админ-панель
Важные моменты:
- Следуйте стандартам кодирования XenForo
- Тестируйте дополнение перед публикацией
- Документируйте функциональность
- Обеспечьте совместимость с другими дополнениями
Дополнения расширяют возможности форума!
Структура дополнения
Дополнение состоит из:
- addon.json - файл конфигурации
- Классы PHP
- Шаблоны (опционально)
- JavaScript (опционально)
Создание addon.json
Код:
{
"legacy_addon_id": "",
"title": "Мое дополнение",
"version_id": 1000000,
"version_string": "1.0.0",
"require": {
"XF": [2010070, "XenForo 2.0.0+"],
"php": ["7.0.0", "PHP 7.0.0+"]
}
}
Создание класса дополнения
Код:
<?php
namespace MyAddon;
class Listener
{
public static function templatePostRender($templateName, &$content, array &$containerData, \XF\Template\Templater $templater)
{
if($templateName == 'forum_list')
{
$content = str_replace('Forum List', 'My Custom Forum List', $content);
}
}
}
?>
Регистрация слушателей событий
В файле _metadata.json:
Код:
{
"event_id": "template_post_render",
"execute_order": 10,
"callback_class": "MyAddon\\Listener",
"callback_method": "templatePostRender",
"active": true,
"hint": "",
"description": ""
}
Создание страницы
Код:
<?php
namespace MyAddon\Pub\Controller;
use XF\Mvc\ParameterBag;
use XF\Pub\Controller\AbstractController;
class MyPage extends AbstractController
{
public function actionIndex(ParameterBag $params)
{
$viewParams = [
'message' => 'Привет из моего дополнения!'
];
return $this->view('MyAddon:MyPage', 'myaddon_page', $viewParams);
}
}
?>
Создание маршрута
В файле _metadata.json:
Код:
{
"route_type": "public",
"route_prefix": "myaddon",
"sub_name": "",
"format": "",
"build_class": "XF\\Mvc\\Router",
"build_method": "buildLink",
"controller": "MyAddon\\Pub\\Controller\\MyPage",
"context": "",
"action_prefix": ""
}
Создание шаблона
Создайте файл myaddon_page в папке шаблонов:
Код:
<xf:title>Моя страница</xf:title>
<div class="block">
<div class="block-container">
<div class="block-body">
<p>{$message}</p>
</div>
</div>
</div>
Установка дополнения
1. Загрузите файлы дополнения на сервер
2. Перейдите в админ-панель
3. Установите дополнение через интерфейс
Обновление дополнения
1. Загрузите новые файлы
2. Обновите версию в addon.json
3. Обновите через админ-панель
Важные моменты:
- Следуйте стандартам кодирования XenForo
- Тестируйте дополнение перед публикацией
- Документируйте функциональность
- Обеспечьте совместимость с другими дополнениями
Дополнения расширяют возможности форума!