如何根据用户访问组将智能代码tpl文件插入到tpl文件中

时间:2019-02-07 12:06:36

标签: php joomla smarty

对于Joomla 3当前,我正在尝试在特定用户组的tpl文件中显示一个tpl文件。

首先,我尝试使用以下代码为自定义代码模块创建模块位置

{php}
echo JHtml::_('content.prepare', '{loadposition companydetail}'); 
{/php}

模块正子工作良好,但是存在问题。我要使用的代码是.tpl文件代码。因此,自定义代码模块无法使用。

与智能代码相比,我已经创建了一个.tpl文件,并将其调用到我创建的访问组的主.tpl文件中。

{php}
$user_  = JFactory::getUser();
$db     = JFactory::getDBO();
foreach($user_->groups as $group){
$query  = 'SELECT title FROM #__usergroups';
$query .= ' WHERE id = ' . $group;
$db->setQuery( $query );
if ($db->loadResult() == "Business")
{
echo '{include file='companydetail.tpl'}'; 
}
}
{/php}

在尝试包含tpl文件之前,它一直运行良好。因为代码不明智。 基本上,我需要此代码部分的精明版本。

尝试过但不起作用

{ 
$user_ = JFactory::getUser(); 
$db = JFactory::getDBO(); 
{foreach $user_->groups as $group} 
$query = 'SELECT title FROM #__usergroups'; 
$query .= ' WHERE id = ' . $group; 
$db->setQuery( $query ); 
{if $db->loadResult() == "Business"} 
{include file='companydetail.tpl'} 
{/if} 
{/foreach} 
}

在某些论坛上,人们提供为此创建一个类,但这不是我想要的。任何人都可以使用浏览器编辑器显示该部分。

我希望有人能对此提供帮助。 预先感谢。

致谢

1 个答案:

答案 0 :(得分:0)

这是解决方案,

{if in_array('10', $joomlauser->groups)}
{/if}

10是组的ID。使用此代码,只有10人可以看到页面的该部分。 这不是我的解决方案。我从另一个论坛获得了一些帮助。 希望这对其他人有帮助。

致谢