上图是学校列表+学校相关文章(学校模型 + 文章模型), 游戏同理(游戏基础信息+游戏相关文章)。
通过学校名 title 字段, 去读取文章模型的相关文章。
使用的block:block_list_by_keywords
正常的block 是没法传递变量的。
实现上图功能的相关步骤如下:
1、学校模型列表页 school_list.htm 先读取学校列表:
{block:global_cate pagenum="10" dateformat="Y-m-d"}{/block}
2、引入通过关键词读取内容列表的block文件
{php}
include_once BLOCK_PATH.'block_list_by_keywords.lib.php';
{/php}
3、循环内容列表和读取相关文章
{loop:$gdata[list] $v}
<div>
<img src="{$v[pic]}"/>
<h3><a href="{$v[url]}">{$v[subject]}</a></h3>
<!--通过标题去读取相关文章-->
{php}
$keywords = $v['title'];
$list_by_keywords_data = block_list_by_keywords(array('keywords'=>$keywords,'cid'=>0,'mid'=>2,'limit'=>5,'life'=>600));
{/php}
{if:$list_by_keywords_data}
<ul>
{loop:$list_by_keywords_data[list] $lv}
<li><a href="{$lv[url]}">{$lv[subject]}</a></li>
{/loop}
</ul>
{/if}
</div>
{/loop}
该方法弊端:
无法集成 block_list_by_keywords 里面的钩子功能。
比如某插件实现了该block的钩子扩展。
// hook block_list_by_keywords_after.php
通过上述调用,是无效的!
发表评论