重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
(一)开发一个基本的模块
创新互联建站主要从事网页设计、PC网站建设(电脑版网站建设)、wap网站建设(手机版网站建设)、自适应网站建设、程序开发、网站优化、微网站、微信小程序开发等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了丰富的网站设计制作、成都网站制作、网站设计、网络营销经验,集策划、开发、设计、营销、管理等多方位专业化运作于一体。
说明:
joomla中的模块是轻量的可伸缩的扩展。它们通常用于最少的页面输出,有点复杂并通穿插在不同的组件中。
文件结构:
在标准的joomla模块开发中有如下几个基本的文件,比如你开发的是一个helloworld的模块
mod_helloworld.php 这个主要是模块的入口文件。它执行的是任何需要的初始化程序及调用帮助类程序收集数据,还有调用模块中输出需要的模板
mod_helloworld.xml 这是模块信息定义文件。它定义了一些需要安装的文件及模块需要的参数定义。
helper.php 这个文件里面包涵了给模块检索信息并展示的帮助类。
tmpl/default.php 模块的模板。就是如何展示模块收集的数据
创建 mod_helloworld.php
mod_helloworld.php 文件有三个任务
1.引入 helper.php 文件
2.调用helper.php 帮助类来检索需要的数据
3.引入模板来展示检索的数据
文件内容如下:
创建helper.php
创建tmpl/default.php
创建mod_helloworld.xml
Hello, World!
John Doe
1.0.0
A simple Hello, World! module.
mod_helloworld.xml
mod_helloworld.php
index.html
helper.php
tmpl/default.php
tmpl/index.html
(二)joomla基本的模块中引用数据库
在这部分中需要了解JDatabase的使用,可参考:https://docs.joomla.org/Accessing_the_database_using_JDatabase
在安装时创建表,即在文件sql/MySQL/install.mysql.utf8.sql中创建表
CREATE TABLE IF NOT EXISTS `#__helloworld` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`hello` text NOT NULL,
`lang` varchar(25) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
INSERT INTO `#__helloworld` (`hello`, `lang`) VALUES ('Hello World', 'en-GB');
INSERT INTO `#__helloworld` (`hello`, `lang`) VALUES ('Hola Mundo', 'es-ES');
INSERT INTO `#__helloworld` (`hello`, `lang`) VALUES ('Bonjour tout le monde', 'fr-FR');
然后需要补充卸载时需要执行的sql,即文件sql/mysql/uninstall.mysql.utf8.sql中写入卸载时需要执行的sql
DROP TABLE IF EXISTS `#__helloworld`
当然后后期开发中有对数据库更新更新可以在sql/mysql/updates中添加更新sql文件,文件命名方式为版本号.sql 如:2.0.0.sql
修改helper.php 文件中的help类
内容如下:
getQuery(true)
->select($db->quoteName('hello'))
->from($db->quoteName('#__helloworld'))
->where('lang = ' . $db->Quote('en-GB'));
$db->setQuery($query);
$result = $db->loadResult();
return $result;
}
}
最后修改mod_helloworld.xml中把需要的文件及文件的作用定义好
Hello, World!
John Doe
4.0.0
A simple Hello, World! module.
mod_helloworld.xml
mod_helloworld.php
index.html
helper.php
tmpl/default.php
tmpl/index.html
sql
sql/mysql/install.mysql.utf8.sql
sql/mysql/uninstall.mysql.utf8.sql
sql/mysql/updates
(三)给joomla模块中添加表单字段
其实就是给模块的显示添加参数控制
首先在mod_helloworld.xml文件中的
上面这个是SQL表单字段的写法,可参数https://docs.joomla.org/Special:MyLanguage/SQL_form_field_type
然后修改mod_helloworld.php中的内容如下
get('lang', '1');
$hello = modHelloWorldHelper::getHello( $language );
require JModuleHelper::getLayoutPath('mod_helloworld');
最后修改helper.php文件,内容如下
getQuery(true)
->select($db->quoteName('hello'))
->from($db->quoteName('#__helloworld'))
->where('id = ' . $db->Quote($params));
$db->setQuery($query);
$result = $db->loadResult();
return $result;
}
}
最后mod_helloworld.xml的内容如下:
Hello, World!
John Doe
4.0.0
A simple Hello, World! module.
mod_helloworld.xml
mod_helloworld.php
index.html
helper.php
tmpl/default.php
tmpl/index.html
sql
sql/mysql/install.mysql.utf8.sql
sql/mysql/uninstall.mysql.utf8.sql
sql/mysql/updates