步骤 11 更新服务器
在此步骤中,我们为 mod_hello 提供更新服务器。您应该先阅读有关更新服务器的信息。
此步骤没有相关的 github 代码,因为它超出了您安装的扩展代码范围。
要本地实现测试更新服务器,您必须选择一个位于您的 Web 服务器所提供的一组文件夹中的文件夹。
例如,如果您使用 WAMP 或 XAMPP 在自己的机器上设置了 Web 服务器,那么您只需在 Joomla 实例下创建一个名为“updateserver”的文件夹。
在本教程步骤中,我们将假设您的 Joomla 实例称为“joom”;您需要将其更改为您使用的任何名称。
更新您的清单文件
要将 mod_hello 与更新服务器相关联,您需要将以下行添加到清单文件中
<updateservers>
<!-- Change the URL below to match that of your own update development environment -->
<server type="extension" name="Hello Module Updates">http://localhost/joom/updateserver/updates.xml</server>
</updateservers>
因此,您的更新后的清单文件为
<?xml version="1.0" encoding="UTF-8"?>
<extension type="module" client="site" method="upgrade">
<name>MOD_HELLO_NAME</name>
<!-- highlight-next=line -->
<version>1.0.11</version>
<author>me</author>
<creationDate>today</creationDate>
<description>MOD_HELLO_DESCRIPTION</description>
<namespace path="src">My\Module\Hello</namespace>
<files>
<folder module="mod_hello">services</folder>
<folder>src</folder>
<folder>tmpl</folder>
<folder>language</folder>
</files>
<scriptfile>script.php</scriptfile>
<media destination="mod_hello" folder="media">
<filename>joomla.asset.json</filename>
<folder>js</folder>
</media>
<config>
<fields name="params">
<fieldset name="basic">
<field
name="header"
type="list"
label="MOD_HELLO_HEADER_LEVEL"
>
<option value="h3">MOD_HELLO_HEADER_LEVEL_3</option>
<option value="h4">MOD_HELLO_HEADER_LEVEL_4</option>
<option value="h5">MOD_HELLO_HEADER_LEVEL_5</option>
<option value="h6">MOD_HELLO_HEADER_LEVEL_6</option>
</field>
</fieldset>
</fields>
</config>
<updateservers>
<!-- Change the URL below to match that of your own update development environment -->
<server type="extension" name="Hello Module Updates">http://localhost/joom/updateserver/updates.xml</server>
</updateservers>
</extension>
现在,继续安装此版本的 mod_hello。
更新服务器文件
首先,创建一个新的 mod_hello 版本,只需更改清单文件中的版本号并压缩文件夹即可。版本号需要大于 1.0.11;例如,您可以使用 1.1.0。
将压缩的新版本放入 joom/updateserver 文件夹中,例如将其命名为 mod_hello-v1-1-0.zip。
现在,您需要创建文件 updates.xml(与清单文件中的<server>
元素匹配)
<updates>
<update>
<name>Hello Module</name>
<description>Joomla Module Tutorial</description>
<element>mod_hello</element>
<type>module</type>
<version>1.1.0</version>
<client>site</client>
<downloads>
<downloadurl type="full" format="zip">http://localhost/joom/updateserver/mod_hello-v1-1-0.zip</downloadurl>
</downloads>
<infourl>http://localhost/joom/updateserver/mod_hello110.html</infourl>
<targetplatform name="joomla" version="((4\.4)|(5\.(0|1|2|3|4|5|6|7|8|9)))" />
</update>
</updates>
这告诉 Joomla 版本 1.1.0 在该下载链接处可用,并且将在 Joomla 4.4 或任何 Joomla 5.x 平台上运行。
上面的 xml 包含一个链接<infourl>
,因此您应该创建一个文件 joom/updateserver/mod_hello110.html,其中包含描述此版本的 html 内容。
测试更新服务器
在管理员系统仪表板中,转到更新 / 更新站点。您应该看到一个“Hello 模块更新”条目,其中包含一个指向 updates.xml 文件的链接,您可以点击该链接。
在管理员系统仪表板中,转到更新 / 扩展,然后点击检查更新按钮。您应该看到一个“Hello 模块”条目,其中包含当前安装的版本和可用版本。它还应该包含指向您的<infourl>
html 文件的链接,您可以点击该链接。
您可以选择“Hello 模块”,然后点击更新以安装该版本。
在管理员系统仪表板中,转到管理 / 扩展,并确认 mod_hello 已更新到最新版本。
您可以使用多个版本和多个<update>
标签进行进一步试验;Joomla 永远只会在扩展更新列表中提供一个条目,该条目与最高版本匹配版本限制(例如<targetplatform>
、<php_minimum>
)。
您还可以尝试使用更新服务器 xml 的其他标签。