Язык
Контакты
GitHub
Поддержка
Регистрация
Войти
Логин: Пароль: Запомнить:
Пользователи
Голосование

    Какую CMS Вы предпочитаете

    AtomX
    Fapos CMS
    Drunya CMS
Последние комментарии
Топ пользователей
Drunya
Репутация: 110
Сообщений: 3527
Сашка_из_Шебекино
Репутация: 87
Сообщений: 1803
boriska
Репутация: 65
Сообщений: 846
ARMI
Репутация: 46
Сообщений: 1858
BAH0
Репутация: 26
Сообщений: 544
Главная » Статьи » Архив » Разное
Хоть в документации и освещена эта тема, тут я постараюсь раскрыть ее более подробно и с примерами. Так сказать - разжевать. Надеюсь это повлечет волну плагинов для, всеми нами любимого, движка).

И так, как делать плагины для Fapos CMS?

Есть несколько пунктов, которые просто обязательны. Это как бы система, которая призвана внести некий порядок. Хотя сама архитектура плагина может быть несоизмеримо объемной и ограничена, в конечном счете, только вашей фантазией.

1. Все плагины должны находиться в папке /sys/plugins/. Иначе система их просто не увидит.

2. Плагин Fapos CMS, должен содержать, как минимум, два файла: index.php и config.dat.

3. Должны быть соблюдены соглашения имен методов, классов и настроек. Только обязательных. Их всего несколько штук. Далее начинается полет фантазии.


И так начинаем.

Первым делом, нам надо определиться, под какой хук мы будем писать плагин(список и детальное описание хуков скоро будет в документации и я напишу отдельный пост на эту тему). Для примера, возьмем хук before_view. Этот хук(hook) позволяет манипулировать полностью сформированной страницей, прямо перед ее выводом.

Теперь придумываем название нашего будущего плагина. Я не смог придумать ничего оригинальнее fufuplugin(уж простите).

Все эти данные говорят нам о том, что каталог для нашего плагина будет называться before_view_fufuplugin. Создаем этот каталог и в нем два файла. index.php и config.dat. PHP файл - это файл с логикой плагина. Там будет наш php код. config.dat - это конфигурационный файл. С ним частенько возникают вопросы, по этому я остановлюсь на нем подробно.

Конфиг должен содержать, как минимум, следующие параметры:
className - это название класса, который будет находится в файле index.php. Позже вы увидите это.
title - название(любое)
description - описание(любое)
active - ставим 1. Это будет означать, что плагин работает.

Все эти настройки должны храниться в виде сериализованного массива. Я покажу простой скрипт для создания такого конфига.
 1 
 2 
 3 
 4 
 5 
 6 
 7 
<?php $conf = array(
    
'className' => 'Fufuplugin',
    
'title' => 'fufu',
    
'description' => 'simple plugin',
    
'active' => 1,    
);
file_put_contents('config.dat'serialize($conf));?>
После запуска скрипта, в каталоге с ним появится наш конфиг.

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


А теперь я покажу, как должен будет выглядеть самый простой класс для этого плагина. Файл index.php
 1 
 2 
 3 
 4 
 5 
 6 
<?php class Fufuplugin {

    public function 
common($params) {
    
    }
}
?>
Метод common обязательный. Управление с хука передается именно ему, а дальше вы вольны делать, что угодно.
Параметр $params - это данные с хука. В данном случае, это вся страница. Обратите внимание, я назвал класс именно так, как прописал в конфиге - это важно. Иначе плагин не будет работать.


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


Ну а теперь, самое интересное - как управлять всем этим из админки. Сейчас я расскажу, как собрать плагин, который добавит в админку новые страницы для настроек. Для этого нам понадобится создать в каталоге нашего плагина еще один файл - settings.php. Что бы все работало, как надо, есть лишь одно условие - этот файл должен определять переменную $output.
Например(settings.php):
 1 
 2 
<?php $output 'Plugin settings';?>
Если вашь файл settings.php будет содержать такую строку, перейдя на страницу настройки своего плагина, вы увидите текст Plugin settings.

Но есть вещи по интереснее. Например мы желаем, что бы у нас была не одна страница а несколько и мы могли перемещаться между ними для детальной настройки нашего плагина Fapos CMS. На этот случай, нам надо предусмотреть логику нашего кода в файле settings.php и знать как формировать ссылки на наши страницы. Дело в том, что для перехода к настройкам плагина мы должны перейти по адресу host.com/admin/plugins.php?ac=edit&dir=каталог плагина. То есть в нашем случае, это будет host.com/admin/plugins.php?ac=edit&dir=before_view_fufuplugin. Теперь о логике самого файла settings.php.

Как видите, мы должны передать два обязательных параметра, но никто не запрещает добавлять свои. Например мы можем сделать, что-то типа:


 1 
 2 
 3 
 4 
<?php if (!empty($_GET['page']) && $_GET['page'] == 2)
    
$output '<a href="/admin/plugins.php?ac=edit&dir=before_view_fufuplugin&page=1">To page 1</a>';
else 
    
$output '<a href="/admin/plugins.php?ac=edit&dir=before_view_fufuplugin&page=2">To page 2</a>';?>
Думаю тут все понятно. Мы просто передаем дополнительный параметр page и на основе этого параметра создаем логику.


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


Желаю вам легкого осознания всего вышеизложенного и жду ваши плагины в разделе форума "готовое". Плагины с хорошими отзывами будут переноситься в фаловый архив Fapos CMS.

Спасибо и не переключайте)
Пишем плагины для Fapos CMS

Теги: Плагины Fapos Plugins for Fapos CMS Free CMS;
Автор: Drunya
Категория: Разное
Просмотров: 3981
Комментариев: 6

Комментарии
  • User avatar

    ARMI

    документация - Для разработчиков - Устройство шаблонов
    Дата отправления: 12 Дек 2011
  • User avatar

    Drunya

    Ну об этом уже не одна статья написана и даже видео есть. В Fapos CMS шаблоны содержат только HTML и CSS, так что там даже в программировании разбираться не надо.
    Дата отправления: 12 Дек 2011
  • User avatar

    DachTeam

    какие обизательные файлы, каркас, синтаксис, ну и все в этом духе
    Дата отправления: 11 Дек 2011
  • User avatar

    DachTeam

    ет понятно, я может не так выразился как зделать свой шаблон?
    Дата отправления: 11 Дек 2011
  • User avatar

    Сашка_из_Шебекино

    DachTeam, положи шаблон в папку template, а затем в админке в общих настройках смени дизайн на новый
    Дата отправления: 11 Дек 2011
  • User avatar

    DachTeam

    ну с плагинами кое как понятно, но как шаблон поставить на уже работающий сайт
    Дата отправления: 11 Дек 2011
Категории:
Сейчас online: 34. Зарегистрированных: 0. Гостей: 34.
-->