Реализация простого плагина: различия между версиями

Материал из GLENN CMS WIKI
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
Строка 55: Строка 55:
===Работа с БД===
===Работа с БД===


Работа с БД в плагинах осуществляется через классы моделей
Работа с БД в плагинах осуществляется через классы [[Модель|моделей]]


для инициализации модели используется метод initModel()
для инициализации модели используется метод [[Контроллеры#Полезные методы|initModel()]]




Строка 70: Строка 70:




сами модели хранятся в папке models, плагина
сами [[Модель|модели]] хранятся в папке models, плагина


в нашем случае это /site/plugins/job/models/jobModel.php
в нашем случае это /site/plugins/job/models/jobModel.php




класс модели обязательно должен быть наследован от [[DbModel]]
класс модели обязательно должен быть наследован от [[Модель|DbModel]]





Версия от 15:10, 6 марта 2013

создадим к примеру плагин job

создадим для него папку /site/plugins/job

создадим IndexController для отображения чего нибудь помещаем его в /site/plugins/job/controllers/IndexController.php

Класс IndexController должен быть объявлен как

class Job_IndexController extends SiteBaseController {
}


создадим в нём также indexAction


class Job_IndexController extends SiteBaseController {
         function indexAction() {
         }
}


в indexAction делаем все необходимые манипуляции


class Job_IndexController extends SiteBaseController {
         function indexAction() {
             $x = 2;
             $y = 2;
             $this->view->z = $x*$y;     /////// передаём переменную Z в область smarty
         }
}


у текущего скина в области контента вызывается функция site::getContent()

которая автоматом подгружает TPL

с контентом

т.е. в нашем случае это будет /site/plugins/job/views/content/index/index.tpl
job в пути это имя плагина
index - имя контроллера 
index - имя экшна

создаём файл /site/plugins/job/views/content/index/index.tpl

и пишем в нём: {$z}

Вуаля! при входе на страницу /job/index/index мы увидим "4" в области контента


Работа с БД

Работа с БД в плагинах осуществляется через классы моделей

для инициализации модели используется метод initModel()


class Job_IndexController extends SiteBaseController {
         function initModel() {
             $this->model = new jobModel();
         }
         function indexAction() {
             $this->view->z = $this->model->getZ();     /////// передаём переменную Z в область smarty
         }
}


сами модели хранятся в папке models, плагина

в нашем случае это /site/plugins/job/models/jobModel.php


класс модели обязательно должен быть наследован от DbModel


 class jobModel extends DbModel {
        function getZ(){
             return $this->s_fetchOne('select Z from X');
        }
 }