expressionengine - 在插件中输出变量

标签 expressionengine

this question ,我现在正在尝试重新设计插件,以便我可以做到:

{exp:deetector}
     {user_agent}
     {hash}
{/exp:deetector}

但是使用下面的代码,我没有得到任何输出:
public function __construct()
{
    $this->EE =& get_instance();

    include(PATH_THIRD.'/deetector/libraries/detector.php');

    $this->ua = $ua;

    $tagdata = $this->EE->TMPL->tagdata;

    $variables[] = array(
        'user_agent'   => $this->ua->ua,
        'hash'         => $this->ua->uaHash,
        'browser_os'   => $this->ua->full,
        'browser'      => $this->ua->browser,
        'browser_full' => $this->ua->browserFull
    );

    return $this->EE->TMPL->parse_variables($tagdata, $variables);
}

如果我这样做 $this->return_data = $this->ua->xx对于上面列出的每个变量,我都会得到输出,但如果我解析 $variables 数组则不会。

我也试过$variables = array但得到 undefined offset :0。

最佳答案

如果您只是使用构造函数进行输出,请确保插件类具有公共(public)属性 return_data其中包含解析的标记数据:

$this->return_data = $this->EE->TMPL->parse_variables($tagdata, $variables);

对于类中的任何其他方法,您可以根据您的示例简单地返回解析的数据。

作为旁注,我认为您没有在此处循环任何数据。考虑使用 parse_variables_row方法,所以额外的变量,如 count , total_resultsswitch被省略。使用该方法不需要嵌套数组,因此可以归结为:
$variables = array(
    'user_agent' => $this->ua->ua,
    ...
);

$this->return_data = $this->EE->TMPL->parse_variables_row($tagdata, $variables);

关于expressionengine - 在插件中输出变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13114460/

相关文章:

regex - htaccess : redirect old domain and all pages to a new domain

jquery - 使用 EE 的 {entry_id} 参数来定位 Jquery 函数中的各个条目?

php - 如何在 ExpressionEngine 2.x 中的发布表单上添加新选项卡

mysql - 如何限制每天的表单提交总数

conditional - 如何使用条件检查 channel 中是否有任何条目?

expressionengine - 如何使用结构输出选择菜单

mysql - 具有多个 cms 的 MySQL 速度较慢

wordpress - 独立表达式引擎站点

javascript - 链接到 Bootstrap 导航选项卡内的 ID

php - 复杂的表达式引擎模板 : possible to render <=1 second?