有谁知道如何从模块的helper.php中获取模块的'access'参数(例如public,registered..etc)的值?我只能看到$ params,它们都是模块类型的特定参数,而不是通用参数。
我需要检索访问权限并将其提供给插件。
谢谢:)
答案 0 :(得分:0)
您需要为此运行SQL查询。
对于1个特定模块:
$db =& JFactory::getDBO();
$query = 'SELECT access FROM #__modules WHERE element="mod_yourmodule"';
$db->setQuery($query);
$result = $db->loadResult();
print_r($result);
不要忘记将mod_yourmodule
更改为您想要数据的模块。
适用于所有模块:
$db =& JFactory::getDBO();
$query = 'SELECT access FROM #__modules';
$db->setQuery($query);
$result = $db->loadResult();
print_r($result);
希望这有帮助
答案 1 :(得分:0)
您是指在页面上渲染模块还是想知道何时未渲染模块? 如果用户有权访问,JModuleHelper将只呈现模块。
但是如果你想找出除了渲染之外的其他原因你需要查询jos_modules。 实际上无法通过查询jos_extensions表找到模块访问级别,因为它没有引用模块的特定实例(例如,主菜单与其他菜单相比,这两个菜单都是mod_menu的实例,并且可能具有不同的访问级别)。 (当然,请使用您自己的前缀。)
P.S。我认为将它作为一个拉取请求放入它可能是值得的,所以你可以从帮助器中获取它。对我来说似乎有点武断,它没有在数组中返回。