[英]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.