【问题标题】:Add custom field from plugin to joomla article loop将插件中的自定义字段添加到 joomla 文章循环
【发布时间】:2017-05-25 21:28:24
【问题描述】:

我为我的 joomla com_content 文章创建了 3 个自定义字段,如本教程中所述: https://docs.joomla.org/Adding_custom_fields_to_core_components_using_a_plugin/de

现在我需要创建一个类别 (43) 内所有文章的概览,并在 joomla 查询中显示这些自定义字段。

我在文章模板文件覆盖中的实际 joomla 查询:

        <?php 
            $catId = 43;
            $query = "SELECT * FROM #__content WHERE catid ='" . $catId . "'";
            $db = JFactory::getDBO();
            $db->setQuery($query); 
            $articles = $db->loadObjectList(); 
            foreach($articles as $article){
                echo 'ID: ' . $article->id;
                echo '<br />';
                echo 'Name: ' . $article->title;
                echo '<br />';
                echo '<a href="' . JRoute::_('index.php?option=com_content&view=article&id='.$article->id) . '">Link</a>';
                echo '<br /><br />';
            }
        ?>

自定义字段可以添加到文章输出中:

$this->params->get('custom_field_1');

但这在循环内不起作用。如何将名称为 custom_field_1 的自定义字段添加到此循环?

【问题讨论】:

  • 为什么不在同一个插件中进行这个查询?使用 onContentPrepare 方法?
  • 我需要在特定站点模板中添加此循环。我不知道你的意思。你能给我一个例子的链接吗?

标签: php loops joomla


【解决方案1】:

您应该使用内容插件的 onContentPrepare 方法,与您在表单中添加字段时使用的方法相同:

public function onContentPrepare($context, &$row, $params, $page = 0){

    if ( JFactory::getApplication()->getTemplate() !== 'your_template_name' ){
        return;
    }

    $catId = 43;
    $query = "SELECT * FROM #__content WHERE catid ='" . $catId . "'";
    $db = JFactory::getDBO();
    $db->setQuery($query); 
    $row->articles = $db->loadObjectList(); 

}

现在在您的项目中,您有一个字段文章,其中包含类别 43 的所有文章的列表。

在您看来,您将能够使用 $this->item->articles 来检索此列表。

【讨论】:

    【解决方案2】:

    您可以在循环中尝试以下代码-

    <?php 
    $attribs = json_decode($article->attribs); 
    echo $attribs->custom_field_1; 
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-09
      • 1970-01-01
      • 1970-01-01
      • 2012-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多