Powered by CodeIgniter

Контроллер

Базовый контроллер должен располагаться в файле index.php корневой директории компонента. Он аналогичен стандартному контроллеру CodeIgniter за исключением нескольких правил:
  • Конструктор контроллера всегда должен вызывать инициализацию родительского класса.
  • Конструктор контроллера должен вызываться функцией __construct, в силу того, что название основного метода совпадает с названием файла контроллера (index), и при одноименном названии основной метод вызывается дважды.
/* * Constructor * * @return void */ function __construct(){ parent::Controller(); } // ------------------------------------------------------------------------ Соответственно, основной метод должен иметь название index./* * Show nodes on index page * * @param int $page Page to show. * @return void */ function index($page = 0){ ... } // ------------------------------------------------------------------------
Если метод, название которого указывает следующий после названия самого компонента в строке элемент, отсутствует, то все остальные параметры запроса используются как аргументы основного метода.
/user_guide/introduction/
Если метод introduction отсутствует у основного контроллера компонента user_guide, то основной метод index этого компонента получает строку «introduction» в качестве аргумента.

Более подробно о роутинге читайте в разделе про роутер.

Активный контроллер наследуется от основной сущности (базового класса), поэтому обладает всеми ее свойствами и методами.

Панель управления

Если вы хотите создать раздел шестеренки в панели управления, то для этого потребуется создать контроллер класса _Admin и разместить его в файле _admin.php в корневой папки компонента.
Все сказанное выше относится и к контроллеру панели управления.

Для того, чтобы присвоить вашей шестеренке иконку, положите графический файл формата PNG размером 64х64 точки, название которого совпадает с названием папки компонента, в подпапку «img».
Если ваш модуль называется «example», то его иконка должна лежать по адресу "/gears/example/img/example.png".