在这一节我们将介绍一下joomla一个标准模块的文件夹结构。并且写一个最小的能够成功安装的模块。
模块的存放目录
在joomla的安装目录下,有一个modules目录,这个目录中存放了系统所有的模块的实现。如图:
在上面的每一个目录,就是一个模块。
模块的名称
由于joomla非常依赖命名规范,因此,在开始写代码前需要确定一下你的模块的名称。我们的模块的功能是滚动展示图片新闻,因此就将其取名为zmaxslidernews.如果我们的模块成功安装,那么系统就会在modules目录下创建一个mod_zmaxslidernews的文件夹。
文件结构
一个标准的模块最少需要3个文件文件,以及一个文件夹。
- 安装说明文件
- 安装说明文件是一个XML文件,其主要的作用就是向Joomla系统注册这个模块。
- 这个xml文件的名称为 mod_模块的名称.xml
- 因为我们模块的名称为zmaxslidernews,因此,我们需要创建一个mod_zmaxslidernews.xml的文件作为其安装说明文件
- 入口点文件
- 入口点文件是一个php文件,模块的功能就是从这个文件开始执行的。
- 入口点文件的名称为mod_模块的名称.php
- 因为我们模块的名称为zmaxslidernews,因此,我们需要创建一个mod_zmaxslidernews.php的文件作为其入口点文件
- 模型文件
- 用来获得数据的文件
- 文件名称为helper.php
- 这个文件可以没有,但为了方便管理,一般建议加上
- 视图的模板文件夹
- 这是一个文件夹,固定名称为tmpl
- 在这个文件夹下有一个固定文件名的视图文件。default.php
详细的代码示范
mod_zmaxslidernews.xml(安装说明文件)代码如下:
<?xml version="1.0" encoding="utf-8"?> <extension type="module" version="3.0" client="site" method="upgrade"> <name>滚动图片新闻模块</name> <author>ZMAX程序人</author> <creationDate>2022-10-01</creationDate> <copyright>Copyright (C) 2005 - 2022 南宁市程序人软件科技有限责任公司. All rights reserved.</copyright> <license>GNU General Public License version 2 or later; see LICENSE.txt</license> <authorUrl>www.zmax99.com</authorUrl> <version>0.0.1</version> <description>将指定分类的文章用滚动图片新闻的方式来展示</description> <files> <filename module="mod_zmaxslidernews">mod_zmaxslidernews.php</filename> <filename >helper.php</filename> <folder>tmpl</folder> </files> <config> <fields name="params"> <fieldset name="basic" > </fieldset> </fields> </config> </extension>
上面的代码中,需要关注的点有如下几个:
- <extenions>节点的type属性必须是module. client属性按照实际的需要设置。可选择的值为site和administrator,代表这个模块将会安装在前台还是后台。method设置为upgrade,表示不会删除之前同名的模块,而是使用更新的方法来安装。
- <name>属性是模块的标题,主要是给人看的。注意这里并不是模块的名称。
- <filename>节点的module属性必须是mod_模块的名称。我的模块的名称为zmaxslidernews,因此,这里的值是mod_zmaxslidernews。且节点中的文件为模块的入口点文件。
- <files>节点是用来说明你的插件需要包含的文件,如果多个文件,请按照实际情况添加filename节点。在这里我指名需要包含一个helper.php的文件
- <folder>节点是用来说明你的插件需要包含的文件夹,如果多个文件,请按照实际情况添加folder节点。在这里我指名需要包含一个tmpl的文件夹
其他的所有设置都是标准的一些信息,按照实际情况填写即可。特别注意,如果在file和folder节点中指定的文件文件夹在你的安装包中找不到,那么安装时系统会提示安装失败,缺少xxx文件。
mod_zmaxslidernews.php(模块入口点文件)代码如下:
defined('_JEXEC') or die; \JLoader::register('ModZmaxnewsHelper', __DIR__ . '/helper.php'); $items = ModZmaxnewsHelper::getItems($params); if(!$items || empty($items)) { return ; } require JModuleHelper::getLayoutPath('mod_zmaxslidernews', $params->get('layout', 'default'));
关于入口点文件的详情说明,我们在下一节在展开。
helper.php(模型文件)代码如下:
defined('_JEXEC') or die; class ModZmaxslidernewsHelper { static function getItems($params) { //TODO return false; } }
关于helper.php文件的详情说明,我们在下一节在展开。
tmpl/default.php(模板文件)代码如下:
<h1>Hello Joomla module!</h1>
打包,安装测试
至此,我们的第一个模块就开发完成了。最终的文件夹结构截图如下:
将其打包称zip格式,然后在扩展管理中进行安装。
安装成功截图如下:
在内容管理=>前台模块中可以看到我们刚刚安装的新的模块,截图如下:
在网站根目录下的modules目录下可以成功的看到我们的模块目录,截图如下:
其他
模块的v0.0.1版本源码下载:[下载文件:]mod_zmaxslidernewsv0.0.1_2022-10-01_for_j3x.zip
评论 (0)