2016-02-12 42 views
1

我有,我只是想展现给登录的用户我的K2项目的一系列额外的字段。为了增加更多的复杂性,我需要向一个用户组显示一个字段,向不同的用户组显示不同的字段。怎么样,我可以做到这一点?显示的Joomla K2额外的字段只有特定用户或组

我知道我可以做的模块访问级别检查,但由于这些都是连接到K2项目额外的字段,我摸索一种方式来做到这一点。

回答

0

我能做到这一点使用下面的代码(以缩写形式):

<?php $user = JFactory::getUser(); ?> 
<?php if(!$user->guest): ?> 
<!-- Prices --> 
<div class="moduletable"> 
<h3 class="specs">Pricing</h3> 
<?php 
    $none = true; 
    foreach ($this->item->extra_fields as $key=>$extraField) { 
    if($extraField->value && $extraField->name=='Price A' && in_array(25,$user->groups)) { 
     echo $extraField->value; 
     $none = false; 
     break; 
    } 
    elseif($extraField->value && $extraField->name=='Price B' && in_array(26,$user->groups)) { 
     echo $extraField->value; 
     $none = false; 
     break; 
    } 
    } 
    if ($none) echo '<br/><p>Coming Soon!</p>'; 
?> 
</div> 
<?php endif; ?> 

基本上,我检查,看看用户是否登录,然后运行通过额外的字段,看是否字段名称为“价格A”,并且用户在用户组“价格A”(ID = 25)中。如果它匹配,我输出价格并继续。如果不是,则对“价格B”执行相同的检查。如果没有分配额外的价格字段或者用户没有价格水平,我会给出鼓励的消息! ;)

注意:必须确保你的主题调用其中的一项额外的领域有代码,以防止这些额外的字段从显示的内容,或者你可能显示的内容向公众中所有的K2模板。这可以包括您的com_k2/templates文件夹中的任何PHP文件,其中您的K2设置指定要显示的额外字段,或手动强制它们显示在模板中的位置。

相关问题