我使用的插件允许将多个额外的字段组分配给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;,将非常感激。谢谢!
答案 0 :(得分:0)
K2的额外字段以json格式存储 - 这可能是您难以检索它们的原因。请参阅:http://www.itoctopus.com/on-leveraging-the-power-of-k2s-extra-items
此外,如果您提供更多需要完成的工作背景,我相信我能够更彻底地回答您的问题。