Forumlar / National / Russian / Модули и плагины / [проект] Плагины - формат файлов

проект статьи

medar
#1468 2008-11-21 00:43
Что такое плагин?
Это php-код, который в дальнейшем инклюдится (вставляется) в код CMS в определенных местах, называемых "хуками". Плагины расширяют функционал сайта.

Плагин представляет собой папку с файлами, находящуюся в папке plugins. Название папки должно совпадать с именем плагина. Негласное соглашение - в имени плагина юзать только буквы английского алфавита и знак подчеркивания.

Пусть наш плагин называется pluginname
Он должен/может содержать следующие файлы:

Файл сетапа плагина:

pluginname.setup.php - название должно быть строго таким. Файл обязательно должен быть.
Внутри в начале должна быть следующая конструкция:

<?php
/* ====================
[BEGIN_SED_EXTPLUGIN]
Code=pluginname
Name=Plugin name
Description=
Notes=
Version=1.0
Date=
Author=
Auth_guests=R
Lock_guests=W12345A
Auth_members=RW
Lock_members=12345A
[END_SED_EXTPLUGIN]
[BEGIN_SED_EXTPLUGIN_CONFIG]
[END_SED_EXTPLUGIN_CONFIG]
==================== */
if ( !defined('SED_CODE') ) { die("Wrong URL."); }


Code - имя плагина
Name - название плагина, в вольной форме
Description - описание работы
Notes - вторая строка описания
Date - дата создания
Author - автор плагина
Дальше идут права юзеров при работе с данным плагином. Об этом в другом месте.

Фактически, обязательное поле здесь только одно - Code= , но параметры прав доступа (Auth_ , Lock_) лучше все же не стирать.

Файл(ы) собственно плагина:

another_work_file.php - название может быть произвольным (главное, чтобы оно совпадало с File= внутри этого файла). Но опять же принято называть их по образу pluginname.zone.php , где zone - это зона действия плагина (header, page, list, index, etc). Это не связано с системой, это применяется исключительно для лучшей читаемости. Название файла может быть любым.

Пусть файл называется pluginname.pagetags.php
Итак, его содержимое:

<?php
/* ====================
[BEGIN_SED_EXTPLUGIN]
Code=pluginname
File=pluginname.pagetags
Part=main
Hooks=page.tags
Tags={MY_TAG}, {MY_ANOTHER_TAG}
[END_SED_EXTPLUGIN]
==================== */
if (!defined('SED_CODE')) { die('Wrong URL.'); }


Поля Code, File и Hooks - обязательные.
Code - имя плагина (должно совпадать с Code в pluginname.setup.php)
File - имя данного файла (без .php)

Part - Возможно, область обработки вывода результатов работы плагина в tpl. Доподлино неизвестно, что это значит этот параметр, документация Seditio хранит молчание на этот счет. Возможно, это недоработанная вещь. Как правило прокатывает там ставить main.

Hooks - Хук (место в ядре движка), где будет происходить подключение плагина. Список всех хуков - здесь (надо бы его расписать с комментариями).

Tags - тэги, которые создает данный плагин. Их нужно записать в нужное место шаблонов, которые затрагивает плагин, и туда будет выводиться html-контент, формируемый плагинами.

Файлы инсталляции/деинсталляции

pluginname.install.php
pluginname.uninstall.php
Это опциональные файлы. Название - строгое. Внутренний формат - произвольный.

Автоматически выполняются соответственно при включении и выключении плагина.
Эти файлы нужны для плагинов, которые добавляют для своей работы дополнительные таблицы в базу, новый ббкоды в редактор или новые поля для страниц.
rangjungyeshe.ru