Создание модулей / плагинов незначительно отличается для Cononti Siena от Cotonti Genoa. Основные отличия – явный доступ к мультихукингу и возможность добавления настроек модуля для различных его категорий, о чем будет рассказано позднее.

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

Структура файла установки (module.setup.php), на примере установщика модуля page:

<?php
/* ====================
[BEGIN_COT_EXT]
Name=Pages
Description=Pages and Categories
Version=0.9.0 
Date=2010-nov-25 
Author=Neocrome & Cotonti Team
Copyright=(c) Cotonti Team 2008-2011
Notes=BSD License
Auth_guests=R
Lock_guests=A 
Auth_members=RW1
Lock_members=  
Admin_icon=img/adminmenu_page.png 
[END_COT_EXT]

[BEGIN_COT_EXT_CONFIG]
markup=01:radio::1:
[END_COT_EXT_CONFIG]

[BEGIN_COT_EXT_CONFIG_STRUCTURE] 
order=01:callback:cot_page_config_order():title:
[END_COT_EXT_CONFIG_STRUCTURE]
==================== */
?>

Setup файл представляет собой три блока опций: COT_EXT (между тегами [BEGIN_COT_EXT][END_COT_EXT]) – информация о самом модуле / плагине (была подробно рассмотрена, COT_EXT_CONFIG – конфигурация модуля / плагина, COT_EXT_CONFIG_STRUCTURE – настройки для отдельных элементов структуры модуля.

Рассмотрим важные элементы блока COT_EXT:

Name – обязательны блок имени модуля/плагина

Version - Версия. Четко ведите нумерацию версий. Она необходима для корректного обновления модуля/плагина в последующем. Избегайте скачек версий.

Auth_guests / Auth_members - права, которые будут включены по умолчанию для гостей / пользователей (группа 4). Используется система RWA12345 (Чтение / Запись / Администрирование / 5 дополнительных ключей)

Lock_guests / Lock_members – права, которые будут заблокированы (недоступны для редактирования) для гостей / пользователей

Admin_icon – Путь к иконке. Если необходимо добавить иконку в шапку админ-панели. Данная опция доступна только лишь для модулей с подключенной частью admin

Блок COT_EXT_CONFIG и COT_EXT_CONFIG_STRUCTURE содержать информацию в одинаковом формате, поэтому рассматривать их будем блоком. Данные модули позволяют нам добавить конфигурацию/настройки модуля в админ-панели. COT_EXT_CONFIG – вывод общих опций для плагина. Используются на сайте как $cfg['plugins']['код_плагина']['опция'] - для плагинов или $cfg['код_модуля']['опция'] – для модулей. COT_EXT_CONFIG_STRUCTURE - доступен только для модулей, которые используют категории (например модули page и forums). Доступ к данным опциям $cfg['код_модуля']['код_категории']['опция'].

Теперь собственно о структуре строки опции в конфиг файле:

Код_опции=Номер:Тип:Параметры:По_умолчанию:Подпись

Подпись – это то, как будет отображаться текст в админ-панели. Данную часть можно указать непосредственно в setup файле, или использовать lang файлы, где подпись будет в формате:

$L['cfg_код_опции'] = array('Подпись', 'Дополнительная пояснительная записка');

Номер – это последовательность отображения данной опции в админ-панели при конфигурации модуля/плагина.

По_умолчанию – значение по умолчанию, которое будет выставлено сразу после установки модуля/плагина.

Тип – тип поля, существуют следующие типы полей (смотрим функцию cot_config_parse() файла configuration.php):

  • string – строка. Параметры не используются
  • select – Селект. В качестве параметров указываются варианты выбора. Данные варианты доступны для локализации в виде ланг строки $L['cfg_код_опции_params'] = array(); (введено в сиене)
  • radio – радио-выключатель. Может быть 0 – выключен или 1 - включен.
  • callback – callback функция – в качестве параметра указывается имя функции (новое в сиене)
  • hidden – параметр не доступный для правки из-под админ панели (новое в сиене).
  • separator – специальный вид конфигуратора. Необходим для визуального разделения большого количество опций в админ-панели (новое в сиене).
  • range – диапазон. Тот же select – но в виде диапазона чисел. В качестве параметров через запятую указывается минимальное и максимальное значение (новое в сиене).
  • textarea – текстовое поле.

С параметрами разобрались. Все необходимы прочие действия при установке, будь то SQL патчи или PHP, находятся в папке setup модуля (модуль.install.php, модуль.uninstall.php, модуль.install.sql, модуль.uninstall.sql).

Помимо этого. При установке Cotonti необходимо "знать", какой файл для чего использовать и где использовать. Для этого у всех файлов в корневой директории должны быть прописаны заголовки в определенном формате:

/* ====================
[BEGIN_COT_EXT]
Hooks=admin
[END_COT_EXT]
==================== */

В отличие от Cotonti Genoa в Cotonti Siena обязательно указывается лишь хук, остальные элементы автоматически указываются.

Хуки - это место, в котором наш файл будет подключен. Помимо хуков внутри файлов есть еще, которые необходимы для отдельного независимого отображения страницы – standalone, ajax (отображение страницы без шапки и футера), tools(админка для плагинов), admin(админка для модулей). Можно указывать не 1 хук, а несколько через запятую – тогда файл будет подключен в нескольких местах.

Order – еще 1 параметр, который доступен для объявления, И по умолчанию равен 10. Необходим для создания правильной очередности подключения файлов для данного хука.

Tags – например header.tpl:{TAG1}, {TAG2}; footer.tpl:{TAG3} – указывает теги, которые будут использованы в шаблонах, необходимо для того чтобы облегчить установку плагина администраторам сайта.

Хотелось бы напоследок отметить еще одно ключевое отличие Siena: теперь все файлы модуля должны(!) иметь определенное имя:

КОДМОДУЛЯ.ЧАСТЬ.php

О других возможностях в работе инсталятора будет написано позднее.


Комментарии

Комментарии отсутствуют
У Вас есть вопросы?
Давайте обсудим их! Продумаем! Сделаем!
Напишите прямо сейчас!

Новый комментарий

Имя:
:

Смотрите также:

Нет изображения

ЧПУ пресет для Siena

Готовый пресет красивых урлов
Нет изображения

Cotonti Developer Tools

Первая утилита разработчика Cotonti
Нет изображения

Siena. Создаем свой модуль. Краткая информация.

Разбирается с setup файлом модулей
Нет изображения

Работа с БД

Азы работы с базами данных в Cotonti Siena
Нет изображения

Siena. Первое знакомство. Структура файлов.

Потытаемся разобраться где что искать
Нет изображения

Cowidgets

Виджеты от котонти
Первый контакт с нами