BLOG 1.5文档
在postcontroller.php
———————————
1.先执行actionList()
$pages=new CPagination($postCount); 声明一个类对象后,起分页作用
$pages->pageSize= 2;//这里设置每页显示几个
之后通过render直接把参数传递给list模版,之后通过$this->widget()再生成分页表格
views/post/list.php是模版
1. 它调用<?php $this->widget(‘CLinkPager’,array(‘pages’=>$pages)); ?>
2. 若想调用自定义的widget 通常在protected/components下
1> 在主模版(protected/views/layouts/main.php)中调用此小的模版。相当于把页面区块化
<?php $this->widget(‘UserMenu’,array(‘visible’=>!Yii::app()->user->isGuest)); ?>
2>定义一个总的类Portlet.php继承CWidget
每次运行的时候判定$this->visible的值,若为登陆才显示
且定义相应的css变量为$cssClass
定义一个空函数protected function renderContent()
3>再定义UserMenu.php,这个可以定义它自身的新功能并继承Portlet
protected/components/UserMenu.php
这里可以接收模版userMenu.php的回传值$_POST[‘command’]进行相应的判断
在这个新widget中定义protected function renderContent()转向到新的模版
再通过回调parent::init();在这个类Portlet 中重新定位renderContent(),使之转向到新模板的位置
4>其次在protected/components/views下定义其模版名为userMenu.php
系统自定义的widget有
CClipWidget CTabView using | http://www.yiiframework.com/doc/cookbook/8/
CFilterWidget
CFlexWidget you can see this (demos/phonebook/) for flash
CInputWidget using in table http://www.yiiframework.com/forum/index.php/topic,1387.msg7917.html#msg7917
CWidget
———————————————————-
actionCreate()
功能:创建新的blog
controller
1. $post = new Post; 这样可以声明相应的表对象,另外一个作用是接收form过来的所有信息
2. $_POST[‘previewPost’] 这个根据submitbutton而定名字(previewPost),若点击某按钮(previewPost),这个值就不为空
3. 通过$post->validate()或者$post->save()调用验证功能validate.返回错误提示代码