thinkphp公共文件包含
网站每个页面都有头部和尾部文件头部文件和尾部文件都有同样的变量分配这样每个Action都要有同样的代码这怎么办...
网站每个页面都有头部和尾部文件
头部文件和尾部文件都有同样的变量分配
这样每个Action都要有同样的代码
这怎么办 展开
头部文件和尾部文件都有同样的变量分配
这样每个Action都要有同样的代码
这怎么办 展开
3个回答
展开全部
我认为可以这样:
你写一个父类,让所有需要乃至这个头部和尾部文件的都继承这个类,在父类中分配变量
<?php
class CommonAction extends Action
{
function _initialize()
{
if(method_exists($this,'_initialize'))
{
$this->_initialize();
}
//获取相应的变量的值,并赋值
$header = $this->getHeader(); //具体怎么获得这些头部和底部变量的值根据情况自定
$this->assign('header', $header);
}
}
?>
IndexAction.class.php
<?php
class IndexAction extends CommonAction
{
}
?>
在模板文件中包含公共头部与尾部
<include file="public::header"/>
<!---模板其他内容-->
<include file="public::footer"/>
你写一个父类,让所有需要乃至这个头部和尾部文件的都继承这个类,在父类中分配变量
<?php
class CommonAction extends Action
{
function _initialize()
{
if(method_exists($this,'_initialize'))
{
$this->_initialize();
}
//获取相应的变量的值,并赋值
$header = $this->getHeader(); //具体怎么获得这些头部和底部变量的值根据情况自定
$this->assign('header', $header);
}
}
?>
IndexAction.class.php
<?php
class IndexAction extends CommonAction
{
}
?>
在模板文件中包含公共头部与尾部
<include file="public::header"/>
<!---模板其他内容-->
<include file="public::footer"/>
展开全部
你写一个父类,让所有需要乃至这个头部和尾部文件的都继承这个类,在父类中分配变量
<?php
class CommonAction extends Action
{
function _initialize()
{
if(method_exists($this,'_initialize'))
{
$this->_initialize();
}
//获取相应的变量的值,并赋值
$header = $this->getHeader(); //具体怎么获得这些头部和底部变量的值根据情况自定
$this->assign('header', $header);
}
}
?>
IndexAction.class.php
<?php
class IndexAction extends CommonAction
{
}
?>
在模板文件中包含公共头部与尾部
<include file="public::header"/>
<!---模板其他内容-->
<include file="public::footer"/>
<?php
class CommonAction extends Action
{
function _initialize()
{
if(method_exists($this,'_initialize'))
{
$this->_initialize();
}
//获取相应的变量的值,并赋值
$header = $this->getHeader(); //具体怎么获得这些头部和底部变量的值根据情况自定
$this->assign('header', $header);
}
}
?>
IndexAction.class.php
<?php
class IndexAction extends CommonAction
{
}
?>
在模板文件中包含公共头部与尾部
<include file="public::header"/>
<!---模板其他内容-->
<include file="public::footer"/>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、我们在页面中实现一个分类显示的Widget,首先我们要实现我们首先定义一个Widget控制器层 CateWidget,如下:
复制代码
代码如下:
class CateWidget extends Action {
public function menu(){
return 'menuWidget';
}
}
注意是在Widget包中定义,和一般的Action还是有区别的
2、然后,我们在模版中通过R方法调用这个Widget(扩展Widget方式在模版中使用的是W方法),如果对R函数不了解的参考这里.(http://www.thinkphp.cn/info/134.html)
{:R('Cate/Menu','','Widget')}
执行后的输出结果是:menuWidget
3、如果,CateWidget类的menu方法改成:
复制代码
代码如下:
class CateWidget extends Action {
public function menu(){
echo 'menuWidget';
}
}
4、模版中的用法则需要改成:
复制代码
代码如下:
{~R('Cate/Menu','','Widget')}
5、如果需要在调用Widget的时候 使用参数,可以这样定义:
复制代码
代码如下:
class CateWidget extends Action {
public function menu($id,$name){
echo $id.':'.$name;
}
}
6、模版中的参数调用,使用:
复制代码
代码如下:
{:R('Cate/Menu',array(5,'thinkphp'),'Widget')}
则会输出 5:thinkphp
7、来一个复杂一点的例子:
复制代码
代码如下:
class CateWidget extends Action {
public function menu(){
$menu =
M('Cate')->getField('id,title');
$this->assign('menu',$menu);
$this->display('Cate:menu');
}
}
8、CateWiget类渲染了一个模版文件Tpl/Cate/menu.html,调用模版的灵活也是使用这种方式实现Widget的区别(Widget扩展方式中需要调用renderFile方法渲染模版)。
在menu.html模版文件中的用法:{$key}:{$title}
复制代码
代码如下:
class CateWidget extends Action {
public function menu(){
return 'menuWidget';
}
}
注意是在Widget包中定义,和一般的Action还是有区别的
2、然后,我们在模版中通过R方法调用这个Widget(扩展Widget方式在模版中使用的是W方法),如果对R函数不了解的参考这里.(http://www.thinkphp.cn/info/134.html)
{:R('Cate/Menu','','Widget')}
执行后的输出结果是:menuWidget
3、如果,CateWidget类的menu方法改成:
复制代码
代码如下:
class CateWidget extends Action {
public function menu(){
echo 'menuWidget';
}
}
4、模版中的用法则需要改成:
复制代码
代码如下:
{~R('Cate/Menu','','Widget')}
5、如果需要在调用Widget的时候 使用参数,可以这样定义:
复制代码
代码如下:
class CateWidget extends Action {
public function menu($id,$name){
echo $id.':'.$name;
}
}
6、模版中的参数调用,使用:
复制代码
代码如下:
{:R('Cate/Menu',array(5,'thinkphp'),'Widget')}
则会输出 5:thinkphp
7、来一个复杂一点的例子:
复制代码
代码如下:
class CateWidget extends Action {
public function menu(){
$menu =
M('Cate')->getField('id,title');
$this->assign('menu',$menu);
$this->display('Cate:menu');
}
}
8、CateWiget类渲染了一个模版文件Tpl/Cate/menu.html,调用模版的灵活也是使用这种方式实现Widget的区别(Widget扩展方式中需要调用renderFile方法渲染模版)。
在menu.html模版文件中的用法:{$key}:{$title}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询