Joomla用PHP代码替换文章内容中的String

时间:2013-05-31 08:25:22

标签: joomla override article

我正在使用Joomla 2.5网站。目标是在编辑文章时为作者提供一种简单的方法来输出类别列表。

为此我写了一个小的PHP脚本,它从Db中查询所需的内容:

switch ($year) {
    case "2009":
        $id = "42";
        break;

 ...

 $db->setQuery('
  SELECT 
    #__categories.title
  FROM 
    #__categories 
  WHERE 
    #__categories.parent_id =' . $id .'
  ORDER BY #__categories.title ASC
    '
   ); 

$winners = $db->loadObjectList(); 

foreach($winners as $gewinner){
    echo $gewinner->title . "<br />";
    }

...

脚本需要一年作为输入并将其用作$ id。 我现在正在寻找一种方法将其轻松集成到joomlas文章编辑器中。如果作者可以插入类似

的内容,那就太好了
 ###2011### 

然后转换为:

<?php
require_once '/homepages/16/d60007267/htdocs/content/testpage/templates/test/winners.php?j=2009';  
?>

呈现文章时。我以为我可以进行com_content覆盖。但是没有找到在内容中搜索和替换的好点。

感谢您的帮助,

tbook

1 个答案:

答案 0 :(得分:2)

您必须查看内容插件和编辑器 - xtd插件。

内容插件将检测您放入文章的特殊标记,并执行您需要的任何操作。这是你的整个脚本代码应该进入这个插件,而不是require_once的东西。通常,插件标记使用{},但您可以使用任何您想要的内容。您只需创建一个适当的REGEX即可进行检测。

如果这样可行,您还可以查看editors-xtd插件。然后,这将在编辑器下方创建一个按钮,允许作者将标记输入编辑器。

例如,您可以查看一个更简单的现有插件。