【问题标题】:Joomla render full article by id with "JModelLegacy getInstance article"Joomla 使用“JModelLegacy getInstance 文章”按 id 渲染全文
【发布时间】:2014-03-30 14:21:51
【问题描述】:

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

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

【问题讨论】:

    标签: php joomla-extensions joomla3.0


    【解决方案1】:

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

    如果是后者,那么已经有一些不错的免费(如“免费熊”)附加组件就是为此而编写的。

    【讨论】:

    • 是的,我正在尝试编写自己的 Joomla 扩展。很抱歉在这里粗鲁,但当然是有原因的。
    【解决方案2】:

    您正在尝试将 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'ed 任何类/类路径 - j。如果找不到它们,往往会默默地失败,这很难追踪。

    抱歉,这只是部分解决方案 - 但希望它能让您走上正轨。

    【讨论】:

    • 我不得不使用 sql 解决方案,因为我有截止日期。但我相信这是一个更好的解决方案,所以我会在有时间的时候尝试一下。谢谢
    【解决方案3】:

    这就是问题所在:

    $fullarticle = $item->fulltext;
    

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

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

    所以从文章对象获取属性全文应该是:

    $fullarticle = $article->fulltext;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-15
      • 2014-08-21
      • 2014-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-15
      相关资源
      最近更新 更多