直接调用方法:
例如调用cate
<ul class="nav">
<php>
$cate = M('cate')->order('sort')->select();
import('Class.Category',APP_PATH);
$cate = Category::unlimitedForLayer($cate);
</php>
<foreach name="cate" item="v">
<li>
<a href="">{$v.name}</a>
<ul class="subnav" style="display:none;">
<foreach name="v.child" item='value'>
<li><a href="">{$value.name}</a></li>
</foreach>
</ul>
</li>
</foreach>
</ul>
自定义标签方法:
1、在相应分组下TagLib文件夹中 建立文件如: TagLibNav.class.php
内容如下:
注意:
1)、自定义的固定格式
2)、注意使用"\"进行双引号中变量的转义,也可以用单引号,就不需要转义了,那得一句一句写,使用 ".="进行连接。
说明: $attr是传递了自定义标签的attribute的array , $content传递了自定义标签的内容,
<?php
import('TagLib');
/**
* 自定义标签,来自视频40
*/
class TagLibNav extends TagLib{
protected $tags = array(
'nav'=>array('attr'=>'limit,order','close'=>1),
);
public function _nav($attr,$content){
// echo $attr;
// echo $content;
$attr = $this->parseXmlAttr($attr);
$limit = $attr['limit'];
$str = <<<str
<?php
\$cate = M('Cate')->order("{$attr['order']}")->limit({$attr['limit']})->select();
import('Class.Category' ,APP_PATH);
\$cate = Category::unlimitedForLayer(\$cate);
foreach (\$cate as \$v) :
extract(\$v);
\$url = U('/c_' . \$id);
?>
str;
$str .= $content;
$str .= '<?php endforeach;?>';
return $str;
}
}
?>
2、在相应的分组config.php中配置
'APP_AUTOLOAD_PATH'
=
>
'@.TagLib'
,
'TAGLIB_BUILD_IN'=>'Cx,Nav',
3、在相应的文件里使用自定义标签
<nav limit='6' order='sort ASC'>
<li><a href="{$url}">{$name}</a></li>
<ul>
<foreach name ='child' item='v'>
<li><a href="{:U('/c_' . $v['id'])}">{$v.name}</a></li>
</foreach>
</ul>
</nav>
Widget方法:
1、在相应分组中建立Widget\HotWidget.class.php
<
?
php
/**
* 自定义widget
*/
class HotWidget extends Widget
{
public function render($data)
{
// p($data);
// return "测试";
// $blog = M('blog')->field(array('id','title','click'))->order('click Desc')->limit(5)->select();
// p($blog);
$data['blog'] = M('blog')->field(array('id','title','click'))->order('click Desc')->limit(5)->select();
return $this->renderFile('',$data);
}
}
?>
2、建立模板文件Widget\Hot\Hot.html
3、调用
<dl>
<dt>热门博文(widget)</dt>
<foreach name ='blog' item ='v'>
<dd><a href="{:U('/' .$v['id'])}">{$v.title}</a> <span>{$v.click}</span></dd>
</foreach>
</dl>
{
:
W(
'Hot'
,
array
(
'id'
=
>
100
))}
调用时可传入参数,用array形式传入。