Курсовая работа: Побудова компонент та модулів для системи управління контентом Joomla
<?php
// обмежений доступ
defined('_JEXEC') or die ('Restricted access');
// імпортування базового контролера
require__once (JPATH_COMPONENT.DS.'controller.php');
// створення власного контролера
$classname = 'HelloController'.$controller;
$controller = new $classname( );
// перевірка наявності параметрів запиту
$controller_>execute( JRequest::getVar('task'));
// перенаправлення всередині контролеру
$controller_>redirect();
?>
Перший рядок здійснюватиме контроль безпеки, перевіряючи, чи був файл викликаний Joomla або ж безпосередньо. Безпосередньо викликаний сценарій негайно зупиняється функцією die():
require_once {JPATH_COMPONENT.DS.'controller.php');
Після цього імпортується перший контролер. Абсолютний шлях до поточної компоненти (components/com_hello) виглядає як JPATH_COMPONENT, a DS представляє собою роздільник каталогів операційної системи. У Windows він відрізняється від Unix-подібних систем, тобто це буде / або \ Joomla встановлює це значення автоматично.
$classname = 'HelloController'.$controller;
$controller = new $classname();
Тепер можна створити екземпляр читаючого контролера, і тим самим одержати контролер, який потім використовуватиметься. Якщо потрібний всього один контролер, як це часто буває в інтерфейсній частині, можна скористатися наступним оператором:
$controller=newHelloController();
Scontroller_>execute( JRequest::getVar('task'));
Оператори для компонентів встановлюються в URL у наступній формі:
index.php?option=com_hello&task=task
(де task - одне зі значень save, edit, new...).
Наступний рядок використовується для перевірки, чи є щось для читання:
$controller_>redirect();
При цих умовах контролер перенаправляє запит на інший сайт, наприклад, якщо щось повинно зберегтись.
Контролер (/components/com_hello/controller.php)
Оскільки компонента є дуже проста, перед контролером тепер стоїть завдання щось відобрази. Нам не потрібна модель даних, а достатньо одного методу display.