在k2后台的文章列表中增加字段显示栏

用joomla建外贸站,我通常都会选择用k2文章组件,因为用来作产品展示是十分的方便易用。

通常我会为产品的型号设置自定义字段,而文章标题作为产品名称(简单描述),这样的话就会比较利于SEO(关系到h2标签、和title方面)。

但是,这样后台的k2文章列表就没有显示型号,这不方便我们进行日常的产品更新录入工作。

如果要在文章列表增加显示自定义字段值,就要修改这个文件:

administrator\components\com_k2\views\items\tmpl\default.php

大概53行的位置

<th>
<input id="jToggler" type="checkbox" name="toggle" value="" />
</th>

在其下面添加以下代码,用作显示字段标题

<th><?php echo JText::_('Model No'); ?></th>

84行的位置

foreach ($this->rows as $row) :
$checked = JHTML::_('grid.checkedout', $row, $i );
$published = JHTML::_('grid.published', $row, $i );
$access = JHTML::_('grid.access', $row, $i );
$link = JRoute::_('index.php?option=com_k2&view=item&cid='.$row->id);

添加代码

$obj = json_decode($row->extra_fields);

即改成这样

foreach ($this->rows as $row) :
$checked = JHTML::_('grid.checkedout', $row, $i );
$published = JHTML::_('grid.published', $row, $i );
$obj = json_decode($row->extra_fields);
$access = JHTML::_('grid.access', $row, $i );
$link = JRoute::_('index.php?option=com_k2&view=item&cid='.$row->id);

然后在93行左右的位置

<td><?php echo $checked; ?></td>

这代码的下面增加

<td>
<?php foreach ($obj as $extraField):?>
<?php if ($extraField->id=="1"):?>
<?php echo $extraField->value; ?>
<?php endif; ?>
<?php endforeach; ?>
</td>

最后添加的代码是设定要显示的字段的ID,无论它是属于哪个字段组,字段的ID是唯一的。

如果要显示多个字段,只需要按同样方法增加前后两处代码就可以。