2013-02-14 40 views
0

所以我有这个工作的PHP代码来获取的Joomla当前显示的文章:获得文章的标题,从进入的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 add-on中尝试了一个PHP,但是代码停止了页面显示。

+0

你是什么意思“动态修改我的插件的文章”? 你应该可以通过一个regexpr从内容插件运行这个代码,你可以捕获代码并替换它。 – 2013-02-15 08:06:11

+0

好的,所以文章的标题是例如“12345”,并且我在该文章中有一个插件{gallery} 12345 {/ gallery},我如何在{gallery}这里插入标题{/画廊}。 – ChrisAdmin 2013-02-16 02:06:39

+0

在这个阶段,我正在考虑某种模板系统,或者直接将get_title代码添加到库插件中,但并不真的想要通过别人的代码 – ChrisAdmin 2013-02-16 02:09:12

回答

0

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

您有包含代码中的一些文章

{gallery}here!{/gallery} 

该插件应

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

取代如果是这样,这将需要在com_content,以发生=文章,其中的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视图=文章之外,那么你就必须实例com_content,并从那里抓住它。