Joomla K2额外字段:差异化显示

时间:2014-08-24 19:01:58

标签: php css joomla joomla3.0 joomla-k2

我目前正在尝试将item.php文件调整为单独显示额外字段而不是组中。我在这里找到了som代码片段。在那里,没有真正的帮助,因为我认为它们可能已经过时了。

例如:此页面: http://steffenjungersen.moloch.dk/nugent-be-goode

我想"信息"显示在粗体介绍文本下方的项目顶部。 另外,我想要"卡拉克特" (下拉菜单附加字段)显示为1-6的

中的星标

使用类别名称我给了这些额外的字段,我想出了这个" Karakter" item.php中的一个:

<?php if(isset($this->item->extra_fields[rating]) && ($this->item->extra_fields[rating] >= 0 || $this->item->extra_fields[rating] <=6)): ?>
<span class="starsbox stars<?php echo $this->item->extra_fields[rating]; ?>"></span>
<?php endif; ?>

然后在我的k2.css文件中:

.starsbox {
width: 96px;
height: 16px;
display: inline-block;
background: url(images/stars.png) no-repeat;
}

.stars6 {
background-position: 0px 0px;
}
.stars5 {
background-position: -16px 0px; 
}
...etc

那没有用。

同样,我试着打电话给&#34;信息&#34;场进入一个独立的位置并将其置于顶部。没有反应。

所以我将整个项目&gt; extra_fields删除为$ key =&gt; $ extraField):?&gt;阻止,然后额外的字段就消失了。

有人能指出我在正确的方向吗?

谢谢: - )

-astrid

1 个答案:

答案 0 :(得分:0)

好。我从朋友那里得到了一些帮助。这里有多远我们(如果有人想知道的话)。

为了让额外的字段独立显示,您需要将它们拆分。所以取代&#34; foreach ...&#34;在你的item.php中输入:

  <!-- START: Call to prepare extra fields -->
<?php  
//convertArray to use ids as key
$extrafields = array();
foreach($this->item->extra_fields as $item)
{    
$extrafields[$item->id] = $item->value;
}   
?>    
<!-- END: Call to prepare extra fields -->

然后,要调用您需要的额外字段,请执行以下操作:

<?php if(isset($extrafields[X]) === true):?>
<?php echo $extrafields[X]; ?>
 <?php endif; ?>

其中X是额外字段的数字ID。

现在这里有趣的部分。我想为我的客户创建一个1-6星评级系统,他是一名音乐记者。他应该能够从下拉列表中选择评级,并且该值应该在项目视图中显示为星号。

我决定使用K2附带的基于CSS和精灵的文章评级系统 - 然后我可以&#34;回收&#34;漂亮的星形图像和已经创建的CSS。

看看它的外观:

<?php if(isset($extrafields[3]) === true):?>
<ul class="itemRatingList">
<li class="itemCurrentRating" id="itemCurrentRating<?php echo $this->item->id; ?>" style="width:<?php echo round($extrafields[3]*100/6); ?>%;"></li>
<li><?php if(isset($extrafields[3]) == 1):?><a href="#" title="<?php echo JText::_('K2_1_STAR_OUT_OF_5'); ?>" class="one-star">1</a></li><?php endif; ?>
<li><?php if(isset($extrafields[3]) == 2):?><a href="#" title="<?php echo JText::_('K2_2_STARS_OUT_OF_5'); ?>" class="two-stars">2</a></li><?php endif; ?>
<li><?php if(isset($extrafields[3]) == 3):?><a href="#" title="<?php echo JText::_('K2_3_STARS_OUT_OF_5'); ?>" class="three-stars">3</a></li><?php endif; ?>
<li><?php if(isset($extrafields[3]) == 4):?><a href="#" title="<?php echo JText::_('K2_4_STARS_OUT_OF_5'); ?>" class="four-stars">4</a></li><?php endif; ?>
<li><?php if(isset($extrafields[3]) == 5):?><a href="#" title="<?php echo JText::_('K2_5_STARS_OUT_OF_5'); ?>" class="five-stars">5</a></li><?php endif; ?>
<li><?php if(isset($extrafields[3]) == 6):?><a href="#" title="<?php echo JText::_('K2_6_STARS_OUT_OF_5'); ?>" class="six-stars">6</a></li><?php endif; ?>
</ul>
<?php endif; ?>

当我在某个时刻可以设法让我失意时,我会考虑用span或其他东西替换a标签。而且我可能会纠正文字的问题。但现在它有效。

致以最诚挚的问候,

阿斯特丽德