Joomla源代码解析(十九) JController

同样 JController 是MVC中重要的起点,正式这个类决定的动作的下一步流向,我们来看看表格提交数据的典型的controller的代码:

 function edit()
 {
  JRequest::setVar( 'view', 'hello' );
  JRequest::setVar( 'layout', 'form'  );
  JRequest::setVar('hidemainmenu', 1);

  parent::display();
 }

 /**
  * save a record (and redirect to main page)
  * @return void
  */
 function save()
 {
  $model = $this->getModel('hello');

  if ($model->store($post)) {
   $msg = JText::_( 'Greeting Saved!' );
  } else {
   $msg = JText::_( 'Error Saving Greeting' );
  }

  // Check the table in so it can be edited.... we are done with it anyway
  $link = 'index.php?option=com_hello';
  $this->setRedirect($link, $msg);
 }

 /**
  * remove record(s)
  * @return void
  */
 function remove()
 {
  $model = $this->getModel('hello');
  if(!$model->delete()) {
   $msg = JText::_( 'Error: One or More Greetings Could not be Deleted' );
  } else {
   $msg = JText::_( 'Greeting(s) Deleted' );
  }

  $this->setRedirect( 'index.php?option=com_hello', $msg );
 }

 /**
  * cancel editing a record
  * @return void
  */
 function cancel()
 {
  $msg = JText::_( 'Operation Cancelled' );
  $this->setRedirect( 'index.php?option=com_hello', $msg );
 }

实际上 controller 跟提交的task参数,调用controller中的不同的函数,当然默认会调用display ,我觉得还需要记住的就是

getModel ,和setRedirect ,其余函数用到再看就可以了。

posted on 2009-12-20 13:54  14的路  阅读(480)  评论(0编辑  收藏  举报

导航

友情链接:源码下载