K2自定义字段的定制输出
在目录\components\com_k2\template\
下新建模板文件夹,一般操作是复制default
文件夹,然后重命名就可以了。
但最好还是在你使用的模板文件的html
文件夹下新建com_k2
文件夹,然后把\components\com_k2\template\
下的内容复制过去。
修改文章页面模板文件,即item.php
删除默认的字段显示方式(靠近200行位置):
<?php if($this->item->params->get('itemExtraFields') && count($this->item->extra_fields)): ?>
<!-- Item extra fields -->
<div class="itemExtraFields">
<h3><?php echo JText::_('Additional Info'); ?></h3>
<ul>
<?php foreach ($this->item->extra_fields as $key=>$extraField):?>
<li class="<?php echo ($key%2) ? "odd" : "even"; ?> type<?php echo ucfirst($extraField->type); ?> group<?php echo $extraField->group; ?>">
<span class="itemExtraFieldsLabel"><?php echo $extraField->name; ?>:</span>
<span class="itemExtraFieldsValue"><?php echo $extraField->value; ?></span>
</li>
<?php endforeach; ?>
</ul>
<div class="clr"></div>
</div>
<?php endif; ?>
然后手动添加每个字段显示,位置自定,字段显示的代码如下:
<?php if($this->item->params->get('itemExtraFields') && count($this->item->extra_fields)): ?>
<?php foreach ($this->item->extra_fields as $extraField):?>
<?php if ($extraField->name=="你的字段名称"):?>
<?php echo $extraField->name; ?>:<?php echo $extraField->value; ?>
<?php endif; ?>
<?php endforeach; ?>
<?php endif; ?>
如果你的字段名称为中文,请先将模板文件改为 utf-8 编码。
更新日期:2012年12月23日
使用K2 v2.6.1及更高的版本时,引用自定义字段会变得更加方便
输出字段的名称
$this->item->extraFields->EXTRAFIELDALIASHERE->name
输出字段的值
$this->item->extraFields->EXTRAFIELDALIASHERE->value
代码中的EXTRAFIELDALIASHERE
是你创建字段时的别名。
当我们需要判断字段是否为空,当不为空时输出字段,可以使用此方法:
<?php if (!empty($this->item->extraFields->EXTRAFIELDALIASHERE->value)): ?>
<?php echo $this->item->extraFields->EXTRAFIELDALIASHERE->name ; ?>
<?php echo $this->item->extraFields->EXTRAFIELDALIASHERE->value ; ?>
<?php endif; ?>