2013-02-14 56 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,並從那裏抓住它。