Установка компонента

Введение

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

  1. распаковать архив с компонентом на сайте
  2. в админке перейти в раздел «Компоненты» и нажать кнопку «Установка»
  3. щелкнуть по названию компонента и установить его

После этого компонент будет готов к работе.

С точки зрения разработчика установка компонентов состоит из следующих этапов:

  1. регистрация компонента в таблице cms_components
  2. создание и заполнение всех таблиц, необходимых для работы компонента
  3. установка модулей и плагинов поставляемых вместе с компонентом (при наличии таковых)

Подготовка

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

1. Через phpMyAdmin или любую другую программу для работы с БД сделайте экспорт структуры таблицы cms_guestbook. Экспортировать данные при этом не нужно, т.к. мы хотим чтобы сразу после установки гостевой книги в ней не было сообщений. После экспорта вы получите такой SQL:

CREATE TABLE `cms_guestbook` (
 `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
 `title` VARCHAR( 200 ) NOT NULL ,
 `message` TEXT NOT NULL ,
 `user_id` INT NOT NULL ,
 `pubdate` DATETIME NOT NULL ,
INDEX ( `user_id` )
) ENGINE = MYISAM ;

Создайте файл install.sql в папке /components/guestbook

В эту же папку поместите файл install.php со следующим содержимым:

<?php
    function info_component_guestbook(){
        $_component['title']        = 'Гостевая кинга'; //Заголовок компонента
        $_component['description']  = 'Гостевая книга позволяет добовлять короткие записи гостям сайта'; //описание компонента
        $_component['link']         = 'guestbook'; //ссылка на компонент
        $_component['author']       = 'Al Gor'; //Автор компонента
        $_component['internal']     = '0';
        $_component['version']      = '0.1'; //версия 
        $inCore = cmsCore::getInstance();
        $inCore->loadModel('guestbook');
        return $_component;
    }
 
    function install_component_guestbook(){
 
        $inCore = cmsCore::getInstance();
        $inDB   = cmsDatabase::getInstance();
        $inConf = cmsConfig::getInstance();
        include(PATH.'/includes/dbimport.inc.php');
        dbRunSQL(PATH.'/components/guestbook/install.sql', $inConf->db_prefix);
 
        if(!cmsActions::getAction('add_message')){
            cmsActions::registerAction('guestbook',
                                        array(
                                                'name'=>'add_message',
                                                'title'=>'Добавление записи в гостевую книгу',
                                                'message'=>'добавляет запись в гостевую книгу %s'
                                             )
                                      );
        }
        return;
    }
?>

Что дальше?

 
разработка/компоненты/установка_компонента.txt · Последние изменения: 2012/06/02 16:35 От racheev