K2的多个额外字段组(Joomla)

时间:2014-12-17 11:29:53

标签: php joomla joomla-k2

我使用的插件允许将多个额外的字段组分配给K2类别 - 插件工作正常,我遇到的问题是能够从某个Extra中提取数据Field Group,而不是遍历所有组。

这是我的代码(在开发者网站上列出):

<?php
    $extraFieldsByGroup = JArrayHelper::pivot($this->item->extra_fields, 'group');
    $db = JFactory::getDbo();
    $query = "SELECT * FROM #__k2_extra_fields_groups";
    $db->setQuery($query);
    $groups = $db->loadAssocList('id');
    foreach ($extraFieldsByGroup as $key=>$extrafields){
        $defaultGroup = '';
        if(!is_array($extrafields)) $extrafields = array($extrafields);
        if($key == $this->item->category->extraFieldsGroup)
        $defaultGroup = "class='mefg_default'";
    ?>
          <div id="group" class="<?php echo $groups[$key]['name'];?>" >
          <div class="<?php echo $groups[$key]['name'];?>">
          <div>
            <h3><?php echo JText::_($groups[$key]['name']); ?></h3>
          </div>
        <ul>
        <?php foreach ($extrafields as $key=>$extraField): ?>

        <?php if($extraField->value != ''): ?>

            <?php if($extraField->type == 'header'): ?>
            <h4 class="itemExtraFieldsHeader"><?php echo $extraField->name; ?></h4>
            <?php else: ?>
            <div>
            <span class="itemExtraFieldsLabel"><?php echo JText::_($extraField->name); ?>:</span>
            <span class="itemExtraFieldsValue <?php echo $extraField->alias; ?>"><?php echo $extraField->value; ?></span></div>
            <?php endif; ?>
        </li>
        <?php endif; ?>
        <?php endforeach; ?>
        </ul>
          </div></div>
            <?php
          }
            ?>
    <div class="clr"></div>

我想做的是从某个群体中提取额外的字段,并在循环中仅显示它们(值)。

有&#34;&#34;某些方法,如

<?php echo $item->extraFields->EXTRA_FIELD_ALIAS_HERE->value; ?>

但是有些字段是空白的或者是空值,所以创建一堆空div并不是我的选择。

$ extraFieldsByGroup变量来自所有&#34;组&#34;,而我正在寻找的是&#34; 2&#34;。我的PHP技能是有限的,但如果有人能指出我正确的方向为组内的额外字段值创建循环&#34; 2&#34;,将非常感激。谢谢!

1 个答案:

答案 0 :(得分:0)

K2的额外字段以json格式存储 - 这可能是您难以检索它们的原因。请参阅:http://www.itoctopus.com/on-leveraging-the-power-of-k2s-extra-items

此外,如果您提供更多需要完成的工作背景,我相信我能够更彻底地回答您的问题。