Difference between revisions of "Developing a MVC Component/Adding an update server"
From Joomla! Documentation
< Archived:Developing a MVC Component
Raulsilvamx (talk | contribs) |
(Update link to Joomla 2.5 Component Updates) |
||
(14 intermediate revisions by 8 users not shown) | |||
Line 1: | Line 1: | ||
− | + | {{version/tutor|2.5}} | |
− | + | {{Chunk:Developing a Model-View-Controller (MVC) Component for Joomla!2.5 - Contents}} | |
− | |||
− | {{Chunk:Developing a Model-View-Controller (MVC) Component for Joomla! | ||
== Introduction == | == Introduction == | ||
− | This tutorial is part of the [[Developing a Model-View-Controller (MVC) Component for Joomla! | + | 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 == | == Adding a updateserver definition == | ||
Line 14: | Line 12: | ||
<source lang="xml"> | <source lang="xml"> | ||
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||
− | <extension type="component" version=" | + | <extension type="component" version="2.5.0" method="upgrade"> |
<name>COM_HELLOWORLD</name> | <name>COM_HELLOWORLD</name> | ||
Line 29: | Line 27: | ||
<description>COM_HELLOWORLD_DESCRIPTION</description> | <description>COM_HELLOWORLD_DESCRIPTION</description> | ||
− | <!-- Runs on install/uninstall/update; New in | + | <!-- Runs on install/uninstall/update; New in 2.5 --> |
<scriptfile>script.php</scriptfile> | <scriptfile>script.php</scriptfile> | ||
Line 42: | Line 40: | ||
</sql> | </sql> | ||
</uninstall> | </uninstall> | ||
− | <update> <!-- Runs on update; New in | + | <update> <!-- Runs on update; New in 2.5 --> |
<schemas> | <schemas> | ||
<schemapath type="mysql">sql/updates/mysql</schemapath> | <schemapath type="mysql">sql/updates/mysql</schemapath> | ||
Line 135: | Line 133: | ||
<maintainerurl>http://yourdomain.com</maintainerurl> | <maintainerurl>http://yourdomain.com</maintainerurl> | ||
<section>some-section</section> | <section>some-section</section> | ||
− | <targetplatform name="joomla" version="1. | + | <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> | ||
<update> | <update> | ||
Line 155: | Line 173: | ||
<maintainerurl>http://yourdomain.com</maintainerurl> | <maintainerurl>http://yourdomain.com</maintainerurl> | ||
<section>some-section</section> | <section>some-section</section> | ||
− | <targetplatform name="joomla" version=" | + | <targetplatform name="joomla" version="2.5" /> |
</update> | </update> | ||
Line 165: | Line 183: | ||
<version>1.5.1</version> | <version>1.5.1</version> | ||
− | <infourl title=" | + | <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> | <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> | ||
Line 176: | Line 214: | ||
<maintainerurl>http://yourdomain.com</maintainerurl> | <maintainerurl>http://yourdomain.com</maintainerurl> | ||
<section>some-section</section> | <section>some-section</section> | ||
− | <targetplatform name="joomla" version=" | + | <targetplatform name="joomla" version="2.5" /> |
</update> | </update> | ||
<update> | <update> | ||
Line 196: | Line 234: | ||
<maintainerurl>http://yourdomain.com</maintainerurl> | <maintainerurl>http://yourdomain.com</maintainerurl> | ||
<section>some-section</section> | <section>some-section</section> | ||
− | <targetplatform name="joomla" version=" | + | <targetplatform name="joomla" version="2.5" /> |
</update> | </update> | ||
Line 205: | Line 243: | ||
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) | 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) | ||
− | |||
− | |||
− | |||
− | |||
== See Also == | == See Also == | ||
*[[Deploying an Update Server]] | *[[Deploying an Update Server]] | ||
+ | *[[Managing Component Updates with Joomla!2.5 - Part 1]] | ||
== Contributors == | == Contributors == | ||
Line 217: | Line 252: | ||
*[[User:oaksu|Ozgur Aksu]] | *[[User:oaksu|Ozgur Aksu]] | ||
*[[User:HobbesPDX|Ben Sandberg]] | *[[User:HobbesPDX|Ben Sandberg]] | ||
+ | |||
+ | [[Category:Development]] | ||
+ | [[Category:Joomla! 1.6]] | ||
+ | [[Category:Joomla! 1.7]] | ||
+ | [[Category:Joomla! 2.5]] |
Revision as of 06:10, 1 February 2013
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.
Articles in this Series
- Introduction
- Developing a Basic Component
- Adding a view to the site part
- Adding a menu type to the site part
- Adding a model to the site part
- Adding a variable request in the menu type
- Using the database
- Basic backend
- Adding language management
- Adding backend actions
- Adding decorations to the backend
- Adding verifications
- Adding categories
- Adding configuration
- Adding ACL
- Adding an install/uninstall/update script file
- Using the language filter facility
- Adding an update server
- Example of a Frontend Update Function
- Example of Menu Parameters & Stylesheets
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)