2017-01-11 55 views
0

我创造了我的Joomla com_content第3个的自定义字段,如在本教程中描述: https://docs.joomla.org/Adding_custom_fields_to_core_components_using_a_plugin/de从插件添加自定义字段到Joomla文章循环

现在我需要建立在一个类别中的所有产品进行了概述(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的自定义字段到此循环?

+0

你为什么不作出同样的插件,这里面的查询?用onContentPrepare方法? – Yoleth

+0

我需要在特定的网站模板中添加此循环。我不知道你的意思。你能给我一个例子的链接吗? – Peesen87

回答

0

你应该使用内容插件的方法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->文章检索此列表。

0

你可以试试下面的代码中环 -

<?php 
$attribs = json_decode($article->attribs); 
echo $attribs->custom_field_1; 
?> 
相关问题