phpbb源码分析-模板引擎(2)(4)

发布时间:2021-06-08

phpbb,源码分析 模板引擎,工具书

<dd><a

href="#f{faq_block.S_ROW_COUNT}r{faq_block.faq_row.S_ROW_COUNT}">{faq_block.faq_row.FAQ_QUESTION}</a></dd>

<!-- END faq_row -->

</dl>

<!-- END faq_block -->

我们再来看php代码中是如何实现赋值到模板的,请看下面的代码

// Pull the array data from the lang pack

$help_blocks = array();

foreach ($user->help as $help_ary)

{

if ($help_ary[0] == '--')

{

$template->assign_block_vars('faq_block',

array(

'BLOCK_TITLE'=>

$help_ary[1])

);

continue;

}

$template->assign_block_vars('faq_block.faq_row', array(

'FAQ_QUESTION'=> $help_ary[0],

'FAQ_ANSWER'=> $help_ary[1])

);

}

可以看到对’faq_block.faq_row’的block赋值和对’faq_block’,前者赋值后的模板代码就会有两层嵌套的循环,而前面只有一层。所以{faq_block.BLOCK_TITLE}是在第一层循环里面,第二层循环里面存取的是’FAQ_QUESTION’和’FAQ_ANSWER’的值。需要用{faq_block.faq_row.FAQ_QUESTION}的形式将其取出。通过以上一个简单的例子的讲解,其实我相信应该已经很明了了讲明了phpbb3模板引擎中一个很重要的功能,就是数组(嵌套数组)的赋值功能。代码中也示例如何使用assign_block_vars赋值的数组值。

再回到destroy_block_vars函数,首先函数先判断传入参数(需要被销毁的block变量名字)是否含有”.”,如果没有”.”那么意味着只要简单的去掉$this->_tpldata[$blockname]就够了。如果找到了”.”,那么需要麻烦一点,需要递归销毁。phpbb3是用下面的代码实现的

// Nested block.

$blocks = explode('.', $blockname);

$blockcount = sizeof($blocks) - 1;

phpbb源码分析-模板引擎(2)(4).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219