Joomla K2额外领域:差异化显示



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

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

我想让"信息"显示在项目的顶部,在粗体的介绍文本下面。此外,我希望"Karakter"(下拉菜单额外字段)显示为1-6的星星

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

<?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

那没用。

同样,我尝试将"Info"字段调用到一个独立的位置,并将其放在顶部。没有反应。

所以我删除了整个项目->extra_fields作为$key=>$ extr_field): ?>块,然后额外的字段就消失了。

谁能给我指个正确的方向?

谢谢你:-)

阿斯特丽德

好的。我从朋友那里得到了一些帮助。以下是我们的进展(如果有人想知道的话)。

为了独立显示额外的字段,您需要将它们分开。因此将item.php中的"foreach…"行替换为:

  <!-- 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和sprite的文章评级系统-然后我可以"回收"漂亮的星星图像和已经创建的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标签。我可能会抽出时间改正短信的事。但是现在它工作了。

最诚挚的问候,

阿斯特丽德

最新更新