Archived

Difference between revisions of "Developing a MVC Component/Adding an update server"

From Joomla! Documentation

< Archived:Developing a MVC Component
Line 165: Line 165:
 
       <version>1.5.1</version>
 
       <version>1.5.1</version>
  
       <infourl title="HalloWorld URL">http://yourdomain.com</infourl>
+
       <infourl title="HelloWorld URL">http://yourdomain.com</infourl>
 
       <downloads>
 
       <downloads>
 
         <downloadurl type="full" format="zip">http://yourdomain.com/files/com_helloworld-1.5.1-final.zip</downloadurl>
 
         <downloadurl type="full" format="zip">http://yourdomain.com/files/com_helloworld-1.5.1-final.zip</downloadurl>

Revision as of 17:29, 9 November 2011

This page has been archived. This page contains information for an unsupported Joomla! version or is no longer relevant. It exists only as a historical reference, it will not be improved and its content may be incomplete and/or contain broken links.

This tutorial is for Joomla 1.6 and Joomla 1.7

Articles in this series[edit]


Introduction[edit]

This tutorial is part of the Developing a Model-View-Controller (MVC) Component for Joomla!1.6 tutorial. You are encouraged to read the previous parts of the tutorial before reading this.

Adding a updateserver definition[edit]

To add a updateserver functionality adjust the helloworld.xml to look like this.

helloworld.xml

<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="1.6.0" method="upgrade">

	<name>COM_HELLOWORLD</name>
	<!-- The following elements are optional and free of formatting constraints -->
	<creationDate>November 2009</creationDate>
	<author>John Doe</author>
	<authorEmail>john.doe@example.org</authorEmail>
	<authorUrl>http://www.example.org</authorUrl>
	<copyright>Copyright Info</copyright>
	<license>License Info</license>
	<!--  The version string is recorded in the components table -->
	<version>0.0.15</version>
	<!-- The description is optional and defaults to the name -->
	<description>COM_HELLOWORLD_DESCRIPTION</description>

	<!-- Runs on install/uninstall/update; New in 1.6 -->
	<scriptfile>script.php</scriptfile>

	<install> <!-- Runs on install -->
		<sql>
			<file driver="mysql" charset="utf8">sql/install.mysql.utf8.sql</file>
		</sql>
	</install>
	<uninstall> <!-- Runs on uninstall -->
		<sql>
			<file driver="mysql" charset="utf8">sql/uninstall.mysql.utf8.sql</file>
		</sql>
	</uninstall>
	<update> <!-- Runs on update; New in 1.6 -->
		<schemas>
			<schemapath type="mysql">sql/updates/mysql</schemapath>
		</schemas>
	</update>

	<!-- Site Main File Copy Section -->
	<!-- Note the folder attribute: This attribute describes the folder
		to copy FROM in the package to install therefore files copied
		in this section are copied from /site/ in the package -->
	<files folder="site">
		<filename>index.html</filename>
		<filename>helloworld.php</filename>
		<filename>controller.php</filename>
		<folder>views</folder>
		<folder>models</folder>
		<folder>language</folder>
	</files>

	<media destination="com_helloworld" folder="media">
		<filename>index.html</filename>
		<folder>images</folder>
	</media>

	<administration>
		<!-- Administration Menu Section -->
		<menu img="../media/com_helloworld/images/tux-16x16.png">COM_HELLOWORLD_MENU</menu>
		<!-- Administration Main File Copy Section -->
		<!-- Note the folder attribute: This attribute describes the folder
			to copy FROM in the package to install therefore files copied
			in this section are copied from /admin/ in the package -->
		<files folder="admin">
			<!-- Admin Main File Copy Section -->
			<filename>index.html</filename>
			<filename>config.xml</filename>
			<filename>access.xml</filename>
			<filename>helloworld.php</filename>
			<filename>controller.php</filename>
			<!-- SQL files section -->
			<folder>sql</folder>
			<!-- tables files section -->
			<folder>tables</folder>
			<!-- models files section -->
			<folder>models</folder>
			<!-- views files section -->
			<folder>views</folder>
			<!-- controllers files section -->
			<folder>controllers</folder>
			<!-- helpers files section -->
			<folder>helpers</folder>
		</files>

		<languages folder="admin">
			<language tag="en-GB">language/en-GB/en-GB.com_helloworld.ini</language>
			<language tag="en-GB">language/en-GB/en-GB.com_helloworld.sys.ini</language>
		</languages>
	</administration>
	
	<!-- UPDATESERVER DEFINITION -->
	<updateservers>
		<!-- Note: No spaces or linebreaks allowed between the server tags -->
		<server type="extension" priority="1" name="HelloWorld Update Site">http://yourdomain.com/update/helloworld-update.xml</server>
	</updateservers>

