我正在运行Expression Engine 2.3.0并使用频道图像添加。
网站的一部分非常复杂,我通过插件而不是使用EE的模板逻辑来实现。我本质上得到的是一个CodeIgniter控制器和使用我指定的EE模板标签在网站上调用的视图。
我想使用频道图像来使我在视图中显示的频道数据看起来更好一些。问题是...频道图像功能似乎不允许我将其称为PHP。由于EE模板参数。
所以,我决定尝试通过解析器运行模板块。但我没有得到结果。有任何想法吗?或者可能是直接调用函数的解决方法?
<?php $this->EE =& get_instance();
$img_tpl = '{exp:channel_images:images entry_id="'. $item['id'] .'" cover_only="yes"}
<div style="float:left; display:inline; width:125px;">
<a href="{image:url:large}" title="{image:title}"><img src="{image:url:small}" alt="{image:title}" /></a>
<p>{image:description}</p>
</div>
{/exp:channel_images:images}';
$opts = array('');
$img = $this->EE->output->set_output($this->EE->TMPL->parse_variables($this->EE->TMPL->parse_globals($img_tpl), array($opts)));
?>
答案 0 :(得分:0)
你在这里度过一段难忘的时光。 EE的前端解析的任何部分都不会被认为是从EE外部调用它。
parse_variables()
和parse_globals()
不会解析完整的EE标记对(只有单个变量),这就是为什么没有结果。
我真的建议使用EE模板。
答案 1 :(得分:0)
https://expressionengine.stackexchange.com/questions/1347
我一直在研究这个答案,并想补充一下我在ExpressionEngine 3中解决问题的方式。
$arr = []; // your array
$range = range(min($arr), max($arr));
var_export(array_diff($range, $arr));
// [5,7,8]