从joomla获取文章标题到插件

时间:2013-02-14 09:40:16

标签: php joomla

所以我有这个有效的PHP代码来获取Joomla当前显示的文章:

<?php
    $option = JRequest::getCmd('option');
    $view = JRequest::getCmd('view');
if ($option=="com_content" && $view=="article") {
    $ids = explode(':',JRequest::getString('id'));
    $article_id = $ids[0];
    $article =& JTable::getInstance("content");
    $article->load($article_id);
    echo $article->get("title");
}
else {
    echo "Error - not an article";
}
?>

我已经成功地在ChronoForms中使用我的文章名称来发送电子邮件给客户,这恰好是一个招标网站,每个文章名称的末尾都有一个ID代码,例如12345。

是否有任何快速和脏的方法在joomla中的某处插入此代码,以便我可以在文章中动态修改我的插件,例如:

{gallery}12345{/gallery} 

我尝试将其直接添加到模板中,但无论我在哪里插入它(顶部,底部,中间)都会出现各种问题 我还在文章joomla附加组件中尝试了PHP,但该代码停止了页面显示。

1 个答案:

答案 0 :(得分:0)

基于评论这是我的理解;如果我弄错了,请纠正我。

您有一些文章包含代码

{gallery}here!{/gallery} 

插件应替换为

 {gallery}The title of the article{/gallery}

如果是这样,这将需要在com_content,view = article上进行,其中Joomla将为插件的onContentBeforeDisplay()提供文章对象。

function onContentBeforeDisplay($context, &$article, &$params, $page=0){
    $view     = JRequest::getCmd('view'); 
    if ($view == 'article') {
        $content = $article->text;  
        $title = $article->title;
        $content = preg_replace('/{gallery}.*{\/gallery}/',"{gallery}$title{/gallery}",$content);
        $article->text = $content;
    }
}

如果您需要另一篇文章的标题,或者您需要在com_content view = article之外,那么您必须实例化com_content并从那里抓取它。