как работает mvc + smarty в php? - PullRequest
       41

как работает mvc + smarty в php?

3 голосов
/ 27 октября 2010

это обработчик для построения меню

new MenuItem («Владелец», lang («Владелец»), assembly_url («Владелец»), get_image_url («навигация / Company.gif»)), новый MenuItem («Клиент», lang («Клиент»), assembly_url («Клиент»), get_image_url («навигация / people.gif»)),

Один класс системного модуля, в котором я сопоставил маршрут

$router->map('Owner', 'Owner','null', array('controller' => 'companies', 'action' => 'index_owner'));
  $router->map('Client', 'Client','null', array('controller' => 'companies', 'action' => 'index_client'));

, который вызывает класс контроллера, в котором методы определены с именем index_client, index_owner ... оба метода имеют одинаковый код.

function index_client(){
      if(Company::canAdd($this->logged_user)) {
   $this->wireframe->addPageAction(lang('New Company'), assemble_url('people_companies_add_client'));
  } // if 
  if($this->request->isApiCall()) {
    $this->serveData(Companies::findByIds($this->logged_user->visibleCompanyIds()), 'companies');
  } else {
    $page = (integer) $this->request->get('page');
    if($page < 1) {
      $page = 1;
    } // if  

    list($companies, $pagination) = Companies::paginateActive($this->logged_user, $page, 30);

   $this->smarty->assign(array(
     'companies' => $companies,
      'pagination' => $pagination,
    ));
  } // if
} // index   */          

Какой inturn вызывает шаблон smarty с именем index_owner, index_client. Я хочу, чтобы был назван только один шаблон, который является «индексом», потому что отображаются одни и те же вещи, только один флаг в шаблоне отмечен как «is_owner», и в соответствии с этим отображение компании выполнено. Скажите, пожалуйста, как идет поток, как обработчики, контроллер, модуль, вид ??????

1 Ответ

1 голос
/ 30 января 2011

Вы должны присвоить магическую константу МЕТОД умному ресурсу.После того, как вы это сделаете, настройте метод Smarty :: fetch для перехвата и рендеринга, если этот атрибут установлен.

Если вы используете переписывание URL-адресов и имя метода в url.Вы можете получить это через Smarty.

Эта функция встроена в реализацию Zend Framework mvc.Проверьте это.

...