Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅向某些用户或组显示Joomla K2额外字段_Joomla_Joomla3.0_Joomla K2_Usergroups_Access Levels - Fatal编程技术网

仅向某些用户或组显示Joomla K2额外字段

仅向某些用户或组显示Joomla K2额外字段,joomla,joomla3.0,joomla-k2,usergroups,access-levels,Joomla,Joomla3.0,Joomla K2,Usergroups,Access Levels,我的K2项目有一系列额外字段,我只想向登录用户显示这些字段。为了增加复杂性,我需要向一个用户组显示一个字段,向另一个用户组显示另一个字段。我如何才能做到这一点 我知道我可以对模块进行访问级别检查,但由于这些是附加到K2项的额外字段,因此我正在摸索一种方法来完成此操作。我可以使用以下代码(缩写形式)完成此操作: 定价 基本上,我检查用户是否登录,然后运行额外的字段,查看字段名是否为“Price A”,用户是否在用户组“Price A”(ID=25)中。如果匹配,我输出价格并继续。如果没有,它会

我的K2项目有一系列额外字段,我只想向登录用户显示这些字段。为了增加复杂性,我需要向一个用户组显示一个字段,向另一个用户组显示另一个字段。我如何才能做到这一点


我知道我可以对模块进行访问级别检查,但由于这些是附加到K2项的额外字段,因此我正在摸索一种方法来完成此操作。

我可以使用以下代码(缩写形式)完成此操作:


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


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

我可以使用以下代码(缩写形式)完成此操作:


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

注意:您必须确保主题中所有调用项目额外字段的K2模板都有代码,以防止这些额外字段显示内容,否则您可能会向公众显示内容。这可以包括
com_k2/templates
文件夹中的任何PHP文件,其中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; ?>