首頁 > 後端開發 > php教程 > DEDECMS 二次开起源代码 , 请帮忙

DEDECMS 二次开起源代码 , 请帮忙

WBOY
發布: 2016-06-13 13:00:46
原創
923 人瀏覽過

DEDECMS 二次开发源代码 , 请帮忙
DEDE 官方论坛不允许新注册用户发帖 ... 

这样的 , 这么一串 HTML 代码
{dede:arclist flag='h' limit='0,1' infolen='230'}
    

[field:title/]


    

[field:info/]...[查看全文]


   {/dede:arclist}
这么一段代码 , 对应 taglib/arclist.lib.php 
中我看到解 
    

[field:title/]


    

[field:info/]...[查看全文]


这么一段代码 , 也就是 arclist 标签的 InnerText 的解法是这样的 .

arclist.lib.php line 472-474
$dtp2 = new DedeTagParse();
$dtp2->SetNameSpace('field', '[', ']');
$dtp2->LoadString($innertext);

这个 DedeTagParse() 这个我可以理解 , 它首先根据 SetNameSpace 设置好 TagStartWord 和 EndWord , 而后根据这些东西使用 FOR 循环整个字符串 , 其中使用 STRPOS 对比匹配出标签 , 并将标签全部存于类数组 CTags 中 .
随后调用 MakeOneTag 方法让那些 taglib 下面存在文件的方法获取 TagValue .
而后再使用 GetResult 方法将值按照解析式 STRPOS 的位置插入 HTML 中随后返回完整字符串 .

这个过程好理解 , 但不好理解的事 
$dtp2->SetNameSpace('field', '[', ']');
MakeOneTag 中 taglib 下没有 filed.lib.php , 并且 , AssignSysTag 中也没有 field 的解析 .
而且 , 这里不会走到 MakeOneTag , 我想问的是 , 它是怎么解析到值的 ? 非常非常感谢 !!!!
------解决方案--------------------
$dtp2->SetNameSpace('field', '[', ']');

field 字段
[ 开弧
] 闭弧

用数据表字段内容去替代模板中用[]括起的模板变量
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板