教程栏目

joomla中文网出品的官方教程

最近在开发组件的时候遇到一个很奇怪的问题,在安装自己写的组件的时候,前台怎么执行都不正确,更让人吃惊的是,前台居然拷贝的是后台的文件,这到底是什么原因造成的?本节将就此问题进行一下分析和讨论

经过分析,最后发现是组件的XML文件的位置的问题。

一个正常的XML文件应该是这样:

<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="1.0.0" method="upgrade">
        <name>CAPTCHA</name>
        <!-- The following elements are optional and free of formatting constraints -->
        <creationDate>2014-09-12</creationDate>
        <author>min.zhang</author>
        <authorUrl>http://www.zmax99.com</authorUrl>
        <copyright>All right (c)zmax</copyright>
        <license>License</license>
        <!--  The version string is recorded in the components table -->
        <version>1.0.0</version>
        <!-- The description is optional and defaults to the name -->
        <description>
			ZMAX Catpchar Server
		</description>
		
		<install> <!--  run on install-->
			<sql>
				<file driver="mysql" charset="utf8">sql/install.mysql.utf8.sql</file>
			</sql>
		</install>
		
		<uninstall>
			<sql>
				<file driver="mysql" charset="utf8">sql/uninstall.mysql.utf8.sql</file>
			</sql>
		</uninstall>
		
		<update>
			<schemas>
				<schemapath type="mysql">sql/updates/mysql</schemapath>
			</schemas>
		</update>
		
		<!-- Site Main File Copy Section -->
		<files folder="site">
			<folder>language</folder>
			<folder>models</folder>
			<file>captcha.php</file>
			<file>controller.php</file>
			<file>index.html</file>
		</files>
 
        <administration>
				<!-- Administration Menu Section-->
		        <menu>COM_CAPTCHA_MENU</menu>
				
				<!--  Administration Main File Copy Section -->
				<files folder="admin">
					<folder>controllers</folder>
					<folder>helpers</folder>
					<folder>language</folder>
					<folder>lib</folder>
					<folder>models</folder>
					<folder>sql</folder>
					<folder>tables</folder>
					<folder>views</folder>
					
					<filename>captcha.php</filename>
					<filename>controller.php</filename>
					<filename>version.php</filename>
					<filename>index.html</filename>
				</files>
				

        </administration>
		<updateservers>
			<server type="extension" priority="1" name="ZMAX Captcha">
				http://www.zmax99.com/autoupdate/captchar_server_auto_update.xml
			</server>
		</updateservers>
</extension>

 需要注意前台的文件和后台的文件标示。前台文件有一个folder=site的属性。后台文件有一个folder=admin的属性。

这个XML需要有如下的文件结构(即组件的文件的组织形式)才能正确安装。

(图书文件和文件夹的图标是SVN产生的和JOOMLA代码无关)

另外需要注意的是 captcha.xml只能在admin和site的最外面。不能将captcha.xml文件放到admin目录。

系统在安装的时候,会自动将captcha.xml文件拷贝到组件的后台目录中。

如果在制作组件安装包的时候,请注意不要将组件的自述文件(*.xml)文件放到admin目录下。否则你的更目录下的*.xml将会不起作用。系统会使用admin目录下的xml文件来代替。这就会造成你在xml文件中指定的文件夹路径出现错误。

作者: 樱木花道

Joomla程序员,从J1.5到J4.x始终都在做Joomla相关开发定制工作,有超过10年行业经验,国内Joomla扩展开发商ZMAX团队的核心成员

作者网站:ZMAX程序人

评论 (0)

  • 最新在前
  • 最佳在前

第1章 Joomla入门教程

第3章 C计划

第5章 E计划

第6章 H计划

第7章 G计划

第9章 运行环境

第11章 主从与集群

第12章 模块开发

第13章 插件开发

第14章 j2.x组件开发教程

第15章 页面定制教程

第16章 页面构造器