1
我有,我只是想展现给登录的用户我的K2项目的一系列额外的字段。为了增加更多的复杂性,我需要向一个用户组显示一个字段,向不同的用户组显示不同的字段。怎么样,我可以做到这一点?显示的Joomla K2额外的字段只有特定用户或组
我知道我可以做的模块访问级别检查,但由于这些都是连接到K2项目额外的字段,我摸索一种方式来做到这一点。
我有,我只是想展现给登录的用户我的K2项目的一系列额外的字段。为了增加更多的复杂性,我需要向一个用户组显示一个字段,向不同的用户组显示不同的字段。怎么样,我可以做到这一点?显示的Joomla K2额外的字段只有特定用户或组
我知道我可以做的模块访问级别检查,但由于这些都是连接到K2项目额外的字段,我摸索一种方式来做到这一点。
我能做到这一点使用下面的代码(以缩写形式):
<?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设置指定要显示的额外字段,或手动强制它们显示在模板中的位置。