php - 如何根据用户访问组将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}
}
在一些论坛上,人们提出为此创建一个类,但这不是我想要的。任何人都可以使用浏览器编辑器显示该部分。
我希望有人可以帮助解决这个问题。提前致谢。
问候
解决方案
这是解决方案,
{if in_array('10', $joomlauser->groups)}
{/if}
10 是组的 ID。使用此代码,只有 10 人可以看到页面的该部分。这不是我的解决方案。我从另一个论坛得到了一些帮助。希望这对其他人有所帮助。
问候
推荐阅读
- linux - 使用python将文本文件中的文件列表复制到文件夹
- gitlab - kiwi tcms - Gitlab bug tracker Integration
- java - 在单个 json POST 上保存父母和孩子
- angular - How to set HTTP Params in Angular without the key?
- jenkins - jenkins中用于多个邮件ID的邮件配置
- php - 显示帖子数
- java - How to write two return statements?
- android - Android Studio 上的错误:程序类型已存在:android.support.v4.content.AsyncTaskLoader
- java - Print not found only once in a do while if loop?
- javascript - Pass Multiple Arguments in npm command