初看织梦模板解释器 dedetag.class.php
日期: March 20, 2019 作者:网站维护
织梦里的模板引擎,模板的标签类似这样
{dede:car color='red'} hello {/dede:car}
{dede:car color='blue'/}
模板引擎也就是解释器要做的是输出一个分析后的结果
0=>tagname:car
color: red
inner: hello
1=>tagname:car
color: blue
inner:
也就是知道模板里有两个标签,其中一个标签名是car,属性color是red,内部文本是hello,另外一个标签名是car,属性color是blue,内部文本是空的。
测试一下parseTemplete函数
parseTemplete函数在文件 includededetag.class.php 里
另外新建模板文件:testTemplets.html
新建测试文件:simpletag.php
testTemplets.html文件内容
{dede:carcolor='red'}hello{/dede:car}
{dede:carcolor='world'/}
simpletag.php文件内容
<?php
//设置常量,不然dedetag.class.php不能运行
define('DEDEINC', '' );
define('DEDE_ENVIRONMENT', 'development');
require_once ('include/dedetag.class.php');
$a = new DedeTagParse();
//LoadTemplate会调用ParseTemplet
$a->LoadTemplate( __dir__.'\testTemplets.html');
print_r($a->CTags);
解释后的结果:
(
[0] => DedeTag Object
(
[IsReplace] =>
[TagName] => car
[InnerText] => hello
[StartPos] => 0
[EndPos] => 40
[CAttribute] => DedeAttribute Object
(
[Count] => 1
[Items] => Array
(
[tagname] => car
[color] => red
)
)
[TagValue] =>
[TagID] => 0
)
[1] => DedeTag Object
(
[IsReplace] =>
[TagName] => car
[InnerText] =>
[StartPos] => 42
[EndPos] => 67
[CAttribute] => DedeAttribute Object
(
[Count] => 1
[Items] => Array
(
[tagname] => car
[color] => world
)
)
[TagValue] =>
[TagID] => 1
)
)
parseTemplete分析:
可以参考下面的图片,图片上标了一些变量名,具体过程看代码。
广告内容为平台自动生成