expressionengine - 表达式引擎 Hook

标签 expressionengine

我有一个具有以下要求的表达式引擎网站。

我需要能够通过一对匹配字段来过滤 channel 条目结果集,例如我的条目将有一个 field_a 和 field_b。如果这些字段匹配,我希望它成为返回结果集的一部分。我不能只在前端进行此检查,因为那样结果计数将不正确。我想我可以使用一个钩子(Hook)将字段传递到 exp:channel:entries 标记并更改返回的数据。

这看起来明智吗?如果是的话,有人知道操作该数据的详细信息吗?看看文档,我想我想使用“channel_entries_query_result” Hook ,但我不确定如何实际操作数据。我已经创建了可以正常触发的钩子(Hook),并且我可以看到模板 tag_data 等,但我不确定下一步该去哪里。

谢谢

最佳答案

您可以编写自己的模块,扩展 channel 条目循环。

你可以像这样使用它:

{exp:custom_module:entries}

此方法支持任何默认参数。

模块中的方法如下所示:

public function entries()
{
    if( ! class_exists('Channel'))
    {
        require_once PATH_MOD.'channel/mod.channel.php';
    }

    // queries grabbing entry ids you want
    ....

    $this->EE->TMPL->tagparams['entry_id'] = implode('|', $entry_ids);

    $channel = new Channel();
    $tagdata = $channel->entries();

    return $tagdata;
 }

关于expressionengine - 表达式引擎 Hook ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10753004/

相关文章:

expressionengine - 表达式引擎: How do I display the category name of an entry?

content-management-system - ExpressionEngine:有条件地在 channel 条目表单中显示自定义字段

expressionengine - 处理列表中布局更改的理想方式

mysql - 如果第一个值为空,则可以用其他值替换 ORDER BY

expressionengine - 跨站点的 MSM 成员管理

php - 表达式引擎 Controller

expressionengine - ExpressionEngine MSM 站点上的 htaccess

expressionengine - 在控制面板中配置 'Name of your site'

expressionengine - 将 ExpressionEngine 成员与 MailChimp 集成的最佳方式是什么?

expressionengine - 使用 Exp :resso's Store on Expression Engine? 时如何更改产品表单以显示修饰符库存