thinkphp3.2.3自定义标签问题 200

tp3.2.3自定义的标签里面的属性怎样能识别变量,比如<TP:articleid="{$id}"></TP:article>,怎样才能识别这样的属性写法... tp3.2.3自定义的标签里面的属性怎样能识别变量,比如
<TP:article id="{$id}"></TP:article>,怎样才能识别这样的属性写法
展开
 我来答
蒜苗27
2017-04-15 · TA获得超过143个赞
知道小有建树答主
回答量:134
采纳率:0%
帮助的人:58.9万
展开全部

需要自己先定义好,定义方法:

项目文件夹\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换成变量,而不是写死。
miniappj0nu32ZYAlwgy
2018-04-02
知道答主
回答量:11
采纳率:0%
帮助的人:8021
展开全部
兄弟这个问题解决了吗? 我也遇到了 吧 变量写活了就报XML语法错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式