Комментарии

Представление диспетчера PHP в Joomla
( 0 Голосов )

Представление для отображения экрана диспетчера называется JoomproSubs ViewSubManager в соответствии с принятыми условными обозначениями, обсуждавшимися ранее. Третья часть имени этого представления (SubManager — Подчиненный диспетчер) служит лишь для его описания. Это имя определено однозначно, поскольку в своей первой части оно содержит имя компонента JoomproSubs, отличающее его от любых других компонентов. Вместе с тем оно обозначает класс данного представления, находящийся в файле views/submanager/view.html.php, который также именуется в соответствии с условными обозначениями, принятыми для основных компонентов.

Ниже приведен исходный код из первой части объявления класса JoomproSubs-ViewSubManager в данном файле.

defined('_JEXEC') or die;
jimport('joomla.application.component.view');
/**
* Класс представления списка доступных подписок. *
*/
class JoomproSubsViewSubmanager extends JView {
protected $iterns;
protected $pagination;
protected $state;
/**
*  Отображает представление. */ public  function display($tpl  = null) {
$this->state = $this->get('State'); $this->items = $this->get('Items'); $this->pagination = $this->get('Pagination');
//  проверить  ошибки
(count($errors  =  $this->get('Errors')))    {
JError::raiseError(500,   implode ("\n", $errors)) ;
false;
$this->addToolbar(); parent::display($tpl); }

И этот код почти ничем не отличается от исходного кода класса WeblinksView-Weblinks, за исключением, конечно, обозначения имени компонента JoomproSubs вместо Weblinks. Данный класс расширяет класс JView и содержит поля для элементов, разбиения на страницы и состояния. У него имеется единственный открытый метод display (). Этот метод получает элементы, состояние и разбиение на страницы из модели, проверяет ошибки, добавляет панель инструментов, а затем вызывает другой метод display () из своего родительского класса JView.

В данном классе определен еще один метод под названием addToolbar (). Ниже приведен исходный код этого метода. /** * Метод,   добавляющий заглавие  страницы и панель инструментов.

* @since 2.5 */
protected function addToolbar() {
JLoader::register('JoomproSubsHelper *, JPATH_COMPONENT.'/helpers/joomprosubs.php');
$state = $this->get('State');
$canDo = JoomprosubsHelper::getActions($state->get('filter.category_id'));
$user = JFactory::getUser();
JToolBarHelper::title(JText::_( 'COM_JOOMPROSUBS_MANAGER_JOOMPROSUBS), 'news feeds.png');
if (count($user->getAuthorisedCategories('com_joomprosubs', V core.create') ) > 0) {
JToolBarHelper::addNew('subscription.add', * JTOOLBAR_NEW'); } if ($canDo->get('core.edit')) {
JToolBarHelper::editList('subscription.edit','JTOOLBAR_EDIT'); }
if ($canDo->get('core.edit.state')) {
JToolBarHelper::divider();
JToolBarHelper::publish('submanager.publish', 'JTOOLBAR_PUBLISH', true);
JToolBarHelper::unpublish('submanager.unpublish', <*> 'JTOOLBAR_UNPUBLISH', true) ;
JToolBarHelper::divider();
JToolBarHelper::archiveList('submanager.archive'); JToolBarHelper::checkin('submanager.checkin'); }
if ($state->get('filter.state') == -2 && $canDo->get('core.delete')) { JToolBarHelper::deleteList('', 'submanager.delete', 'JTOOLBAR_EMPTY_TRASH');
JToolBarHelper::divider();
} else if ($canDo->get('core.edit.state')) {
JToolBarHelper::trash('submanager.trash','JTOOLBAR_TRASH'); JToolBarHelper::divider();
}
if ($canDo->get('core.admin')) {
JToolBarHelper: -.preferences ('com_joomprosubs') ; JToolBarHelper::divider();
JToolBarHelper::help('', '', JText::_( 'COM_JOOMPROSUBS_SUBMANAGER_HELP_LINK')); }

И этот код почти ничем не отличается от исходного кода соответствующего метода addToolbar () из компонента Weblinks. Сначала в данном методе загружается вспомогательный файл, используемый для создания объекта, в котором должны храниться действия, разрешенные текущему пользователю для выполнения. Затем отображается панель инструментов с пиктограммами разрешенных пользователю действий. Напомним, что проверок на уровне пользовательского интерфейса, а не самого метода оказывается достаточно для надежной защиты от попыток выполнить действие неуполномоченным пользователем. Эти проверки необходимо также повторить перед выполнением каждой задачи. Если пользователю разрешено выполнить действие core. admin, на панели инструментов добавляется пиктограмма Options. Напомним, что вместе с этой пиктограммой добавляется ссылка на компонент com_conf ig с параметрами, указанными в файле conf ig. xml.

И в последней строке кода из данного метода на панели инструментов добавляется пиктограмма Help. В этом случае указывается, что после щелчка кнопкой мыши на пиктограмме Help пользователь направляется по URL, указанному в файле языковой поддержки по ключу COM_JOOMPROSUBS_SUBMANAGER_HELP_LINK. Благодаря тому что значение, определяемое этим ключом, сделано зависимым от выбранного языка, можно без труда создать экран справки на другом языке. В методе JToolBarHelper: : help () генерируется следующий код HTML для разметки страницы справки.

<а  rel="help"  onclick="popupWindow('http://mysite.com', 'Help *, 700, 500, 1)"  href="#">
Help

Требующийся URL получается в результате перевода значения по языковому ключу COM_JOOMPROSUBS_SUBMANAGER_HELP_LINK. Если щелкнуть на пиктограмме Help, то по указанной ссылке во всплывающем окне откроется экран справки по данному компоненту.

По желанию пользователя можно также направить к локальному справочному файлу. Для этого следует указать имя справочного файла в качестве второго аргумента рассматриваемого здесь метода. И в этом случае для обращения к справочным файлам на разных языках можно воспользоваться методом JText:: ().

 


Понравился материал? Пригодилась информация? Плюсани в социалки!


Теги:
 
Похожие новости