教程栏目

joomla中文网出品的官方教程

教程

  为了最大程度的提供定制化,我们生成的组件提供一个页面定制系统。默认情况下,一个功能系统会提供5个页面。前台3个页面(数据列表页面,数据详情页面,提交数据表单页面),后台两个页面(数据列表页面,数据管详情表单页面)。通过对这个5个页面进行定制,基本上能够满足大多数的使用情况。

 模块生成器能够帮我们通过简单的设置,就可以生成一个可正常安装使用模块框架,开发者基于这个模块来写业务逻辑,而不用过多的理会joomla的一些底层的封装细节。

1,目标:

我们的目标就是使用构造器生成一个可供安装的模块,并且熟悉如何进行二次开发。

2,新建模块

1,在我的模块中,点击新建,在弹窗的对话框中输入下面的信息(因为只是生成一段模板代码,所以没有什么配置参数),如图:

模块构造器.png

2,保存后,点击下载按钮,即可获得生成的模块安装包了。截图如下:

模块下载.png

3,模块安装到我们的Joomla网站上

在上一步,我们已经得到了一个模块的安装包(zip文件),现在需要将其安装到Joomla网站上,操作的方法和安装扩展的方法一样,下面以Joomla4的安装界面来做简单的操作说明。

登录后台后=>点击系统设置=>找到扩展安装=>在安装界面上传刚刚下载的安装包。如图:

j4_安装扩展界面.png

将安装包上传并且安装,成功界面截图如下:

模块安装成功.png

4,使用模块

1,在模块管理中即可看到我们新安装的模块。为了方便调试,我们新建一个模块,将类型选择我们刚刚安装的模块,将模块发布到前台。如图:

配置模块.png

2,在前台查看效果如下:

模块前台效果.png

到此,说明我们的模块安装成功了。

5,接着开发

下一步,我们要做的就是接着开发了。模块的代码路径为:网站根目录\modules\mod_zimgnews(这里是创建模块是输入的名称)

模块代码.png

代码文件说明:

mod_zimgnews.xml 为模块的配置文件,前面截图中的参数配置就是在这个文件中。你可以修改或者新增自己的配置

mod_zimgnews.php 为模块入口点文件,无需修改

helper.php 为模块的模型文件,你的主要业务逻辑应该写在这里。在这个文件中写好了注释,照着修改即可。

 

abstract class ModzimgnewsHelper
{
	/**
	 * 获得模块的展示数据
	 *
	 * @param   \Joomla\Registry\Registry  &$params  object holding the models parameters
	 *
	 * @return mixed
	 */
	public static function getData(&$params)
	{
		
		$limit = $params->get("limit","5");//得到后台设置的p1字段中的值
		$data = self::getItems($limit);
		
		//在这里写逻辑代码
		
		return $data;
	}
	
	//数据库查询示范
	//查询最新的5篇文章
	protected static function getItems($limit)
	{
		$db = \JFactory::getDBO();
		$query = $db->getQuery(true);
		$query->select("id,title")->from("#__content")->where("state=1");
		$query->order("id DESC");
		$query->setlimit($limit);
		$db->setQuery($query);
		$items = $db->loadObjectList();
		return $items;
	}
}

 tmpl/default.php 为布局文件,也就是最终的html代码。到了,及时你不用知道joomla是什么也可以按照自己的意愿来创建一个模块了。

<?php
defined('_JEXEC') or die;

$doc = \JFactory::getDocument();
$basePath = JUri::root()."modules/mod_zimgnews/tmpl/asset/";


$cssPath = $basePath."mod.css";
$doc->addStyleSheet($cssPath);//加载自定义的CSS文件

$jsPath = $basePath."mod.js";
$doc->addScript($jsPath);//加载自定义的jS文件

//在这里写模块的展示代码的HTML代码
?>
<div class="zmod-box">
	<h1>示范模块</h1>
	<ul>
	<?php foreach($data as $item): //模块入口点里面的变量可以直接使用?>
		<li>
		<?php echo $item->title; ?>
		</li>
	<?php endforeach;?>
	</ul>
</div>

  在做joomla扩展开发的过程中经常需要写一些通用的供joomla安装识别的文件,实际上这些和具体的业务逻辑关系并不大,只是joomla的系统需要。因此,我们打算开发一套代码生成功能,系统能够自动的为我们生产模板代码,我们只需要在对应的地方写上业务逻辑即可,而不用关心joomla本身。

 自2020年以来团队内部一直使用这个生成器来生产基础组件模板,插件模板,模块模板,大大的提高了开发效率。特别对于新接触joomla开发的朋友非常友好。

子类别

第 2 页,总共 69 页