Archived

Developing a MVC Component/Adding an update server

From Joomla! Documentation

< Archived:Developing a MVC Component
Revision as of 03:13, 27 September 2012 by HermanPeeren (talk | contribs) ({{version/tutor|2.5}})
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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.


Introduction[edit]

This tutorial is part of the Developing a Model-View-Controller (MVC) Component for Joomla!2.5 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="2.5.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 2.5 -->
	<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 2.5 -->
		<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="2.5" />
   </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="2.5" />
   </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="2.5" />
   </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="2.5" />
   </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="2.5" />
   </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="2.5" />
   </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: This package is designed for Joomla only.)

See Also[edit]

Contributors[edit]