Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Samouchitel_po_razrabotke_rasshireny_dlya_Jooml....docx
Скачиваний:
3
Добавлен:
10.11.2018
Размер:
2.53 Mб
Скачать

Создание пи

Все ПИ в ИА реализуются с кнопками для сохранения, удаления, редактирования и публикации элементов в едином стиле. Вы будете постоянно использовать эти кнопки как неотъемлемую часть своих Компонентов. Для начала, создайте файл в toolbar.reviews.html.php в папке administrator/components/com_reviews с таким кодом:

<?php

defined( '_JEXEC' ) or die( 'Restricted access' );

class TOOLBAR_reviews {

function _NEW() {

JToolBarHelper::save();

JToolBarHelper::apply();

JToolBarHelper::cancel();

}

function _DEFAULT() {

JToolBarHelper::title( JText::_( 'Restaurant Reviews' ),

'generic.png' );

JToolBarHelper::publishList();

JToolBarHelper::unpublishList();

JToolBarHelper::editList();

JToolBarHelper::deleteList();

JToolBarHelper::addNew();

}

}

?>

Файлы, содержащие код, как правило, организованы в классы. Как и в данном случае TOOLBAR_reviews. Каждая функция здесь представляет различные панели инструментов. Класс JToolBarHelper содержит функции, которые генерируют необходимый для создания панелей инструментов HTML-код. При желании, вы также можете добавлять пользовательский HTML внутрь этих функций. Обратите внимание, что панель инструментов организована как таблица HTML, вам, вероятно, будет необходимо добавить <td> теги в случае создания пользовательской навигации.

Мы определили ПИ, однако необходимо добавить некоторый код, который будет определять что именно показывать. В ИА Joomla! автоматически загружает файл, начинающийся с имени Компонента и заканчивающийся на .reviews.php в верхнюю правую часть экрана. Добавьте следующий код в папку administrator/components/com_reviews:

<?php

defined( '_JEXEC' ) or die( 'Restricted access' );

require_once( JApplicationHelper::getPath( 'toolbar_html' ) );

switch($task)

{

case 'edit':

case 'add':

TOOLBAR_reviews::_NEW();

break;

default:

TOOLBAR_reviews::_DEFAULT();

break;

}

?>

Строку, содержащую require_once(...) использует функцию getPath() - член класса JApplicationHelper.

[Далее мы будем писать так:

использует JApplicationHelper функцию getPath()

или так:

использует функцию getPath() из JApplicationHelper

прим. переводчика].

Вызов getPath () позволяет вызвать toolbar.reviews.html.php файла без привязки к имени Компонента. Позже, даже если вы измените название на "Рестораны", а также измените имена файлов, эта строка кода будет по-прежнему работать вызывая панель инструментов.

Возможно Вы удивитесь тому, что мы создаем два файла toolbar.reviews.php и toolbar.reviews.html.php. Предпочтительный стиль кодирования среди разработчиков Компонентов заключается в сохранении логики обработки в файл полностью отделенный от файла, который фактически производит отображение. Таким образом, упрощается последующее добавление новых функций и существенно уменьшается сам код.

После загрузки файла toolbar.reviews.php, вы должны решить, какие панели инструментов должны быть показаны. Запрашиваемая переменная $task автоматически регистрируется в глобальной области Joomla! и используется для направления потока логики в Компоненте. Обновите браузер в ИА и выберите Restaurant Reviews в Components - вы должны увидеть следующий экран

Чтобы увидеть другие панели инструментов, добавьте &task=add в конец URL в браузере. Панель инструментов должна выглядеть так

Ваши пользователи, конечно, не будут гореть желанием добавлять переменные в конец URL. Как же им использовать Вторую панель? За каждой кнопкой на панели инструментов стоит выполнение определенной задачи. При нажатии в форму будет добавлена соответствующая задача и форма будет передана на обработку. Как только будет размещена соответствующая форма нажатие на кнопку New вызовет эту ПИ. Поскольку мы еще не создали такую форму в ИА, эти кнопки пока не работают. Они начнут работать в следующей главе, когда мы создадим оставшуюся часть ИА

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]