В данной серии уроков мы научимся писать плагины для движка E107 и заодно рассмотрим некоторые встроенные функции в Е107, например, очень полезные функции для работы с базой данных. Авторы движка постарались, чтобы работа с базой данных была как можно проще. Всего будет 3 урока. Можно сразу скачать все три скрипта плагина в разделе даунлоад.
Напишем небольшой плагин, который будет выводить случайный анекдот из базы данных. Данный плагин очень простой и примитивный, имеет минимум функционала. Нашей задачей будет показать, как все-таки пишутся плагины для E107. Можете поупражняться на досуге и развить этот плагин во что-то более дельное.
Суть вопроса.
Нужно создать скрипт, который бы был плагином для Е107, мог бы инсталлироваться как плагин, управляться из админки, ну и конечно, показываться на сайте. Для темы выберем простенькую задачку: показывать анекдоты на сайте в случайном порядке. Анекдоты будут храниться в базе данных. От вас требуется знание PHP и основ MySQL.
Приступим.
Итак, с тех. заданием немного определились. Пожалуй, самое время подробней рассказать о плагинах. Плагин - это дополнительный модуль (набор PHP-скриптов), расширяющий функционал движка. Плагины бывают разные, нужные и не очень. Тем не менее, даже в стандартной поставке Е107 присутствуют немало плагинов, хотя некоторые думают, что это стандартные средства Е107. Для того чтобы система поняла, что есть какой-то плагин, который нужно использовать, нужно проделать некоторые операции.
В каталоге e107_plugins нужно создать файл с описанием плагина plugin.php с некоторым заранее определенным содержимым и еще как минимум один рабочий файл, который будет поддерживать функционал плагина, проще говоря, обработчик. Хотя обычно плагин состоит из большего числа файлов. Например, файла описания плагина, конфигуратора и обработчика. В этом уроке мы рассмотрим содержимое файла plugin.php.Для удобства работы лучше создать отдельную директорию, куда мы будем складывать все наши файлы. Имя директории пусть будет anekdot.
plugin.php - Описание плагина.
Если взглянуть на разные директории с плагинами, то можно убедиться, что почти во всех присутствует этот файл. И даже больше, этот файл во всех плагинах имеет практически одинаковый формат. Поскольку все переменные, описываемые в плагине, должны быть именно такими, какие они есть. Мы тоже не будет отходить от традиций и воспользуемся некоторым шаблоном.
<?PHP
$eplug_name="Анекдотик";
$eplug_version="0.1";
$eplug_author="e107club";
$eplug_logo="button.png";
$eplug_url="http://e107club.ru";
$eplug_email="ezik@domain.ru";
$eplug_description="Этот плагин показывает анекдоты";
$eplug_compatible="e107 v0.7.22++";
$eplug_readme="";
В общем-то, тут все понятно. Это информация о плагине, которая будет отображаться в админке – управление плагинами.
$eplug_folder="anekdot";
Имя папки, в которой будет лежать плагин. В итоге должен получится путь /e107_plugins/anekdot.
$eplug_menu_name="";
Оставим пустым, нашему плагину не потребуется.
$eplug_conffile="anekdot_conf.php";
Имя файла, отвечающего за настройку плагина.
$eplug_icon=$eplug_folder."/images/icon.png";
$eplug_caption="Настроить анекдотик";
Путь до иконки плагина и название заголовка.
$eplug_prefs="";
Заранее определенные настройки. Нам не потребуются.
Список и название таблиц базы данных, которые будут использоваться скриптом. Нам нужна всего одна.Следует заметить, что приставки к названию таблиц будут добавлены автоматически. Например, если у вас при установке движка был задан префикc pref_, то в итоге таблица будет называться pref_anekdot.
Нужно ли добавлять ссылку в главное меню навигации: TRUE=да FALSE=нет
$eplug_link_name="Хочу анекдот";
$eplug_link_url= e_PLUGIN."anekdot/anekdot.php";
Как будет называться ссылка и куда в итоге приведет.
$eplug_done="Поздравляем, все гладко";
Надпись по завершении установки плагина.
Остальные поля нам не нужны, оставим их как есть, к тому же из их названий легко можно понять, для чего они нужны. Например, эти поля – для апгрейда, но нам он точно не нужен.
$upgrade_add_prefs="";
$upgrade_remove_prefs="";
$upgrade_alter_tables="";
$eplug_upgrade_done="";
?>
Теперь сохраняем весь наш файл. Поздравляю, начало положено, не так уж и сложно