Joomla пересылает код в View ... это правильный способ сделать это? - PullRequest
0 голосов
/ 17 июня 2010

Вот несколько примеров методов из моего Controller класса. Теперь, когда пользователь нажимает кнопку New, $ task = add отправляется в контроллер и вызывается метод add (). Как вы можете видеть, он на самом деле ничего не делает, он просто создает URL и перенаправляет его на правильный экран. Это правильный способ делать вещи в шаблоне MVC?

    /**
 * New button was pressed
 */
function add() {
    $link = JRoute::_('index.php?option=com_myapp&c=apps&view=editapp&cid[]=', false);
    $this->setRedirect($link);
}


/**
 * Edit button was pressed - just use the first selection for editing
 */
function edit() {
    $cid = JRequest::getVar( 'cid', array(0), '', 'array' );
    $id = $cid[0];
    $link = JRoute::_("index.php?option=com_myapp&c=apps&view=editapp&cid[]=$id", false);
    $this->setRedirect($link);
}

1 Ответ

0 голосов
/ 19 июня 2010

Я не верю, что это правильный путь.Я бы посоветовал взглянуть на некоторые из основных Joomla!код, чтобы увидеть, как это делается.Отличный, легкий пример, на который я всегда смотрю - это Weblinks.Посмотрите, что они делают в функции редактирования своего контроллера:

... / components / com_weblinks / controllers / weblink.php

    function edit()
    {
            $user = & JFactory::getUser();

            // Make sure you are logged in
            if ($user->get('aid', 0) < 1) {
                    JError::raiseError( 403, JText::_('ALERTNOTAUTH') );
                    return;
            }

            JRequest::setVar('view', 'weblink');
            JRequest::setVar('layout', 'form');

            $model =& $this->getModel('weblink');
            $model->checkout();

            parent::display();
    }

Ониустановите переменные вида и макета, а затем вызовите parent :: display, чтобы позволить Joomla!выйти и отобразить этот вид / макет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...