Комментарии

Представление ввода и редактирования подписки
( 0 Голосов )

Если пользователю разрешено вводить и редактировать подписки, то в родительском контроллере устанавливается переадресация по следующему URL:

administrator/index.php?option=com_joomprosubs&view=subscription&layout=edit

Это приведет к выполнению задачи отображения средствами класса Joompro SubsViewSubscription из файла views/subscription/view.html.php. Ниже приведен код из первой части этого файла.

defined ('_JEXEC ) or die;
jimport('joomla.application.component.view');

/** * Представление для редактирования подписки. * ©package  Joomla.Administrator * @subpackage com_joomprosubs */
class JoomprosubsViewSubscription extends JView { protected $form; protected $item; protected $state;
/** Отображает представление */ public function display($tpl = null) {
// инициализировать переменные $this->form = $this->get('Form'); $this->item = $this->get('Item'); $this->state = $this->get('State');
// проверить ошибки if (count($errors = $this->get('Errors'))) { JError::raiseError(500, implode("\n", $errors)); return false; $this->addToolbar(); parent::display($tpl);

Эта часть упомянутого выше файла аналогична содержимому соответствующего файла для компонента Weblinks. Здесь сначала объявляется класс, расширяющий класс JView, а затем определяется метод display (). В этом методе сначала получается объект формы, элемент и его состояние из модели, а затем проверяются ошибки. Если ошибки не обнаружены, экранная форма дополняется панелью инструментов и затем из родительского класса вызывается соответствующий метод отображения.

Ниже приведен исходный код из последней части файла views/subscription/view.html.php.

protected function  addToolbar() {
JRequest::setVar('hidemainmenu', true);
$user = JFactory::getUser();
$isNew = ($this->item->id ==  0);
$checkedOut - !($this->item->checked_out == 0 || $this->item->checked_out == $user->get(* id'));
$canDo = JoomprosubsHelper::getActions($this->state->get('filter.category_id'),   $this->item->id);
JToolBarHelper::title(JText::_('COM_JOOMPROSUBS_MANAGER_JOOMPROSUB'), 'newfeeds.png');

// проверить, можно ли сохранить элемент, если он не снят с регистрации if (!$checkedOut && ($canDo->get('core.edit')||(count($user->getAuthorisedCategories('com_joomprosubs', 'core.create')) ) ) ) { JToolBarHelper::apply('subscription.apply', 'JTOOLBAR_APPLY'); JToolBarHelper::save('subscription.save', 'JTOOLBAR_SAVE'); } ($checkedOut  &&   (count($user->getAuthorisedCategories( 'com_jooraprosubs', 'core.create')))){ JToolBarHelper::custom('subscription.save2new', 'save-new.png', 'save-new_f2.png *, 'JTOOLBAR_SAVE_AND_NEW', false); }
// проверить, можно ли сохранить копию, если элемент уже существует if (!$isNew && (count($user->getAuthorisedCategories('com_joomprosubs', 'core.create')) > 0)) { JToolBarHelper::custom('subscription.save2copy', 'save-copy.png', 'save-copy_f2.png', JTOOLBAR_SAVE_AS_COPY', false); } if (empty($this->item->id)) { JToolBarHelper::cancel('subscription.cancel', 'JTOOLBAR_CANCEL'); } else { JToolBarHelper::cancel(•subscription.cancel', 'JTOOLBAR_CLOSE'); } JToolBarHelper::divider(); JToolBarHelper::help('', ' ', JText::_(,COM_JOOMPROSUBS_SUBSCRIPTION_HELP_LINK')); } }

Как и в соответствующем методе для компонента Weblinks, в приведенном выше методе addToolbar () проверяются полномочия пользователя, прежде чем отображать пиктограммы Save, Save & Close, Save & New и Save as Copy на панели инструментов. Здесь же отображаются пиктограммы Cancel/Close и Help. Напомним, что это делается лишь для усовершенствования пользовательского интерфейса, но не подменяет собой повторную проверку полномочий текущего пользователя на выполнение действий, обозначаемых упомянутыми пиктограммами, после того, как они будут начаты.


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


Вам также будет интересно:

 
Похожие новости