|
Код простейшего компонента представлен в листинге 9.5
Листинг 9.5. Файл mycomponent.php
<?php
// Запрещаем прямой доступ.
defined( '_JEXEC' ) or die( 'Restricted access1 );
echo JText::_('hi');
Стоит отметить, что ' hi' — это не строка, а языковая константа, которая должна быть определена в языковом файле компонента (см. раздел 9.3.4). Если такая константа не будет найдена в языковом файле, то будет выведено hi — без изменений (и без кавычек).
Компонент — довольно сложное расширение. Скорее всего, у вас возникнет необходимость формирования ссылок на свой же компонент. Например, вы создаете компонент, выводящий постранично записи из базы данных. Вам нужно будет формировать ссылки вида:
компонент ?страница=номер
В ссылке нужно указывать имя компонента в качестве значения параметра option. Например, если наш компонент называется mycomponent, ссылка будет выглядеть так:
index.php?option=com_mycomponent&page=1
Пример:
$п = 5;
$url = " index.php?option=com_mycomponent&page=" . $N;
echo "<a href=$url>$N</a>";
В результате будет сформирована ссылка, передающая нашему компоненту переменную $раде. Однако добраться к ней можно не через массивы $_GET и $_REQUEST, как мы привыкли это делать, а через метод getVar:
$page = 0;
$page = JRequest::getVar( 'page1 );
Советую сначала инициализировать все необходимые вам переменные, а затем проверять существование переменной вот таким способом:
if(JRequest::getVar( 'page' )) { // Переменная page существует.
Если вы планируете помещать в базу данных ввод пользователя, рекомендую сначала отформатировать его с помощью метода getEscaped, иначе, если ввод содержит кавычки и другие запрещенные в SQL символы, при добавлении записи возникнет ошибка:
$db =& JFactory::getDBO();
$Email = "'" . $db->getEscaped(JRequest::getVar( 'email')) . "'"; $Uname = "'" . $db->getEscaped(JRequest::getVar( 'uname')) . "'";
$insertQuery = "INSERT INTO #_mycomponent VALUES ($Uname, $Email)";
|