簡體   English   中英

Joomla使用“ JModelLegacy getInstance article”按ID呈現全文

[英]Joomla render full article by id with “JModelLegacy getInstance article”

我一直試圖讓joomla全文在選項卡中呈現。 該選項卡正在工作。 我只是無法呈現文章內容。 這就是我現在的位置。

這是helper.php

public static function getArticle($articleId)

{

JModelLegacy::addIncludePath(JPATH_SITE.'/components/com_content/models', 'ContentModel');
$model = JModelLegacy::getInstance('Article', 'ContentModel', array('ignore_request' => true));
$article = $model->getItem((int) $articleId);

$fullarticle = $item->fulltext;

$itemsHtml = '<div>'. $fullarticle .'</div>';

return $itemsHtml;
}

這是default.php

  ...code...
  else if ($list_of_tabs['use'][$i][0] == 'article'){            
    echo '<div class="tab-pane '.$active.'" id="'.$i.$rid.'">'.
            modJpTabsHelper::getArticle($list_of_tabs['article'][$i], $params) .
         '</div>';
  }
  ...code...

如果您需要更多信息。 不要猶豫了。

您要實現的目標是:編寫自己的Joomla! 擴展程序,它在選項卡中顯示文章,或者您只需要顯示J! 標簽中的文章?

如果是后者,那么已經有一些專門為此編寫的不錯且免費的插件(如“免費熊”)。

您正在嘗試使用MVC的模型部分作為要渲染的東西。 您應該使用MVC系統-使用控制器收集模型和視圖,然后可以通過控制器使用附帶的視圖渲染模型。

因此,您使用類似(我還沒有測試過的東西-您需要對其進行更正)之類的東西。

$filter=array('id' => $i->query['id']);
$options=array('filter_fields' => $filter,'ignore_request' => true);

$ctl = new ContentModelController();
$view = $ctl->getView( 'Article');
$model = $ctl->getModel( 'Article','',$options);

您可能需要從應用程序中設置參數,例如。

$model->setState('params', JApplication::getInstance('site')->getParams());

然后繼續

$view->setModel( $model, true );
$result = $view->display();

確保您已將JLoader :: import的所有類/類路徑導入-j。 如果找不到它們,它們往往會靜默地失敗,這可能很難跟蹤。

抱歉,這只是部分解決方案-但希望它可以使您走上正確的道路。

問題出在這里:

$fullarticle = $item->fulltext;

來自模型的文章對象位於變量$ article而非$ item中:

$article = $model->getItem((int) $articleId);

因此,從文章對象獲取屬性全文應該是:

$fullarticle = $article->fulltext;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM