thinkphp3.2.3自定义标签问题 200
tp3.2.3自定义的标签里面的属性怎样能识别变量,比如<TP:articleid="{$id}"></TP:article>,怎样才能识别这样的属性写法...
tp3.2.3自定义的标签里面的属性怎样能识别变量,比如
<TP:article id="{$id}"></TP:article>,怎样才能识别这样的属性写法 展开
<TP:article id="{$id}"></TP:article>,怎样才能识别这样的属性写法 展开
2个回答
展开全部
需要自己先定义好,定义方法:
项目文件夹\ThinkPHP\Library\Think\Template\TagLib\
新建一个文件,例如 Tp.class.php
<?php
namespace Think\Template\TagLib;
use Think\Template\TagLib;
class Tp extends TagLib {
protected $tags = array(
'list' => array('attr' => 'order,limit', 'close' => 1),
'webinfo' => array('close' => 1), //1=<webinfo><webinfo/>
);
public function _list($attr, $content) {
$order = $attr['order']; //排序
$limit = $attr['limit']; //多少条数据
$str = '<?php ';
$str .= '$result = M()->table(array("m_article"=>"article","m_menu"=>"menu","m_web_admin"=>"admin"))->field("article.*,menu.name as menu,admin.name as author")->where("article.mid = menu.id and article.uid = admin.id")->order("' . $order . '")->limit(' . $limit . ')->select();';
$str .= 'foreach ($result as $v):';
$str .= '?>';
$str .= $content;
$str .= '<?php endforeach ?>';
return $str;
}
public function _webinfo($attr = '', $content) {
$str = '<?php ';
$str .= '$result = M("web_set")->where("id = 1")->select();';
$str .= 'foreach ($result as $k => $ii):';
$str .= '?>';
$str .= $content;
$str .= '<?php endforeach ?>';
return $str;
}
}
两个示例都是固定了数据表,可以根据自己的需要更改,或者直接做成变量,前台使用的时候再传入。
第二步,在config文件中写下如下代码:
'TAGLIB_BUILD_IN' => 'Cx,Tp'
然后在模版中调用:
<!--webinfo使用方法-->
<webinfo>
<{$ii.web_name}>
</webinfo>
<!--list使用方法-->
<list limit="10" order="id desc">
<{$v.menu}>
</list>
M-finder博客:http://www.m-finder.com/,长期分享技术相关知识,欢迎大家访问。
追问
没明白我说的意思,我的意思是怎么把里面的10换成变量,而不是写死。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询