2

我正在尝试修剪返回 Joomla 中文章标题的查询中的前导“the”,以便结果按字母顺序显示,并且前导“the”(如果存在)被忽略。负责这个的模块是文章类别(这是 Joomla 核心模块),我认为我应该修改的文件是 modules/mod_articles_category 中的 helper.php。我替换以下行:

  $articles->setState('list.direction', $params->get('article_ordering_direction',    
  'ASC')); 

有了这个:

  $articles->setState('list.direction', $params->get('article_ordering_direction',  
  'TRIM(LEADING \'THE \' FROM a.title) ASC'));

但是,如果我启用调试模式,则不会显示 TRIM。所以我想,我需要在其他地方进行更改。抱歉,我不熟悉 Joomla,所以不知道这个查询来自哪里。非常感谢任何指针。

4

1 回答 1

1

好的,简短的回答是否定的,我不相信您可以像这样修改模块中的查询。我没有使用过模块,但我对组件有一些经验,所以我建议两种方法:

  • 尝试从模块中自己查询数据库,而不是使用 setState,而是自己构建查询。
  • 你可以作弊。由于 Joomla 已经为您完成了繁重的工作,您只需操纵结果对象(即 $list),重新排列它并剥离您不想要的任何内容。我还建议您将代码视为布局覆盖,这样您就可以在不覆盖所做更改的情况下更新您的网站。
于 2013-06-15T23:17:52.203 回答