Perfecto CMS - Система управления контентом
  • Русский язык
  • English version
Вход на сайт
Регистрация
Online документация
Online документация
Вы можете найти лучшие практичные процедуры по настройки, которые помогут вам лучше спланировать свои сайты.

Разработка первого модуля

5,070 просмотров / 16 Янв 2015 обновлено
Perfecto CMS - это гибкая и удобная система управления сайтом, которая позволяет сторонним разработчикам быстро освоить конструкцию системы для комфортной разработки дополнительных модулей. Подробная инструкция по разработке модуля приведена ниже.

Структура модуля

MODULE_NAME # далее будем обозначать им имя вашего модуля
LANG_NAME # далее будем обозначать им активный язык сайта

./modules/frontend/ # путь к папке модулей сайта
./modules/backend/ # путь к папке модулей админ-панели
./templates/frontend/default/ # путь к шаблонам сайта
./templates/backend/default/ # путь к шаблонам админ-панели
./languages/LANG_NAME/frontend/ # путь к языковым переменным сайта
./languages/LANG_NAME/backend/ # путь к языковым переменным админ-панели

Разработка модуля

  • 1. Файлы шаблонов (дизайн)
    Создаем 4 файла шаблонов, из которых 2 принадлежать фронтальной части сайта и другие 2 админ-панели.
    # основной файл модуля, который выводится исключительно на странице модуля
    ./templates/frontend/default/MODULE_NAME.tpl
    # глобальный шаблон, который выводится на любой странице сайта
    ./templates/frontend/default/MODULE_NAME.block.tpl
    # шаблон списка данных в админ-панеле
    ./templates/backend/default/MODULE_NAME.list.tpl
    # шаблон редактирование/добавления данных в админ-панале
    ./templates/backend/default/MODULE_NAME.action.tpl
    Файлы шаблонов имеют расширение *.tpl
  • 2. Файлы программной части
    Создаем 4 файла, из которых 2 принадлежать фронтальной части сайта и другие 2 админ-панели.
    # основной файл модуля, который обрабатывается исключительно на странице модуля
    ./modules/frontend/MODULE_NAME/module.php
    # глобальный файл модуля, который обрабатывается на любой странице сайта
    ./modules/frontend/MODULE_NAME/block.php
    # обработчик вывода списка данных
    ./modules/backend/MODULE_NAME/list.php
    # обработчик добавления, редактирования данных модуля
    ./modules/backend/MODULE_NAME/action.php
  • 3. Языковые переменные
    Создаем 2 файла для языковых переменных.
    # файл языковых переменных для сайта
    ./languages/LANG_NAME/frontend/MODULE_NAME.lng
    # файл языковых переменный для админ-панели
    ./languages/LANG_NAME/backend/MODULE_NAME.lng
    Обратите внимание, если у вас мультиязычный сайт, необходимо создать языковые файлы для каждого языка.
    Файлы языковых переменных имеют расширение *.lng и следующий синтаксис:
    			< ?
    $lang = array (
    'key_first' => "Первое значение",
    'key_second' => "Второе значение",
    'anyword' => "Значение третьей переменной"

    /* тут сколько угодно переменных */

    );
    ?>
  • 4. Подключение модуля
    4.1 идентификация
    Для идентификации модуля системой, необходимо сделать ниже указанный запрос в базу данных:
    			-- 
    -- MODULE_NAME - название модуля, идентично с названием MODULE_NAME
    -- MODULE_DESCRIPTION - описание модуля
    -- AUTHOR - имя автора
    -- AUTHOR_SITE - интернет адрес автора
    -- VERSION - версия модуля
    -- TIME - время создания
    -- CATEGORY - принимает значение 0 - если ваш модуль не требует интеграции с категориями, и 1 - если интеграция требуется
    --
    INSERT INTO `modules` (`name`, `title`, `text`, `author`, `author_site`, `version`, `date`, `type`, `category`, `status`)
    VALUES ('MODULE_NAME', 'MODULE_DESCRIPTION', NULL, 'AUTHOR', 'AUTHOR_SITE', 'VERSION', TIME, '1', 'CATEGORY', '1');
    4.2 админ-панель
    В админ-панеле необходимо зайти в раздел «Пользователи» → «Группы», далее редактировать каждую группу, ставив галочку, о разрешении прав на доступ к новому модулю.
    4.3 фронтальная часть модуля
    Подключение модуля к фронтальной части сайта осуществляется двумя методами: {#mod.MODULE_NAME} и {#mod_global.MODULE_NAME.block}
    Для подключения необходимо открыть ./templates/frontend/default/index.tpl, и в нужном месте расположить один или оба вышесказанных методов, с ссылкой на название вашего модуля.
    Допустим ваш модуль называется «bestmod», необходимо вызвать его через: {#mod.bestmod}
    При желании, идентичным методом можно вызвать глобальную часть модуля: {#mod_global.bestmod.block}.
  • 5. Вывод «Hello World»
    Давайте выведем на экран нашу любимую фразу «Hello World».
    Итак, открываем созданный ранее файл ./modules/frontend/MODULE_NAME/module.php и пишем следующий код (внутри тегов php):
    			< ?
    # ----------------------------
    # Заголовки конструкции модуля
    # ----------------------------
    if (!defined('PERFECTOCMS')) {
    die ("Access denied!");
    }
    $assign = "module_name";
    $template[$assign] = $assign.".tpl";
    $tpl->define($template);
    $core->language("module_name");

    /* старт вашего кода */

    $tpl->assign('firstvar', 'Hello world!'); # присвоение Hello World переменной firstvar

    /* конец вашего кода */

    # ----------------------------
    # генерация и вывод шаблона
    # ----------------------------
    $tpl->parse("MODULE_NAME","module_name");
    ?>
    И как следствие необходимо указать созданную переменную в файле шаблона данного модуля. Для этого открываем ./templates/frontend/default/MODULE_NAME.tpl и пишем следующий код в произвольном месте:
    			{firstvar}
  • 6. Страница модуля
    Созданный модуль будет доступен по адресу: ./index.php?module=MODULE_NAME
    Вы можете создать директиву в файле .htaccess, например как указано ниже:
    			# MY MODULE
    RewriteRule ^([a-z])?/?MODULE_NAME/?$ index.php?lng=$1&module=MODULE_NAME [L,QSA]
    RewriteRule ^([a-z])?/?MODULE_NAME/page/([0-9]+)/?$ index.php?lng=$1&module=MODULE_NAME&page=$2 [L,QSA]
    И модуль будет доступен по адресу: ./MODULE_NAME/

Готовый пример

Вы можете скачать готовый пример каркаса модуля для Perfecto CMS, изучить его и разработать модули на основе его.
Заказ дизайна
Уникальное предложение для клиентов Perfecto CMS. Если вы хотите оригинальный дизайн дайте нам знать и мы с вами свяжемся для обсуждения деталей.
Для минимизации времени на обсуждение и разработку, рекомендуем скачать бланк, заполнить его и отправить нам на электронный адрес: Our email
Приметная оценка проекта
600 USD

Ваш браузер устарел!

Пожалуйста, скачайте последнюю версию Internet Explorer
Кстати, мы рекомендуем использовать другой браузер ;)