以下代码片段将帮助您获取主题.html中当前查看模块的目录名。您必须在相应文件夹(/themes/yourtheme/theme.html)的主题.html文件中添加以下片段。templates_c文件夹仅仅是编译了主题文件夹中的内容。
<{php}>
$mod = $GLOBALS['xoopsModule'];
$dirname = $mod->getVar('dirname') ?: 'system');
$GLOBALS['xoopsTpl']->assign( 'xoops_cmod', $dirname );
<{/php}>
添加此片段后(无需更改),您可以通过以下smarty变量访问当前模块目录。
<{$xoops_cmod}>
新闻模块的dirname通常是"news"。因此,如果您正在浏览新闻模块,变量$xoops_cmod将包含"news"。如果您正在浏览您的个人资料,它将包含"system"。
关于XOOPS 2.2.3的注意事项(由Mithrandir添加): 上述代码同样适用于2.2.3,但不需要,因为<{$xoops_dirname}>在主题中全局可用,并持有已选择模块的目录名称 - 默认为"系统"。 利用这一点,您可以在每个模块上显示不同的图片。只需尝试以下片段
<img src="<"{$xoops_imageurl}><{$xoops_cmod}>.jpg" alt="" title="" />
$xoops_imageurl 是您主题文件夹的路径。因此,您必须在那里创建一些图像,一个用于您的每个已安装的模块,以及一个用于系统的附加图像。例如,- system.jpg - news.jpg - newbb.jpg 等等。您还可以使用此变量作为包含样式表或模板的开关。
<{if $xoops_cmod == "news"}>
<{else}>
<{/if}>
此代码在许多情况下都有用。但根据您的需要使用此片段的权利归您所有。
感谢 Chapi!
一个有用的附加组件...感谢您的贡献。