Работа над панелью управления компонентом
Просмотров: 1884В сущности каждый сам выбирает с какой части ему начинать (кому как удобней). На мой взгляд, предложеный мною вариант более рационнальный.
Так как состав части администратора, файлы: admin.myboard.php, toolbar.myboard.php. Их то мы и будем редактировать. (также возможно иcпользование файлов вида admin.myboard.html.php, toolbar.myboard.html.php . Пока мы их не трогаем, но обязательно рассмотрим в следующих уроках. Кратко о них можно сказать, что нужны они для разделения оформления компонента от кода.)

В любом компоненте Joomla за часть, которая на вышестоящем рисунке выделена красным, отвечает файл admin.myboard.php, а за часть котарая выделена зеленым - toolbar.myboard.php.
Теперь, разобравшись, кто за что отвечает нам нужно четко описать все сраницы панели управления нашим компонентом и все конопки, располагающиеся на них.
У нас будет 2 страницы.
Первая страница (форма)
- На ней будет присутствовать список с пользователями доски объявлений (для того, чтобы можно было посмотреть сообщения конкретного пользователя). Таблица, отображающая все сообщения (или только одного пользователя, одной даты создания) со следующими полями: Флажок (для того, чтобы отметить ту или иную запись), Имя пользователя, создавшего сообщение, Краткое содержание сообщения (первый 30 символов), Дату создания. Дата, когда сообщение перестает отображаться.
- Кнопки тулбара: Изменить (показывает полное содержание отмеченого сообщения. Отмечать можно только одно сообщение, в остальных случаях должно выдаваться сообщение об ошибке), Удалить (удаляет все отмеченые администратором сообщения).
Вторая форма (страница)
- Страница, на котрой отображается сообщение в необрезанном виде. Администратору предоставляется возможность изменить текст сообщения. Поэтому текст выводится в многострочное поле ввода.
- Кнопки тулбара: Сохранить (сохраняет изменения в тексте сообщения и переходит к первой странице), Отмена (переходит к первой странице без схранения).
Шаг шестой. Создаем каркас панели управления компонентом.
На этом шаге нам нужно создать каркас внутри фалов администраторской части. Каркас будет один и тот же для файлов admin.myboard.php, toolbar.myboard.php.
Каркас создаем на основе предыдущего шага. Привожу содержание файла admin.myboard.php. После (ниже) будем рассматривать, более подробно что и зачем там находится.
<?php
echo '<form name="adminForm" method="POST" action="index2.php">';
echo '<input type="hidden" name="option" value="'.$option.'">';
echo '<input type="hidden" name="act" value="'.$act.'">';
echo '<input type="hidden" name="task" value="">';
switch ($act)
{
case "view_mess":
{
switch ($task)
{
case "edit":
echo 'Редактирование сообщения';
break;
case "remove":
echo 'Удаление сообщений';
break;
case "cancel":
echo 'Отмена редактирования сообщения';
break;
case "save":
echo 'Сохраниение сообщения';
break;
default:
echo 'Отображение компонента по умолчанию';
break;
}
}
break;
default:
echo 'Выбран пункт наша доска';
break;
}
echo '</form>';
?>
Итак сначала мы видим объявление формы adminForm, потом описаны 3 элемента управления типа hidden (скрытый) - option, act, task. Значения эти полей передаются каждой странице в Joomla. Переменная $option хранит название компонента, в нашем случае com_myboard. Переменная $act содержит идентификатор меню (этот идентификатор мы описали еще в файле myboard.xml). Так как у нас одно меню, то и значение обрабатываем мы одно Переменная (case "view_mess"). $task служит для определения какая кнопка тулбара была нажата. У нас 4 различных кнопки поэтому мы обрабатываем 4 различных значения.
Как в случае обработки переменной $act так и $task, нужно обрабатывать и значения поумолчанию, т. е. все занчения кроме тех которые мы описали выше. Для этого служит ключевое слово default.
Счас в каждом блоке case (Например: case "edit": echo 'Редактирование сообщения'; break;)
находится оператор echo, который выводит сообщение в зависимости от действия. Его мы вставили для того чтобы пока не написан основной код можно было отследить какие кнопки нажаты. После мы его уберем.
Теперь взглянем на содержание файла toolbar.myboard.php:
<?php
switch ($act)
{
case "view_mess":
{
switch ($task)
{
case "edit":
mosMenuBar::startTable();
mosMenuBar::save();
mosMenuBar::cancel();
mosMenuBar::endTable();
break;
case "remove":
mosMenuBar::startTable();
mosMenuBar::editList();
mosMenuBar::deleteList();
mosMenuBar::endTable();
break;
case "cancel":
mosMenuBar::startTable();
mosMenuBar::editList();
mosMenuBar::deleteList();
mosMenuBar::endTable();
break;
case "save":
mosMenuBar::startTable();
mosMenuBar::editList();
mosMenuBar::deleteList();
mosMenuBar::endTable();
break;
default:
mosMenuBar::startTable();
mosMenuBar::editList();
mosMenuBar::deleteList();
mosMenuBar::endTable();
break;
}
}
break;
default:
break;
}
?>
Видим, что структура анологична предыдущему файлу, за исключением отсудствия описания формы. В каждой секции case присутствуют следующая конструкця:
- mosMenuBar::startTable();
- mosMenuBar::editList();
- mosMenuBar::deleteList();
- mosMenuBar::endTable();
Это описание кнопок тулбара, здесь: в первой строке описано начала тулбара, в четвертой строке конец тулбара, между ними находятся описания кнопок. Возможные значения.
- addNew($task = 'new', $alt = 'New')
- publish($task = 'publish', $alt = 'Publish')
- publishList($task = 'publish', $alt = 'Publish')
- makeDefault($task = 'default', $alt = 'Default')
- assign($task = 'assign', $alt = 'Assign')
- unpublish($task = 'unpublish', $alt = 'Unpublish')
- unpublishList($task = 'unpublish', $alt = 'Unpublish')
- archiveList($task = 'archive', $alt = 'Archive')
- unarchiveList($task = 'unarchive', $alt = 'Unarchive')
- editList($task = 'edit', $alt = 'Edit')
- editHtml($task = 'edit_source', $alt = 'Edit HTML')
- editCss($task = 'edit_css', $alt = 'Edit CSS')
- deleteList($task = 'remove', $alt = 'Delete')
- trash($task = 'remove', $alt = 'Trash')
Теперь снова проверяем на работоспособность наш компонент. Удаляем предыдущую версию с сайта. Архивируем новые версии файлов. Устанавливаем, описанным ранее способом. Смотрим работает или нет. Если все сделано правильно , то при нажатии меню Наша доска появится сообщение и отобразятся ребуемые кнопки тулбара.
Ссылочка на последнию версию разрабатываемого нами компонента
http://test.ex6.ru/administrator/articles/com_myboard (step 3).zip

Оставьте комментарий!