首页 > 解决方案 > 如何根据用户访问组将smarty代码tpl文件插入tpl文件

问题描述

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

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

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

模块位置运行良好,但存在问题。我要使用的代码是 .tpl 文件代码。所以自定义代码模块不适用于它。

与 smarty 代码相比,我创建了一个 .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} 
}

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

我希望有人可以帮助解决这个问题。提前致谢。

问候

标签: phpjoomlasmarty

解决方案


这是解决方案,

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

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

问候


推荐阅读