更改ExpressionEngine插件';s解析顺序

更改ExpressionEngine插件';s解析顺序,expressionengine,Expressionengine,我在模板中有以下ExpressionEngine代码: {exp:hits:count_hits_image entry_id='{exp:test:getpage tag="id"}'} 其中exp:test是我创建的一个插件,用于获取 我遇到的问题是,exp:hits在exp:test之前被解析,这使得整个标记不起作用 在解析外部标记之前,如何让ExpressionEngine先解析内部标记{exp:test},然后再解析外部标记{exp:hits} {exp:hits:count_hit

我在模板中有以下ExpressionEngine代码:

{exp:hits:count_hits_image entry_id='{exp:test:getpage tag="id"}'}
其中
exp:test
是我创建的一个插件,用于获取

我遇到的问题是,
exp:hits
exp:test
之前被解析,这使得整个标记不起作用

在解析外部标记之前,如何让ExpressionEngine先解析内部标记
{exp:test}
,然后再解析外部标记
{exp:hits}

{exp:hits:count_hits_image entry_id='{exp:test:getpage tag="id"}' parse="inward"}
试试这个:

{exp:hits:count_hits_image entry_id='{exp:test:getpage tag="id"}' parse="inward"}

您需要做的是将插件转换为标记对,这样它的工作原理如下:

{exp:test:getpage tag="id" parse="inward"}
    {exp:hits:count_hits_image entry_id='{id}'}
{/exp:test:getpage}
$vars = array();
$vars[0]['id'] = $results->row('id');
return $this->EE->TMPL->parse_variables($this->EE->TMPL->tagdata, $vars);
在插件中,您可以执行以下操作:

{exp:test:getpage tag="id" parse="inward"}
    {exp:hits:count_hits_image entry_id='{id}'}
{/exp:test:getpage}
$vars = array();
$vars[0]['id'] = $results->row('id');
return $this->EE->TMPL->parse_variables($this->EE->TMPL->tagdata, $vars);

您需要做的是将插件转换为标记对,这样它的工作原理如下:

{exp:test:getpage tag="id" parse="inward"}
    {exp:hits:count_hits_image entry_id='{id}'}
{/exp:test:getpage}
$vars = array();
$vars[0]['id'] = $results->row('id');
return $this->EE->TMPL->parse_variables($this->EE->TMPL->tagdata, $vars);
在插件中,您可以执行以下操作:

{exp:test:getpage tag="id" parse="inward"}
    {exp:hits:count_hits_image entry_id='{id}'}
{/exp:test:getpage}
$vars = array();
$vars[0]['id'] = $results->row('id');
return $this->EE->TMPL->parse_variables($this->EE->TMPL->tagdata, $vars);

这与我需要的正好相反。它先处理外部,这和我需要的正好相反。它首先处理了外部。谢谢。在我的代码中,我是否只替换
return$results->row('id')使用
返回$this->EE->TMPL->parse_变量($this->EE->TMPL->tagdata,$results)这样我就可以拥有带有变量{id}的标记对。还有什么我不知道的吗。我无法让它工作。我只是更新了我的代码示例,以更准确地匹配您现有的代码。谢谢derek,我们就快到了。双对现在可以工作了,如果我执行
{exp:test:getpage tag=“id”parse=“intrown”{id}{/exp:test:getpage}
的话,我可以看到id,但是如果我按照上面的标记代码执行,比如
{exp:test:getpage tag=“id”parse=“intrown”}{exp:hits:count hits\u hits\u image entry\u id={/exp:test:getpage}
,那么我会得到一个空白页。我通过硬编码id确认了hit标记的作用。当我用getpage标记包装它时,它就不起作用了。你认为问题出在哪里?你的意思是说,你得到了一个空白页,因为有一个错误?(模板中通常会出现其他内容吗?)如果是,请在index.php文件中启用调试,并查看php错误。谢谢。在我的代码中,我是否只替换
return$results->row('id')使用
返回$this->EE->TMPL->parse_变量($this->EE->TMPL->tagdata,$results)这样我就可以拥有带有变量{id}的标记对。还有什么我不知道的吗。我无法让它工作。我只是更新了我的代码示例,以更准确地匹配您现有的代码。谢谢derek,我们就快到了。双对现在可以工作了,如果我执行
{exp:test:getpage tag=“id”parse=“intrown”{id}{/exp:test:getpage}
的话,我可以看到id,但是如果我按照上面的标记代码执行,比如
{exp:test:getpage tag=“id”parse=“intrown”}{exp:hits:count hits\u hits\u image entry\u id={/exp:test:getpage}
,那么我会得到一个空白页。我通过硬编码id确认了hit标记的作用。当我用getpage标记包装它时,它就不起作用了。你认为问题出在哪里?你的意思是说,你得到了一个空白页,因为有一个错误?(您通常会在模板中显示其他内容吗?)如果是,请在index.php文件中启用调试,并查看php错误是什么。