在前面我们已经了解了Joomla自带的模块风格,在本节就开始介绍如何创建自己的模块风格。
了解如何创建自己的模块风格
2.1,创建modules.php文件
要定义自己的模块风格,首先需要在自己的模板的根目录下创建一个html文件夹,然后在这个文件夹中创建一个modules.php。完整的路径如下:网站的根目录/templates/你的模板/html/modules.php
2.2 定义模块风格类
我们需要在modules.php文件中定义一个方法,这个方法的名称为 modChrome_STYLE。这里的STYLE就是你需要定义的模块类型的风格名称。这个方法有3个参数,$module ,&$params,&$attribs. 一段典型的代码如下:
- function modChrome_zmaxround($module, &$params, &$attribs)
- { //这里写具体的代码
- }
在这个方法中,系统会自动设置好$module,$params,$attribs这些变量,基本上涵盖了一个模块的所有信息。(这些信息都存储在#__modules这个表中)。在这些信息中,通常我们会用的几个属性如下:
这个函数的实现和正常的PHP代码没有区别。下面一段代码演示了如何来判断是否输出模块的标题。
- <?php
- if ($module->showtitle)
- {
- echo '<h2>' .$module->title .'</h2>';
- }
- ?>
我们可以通过$params这个变量来获得模块的设置参数。 模块的参数就是管理员在后台设置的参数。通过调用get方法来获得具体的参数的这。一段典型的代码如下:
- <div class="<?php echo $params->get( 'moduleclass_sfx' ); ?>">
- <!-- div contents -->
- </div>
访问自定义的模块风格属性
在定义模块位置的时候,我们也可以自定义一些附加的属性。如: <jdoc:include type="modules" name="user1" style="custom" background="green" /> 在定义这个位置的时候,我们也指定了一个background属性。同样的,这些属性也会通过$attribs这个变量传递给我们,以便我们调用。
一段典型的代码如下:
- <?php
- if (isset( $attribs['background'] ))
- {
- $background = $attribs['background'];
- } else {
- $background = 'blue';
- }
- ?>
在本版中,我们自定义了一种模块风格zmaxround,该风格可以给模块增加一个圆角。
4.1 代码片段如下:
- function modChrome_zmaxround($module, &$params, &$attribs)
- { ?>
- <div class=" zmaxround module<?php echo htmlspecialchars($params->get('moduleclass_sfx'), ENT_COMPAT, 'UTF-8'); ?>">
- <div class="module-wrap">
- <div>
- <div class="zmax-module-container">
- <?php if ((bool) $module->showtitle) : ?>
- <div class="module-title">
- <h3><?php echo $module->title; ?></h3>
- </div>
- <?php endif; ?>
- <div class="module-content">
- <?php echo $module->content; ?>
- </div>
- </div>
- </div>
- </div>
- </div>
- <?php
4.2 执行的效果
在模块高级参数-模块样式下面可以看到我们自定义的模块风格。如图:
将该风格应用后,在前台显示的效果如下:
4.3 v0.0.13版本的代码
关于v0.0.13版本的代码,可以在此下载 tpl_plancv0.0.13_2019-01-15_for_j3x.zip