繁体   English   中英

将文章标题从joomla插入插件

[英]getting article title from joomla into a plugin

所以我有这个工作的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,但是该代码停止了页面的显示。

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

您有一些包含代码的文章

{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并从那里获取它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM