Joomla通过id使用“JModelLegacy getInstance文章”呈现完整的文章

时间:2014-03-30 14:21:52

标签: php joomla-extensions joomla3.0

我一直试图让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...

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

3 个答案:

答案 0 :(得分:2)

你想要实现什么:写自己的Joomla!扩展名在选项卡中显示文章,或者您只需要显示您的J!选项卡中的文章?

如果它是后者,那么已经有一些很好的和免费的(例如在#34;免费熊&#34;)附加组件中为此而写。

答案 1 :(得分:1)

您正在尝试使用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);

您可能需要在应用程序中设置params,例如..

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

然后继续

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

确保你有JLoader :: import'ed任何类/类路径 - j。如果找不到它们,往往会无声地失败,这很难追查。

对不起,这只是一个部分解决方案 - 但希望它可能会让你走上正轨。

答案 2 :(得分:0)

问题在于:

$fullarticle = $item->fulltext;

模型中的文章对象是变量$ article而不是$ item:

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

因此,从文章对象获取属性全文应该是:

$fullarticle = $article->fulltext;