</extension>

You also need to put a XML-file on your server which contains all update-informations.

helloworld-update.xml

<?xml version="1.0" encoding="utf-8"?>
<updates>
   <update>
      <name>HelloWorld</name>
      <description>HelloWorld Component</description>
      <element>com_helloworld</element>
      <type>component</type>
      <version>1.5.0</version>

      <infourl title="HalloWorld URL">http://yourdomain.com</infourl>
      <downloads>
         <downloadurl type="full" format="zip">http://yourdomain.com/files/com_helloworld-1.5.0-final.zip</downloadurl>
      </downloads>
      <tags>
         <tag>some-tag</tag>
      </tags>

      <maintainer>HelloWorld Inc.</maintainer>
      <maintainerurl>http://yourdomain.com</maintainerurl>
      <section>some-section</section>
      <targetplatform name="joomla" version="1.6" />
   </update>
   <update>
      <name>HelloWorld</name>
      <description>HelloWorld Component</description>
      <element>com_helloworld</element>
      <type>component</type>
      <version>1.5.0</version>

      <infourl title="HalloWorld URL">http://yourdomain.com</infourl>
      <downloads>
         <downloadurl type="full" format="zip">http://yourdomain.com/files/com_helloworld-1.5.0-final.zip</downloadurl>
      </downloads>
      <tags>
         <tag>some-tag</tag>
      </tags>

      <maintainer>HelloWorld Inc.</maintainer>
      <maintainerurl>http://yourdomain.com</maintainerurl>
      <section>some-section</section>
      <targetplatform name="joomla" version="1.7" />
   </update>

    <update>
      <name>HelloWorld</name>
      <description>HelloWorld Component</description>
      <element>com_helloworld</element>
      <type>component</type>
      <version>1.5.1</version>

      <infourl title="HelloWorld URL">http://yourdomain.com</infourl>
      <downloads>
         <downloadurl type="full" format="zip">http://yourdomain.com/files/com_helloworld-1.5.1-final.zip</downloadurl>
      </downloads>
      <tags>
         <tag>some-tag</tag>
      </tags>

      <maintainer>HelloWorld Inc.</maintainer>
      <maintainerurl>http://yourdomain.com</maintainerurl>
      <section>some-section</section>
      <targetplatform name="joomla" version="1.6" />
   </update>
    <update>
      <name>HelloWorld</name>
      <description>HelloWorld Component</description>
      <element>com_helloworld</element>
      <type>component</type>
      <version>1.5.1</version>

      <infourl title="HelloWorld URL">http://yourdomain.com</infourl>
      <downloads>
         <downloadurl type="full" format="zip">http://yourdomain.com/files/com_helloworld-1.5.1-final.zip</downloadurl>
      </downloads>
      <tags>
         <tag>some-tag</tag>
      </tags>

      <maintainer>HelloWorld Inc.</maintainer>
      <maintainerurl>http://yourdomain.com</maintainerurl>
      <section>some-section</section>
      <targetplatform name="joomla" version="1.7" />
   </update>

</updates>

You need to add a new update-node every time you publish a new release, as well as for each Joomla! version. (you will need a distinct update node for each targetplatform)

Zips[edit]

Download the zip file for this Part: [1] (NOTE: The package has not been updated with the above Joomla! 1.7 compatibility)

See Also[edit]

Contributors[edit]