J2.5:Developing a MVC Component/Adding an update server

From Joomla! Documentation
< J2.5:Developing a MVC Component(Difference between revisions)
Jump to: navigation, search
(updated to include 1.7 icon, added update nodes for each Joomla! version, and added See Also section with a link)
(fixed package type, added note to Zips section, to let user know not to expect the visible code.)
Line 126: Line 126:
 
       <infourl title="HalloWorld URL">http://yourdomain.com</infourl>
 
       <infourl title="HalloWorld URL">http://yourdomain.com</infourl>
 
       <downloads>
 
       <downloads>
         <downloadurl type="full" format="tgz">http://yourdomain.com/files/com_helloworld-1.5.0-final.zip</downloadurl>
+
         <downloadurl type="full" format="zip">http://yourdomain.com/files/com_helloworld-1.5.0-final.zip</downloadurl>
 
       </downloads>
 
       </downloads>
 
       <tags>
 
       <tags>
Line 146: Line 146:
 
       <infourl title="HalloWorld URL">http://yourdomain.com</infourl>
 
       <infourl title="HalloWorld URL">http://yourdomain.com</infourl>
 
       <downloads>
 
       <downloads>
         <downloadurl type="full" format="tgz">http://yourdomain.com/files/com_helloworld-1.5.0-final.zip</downloadurl>
+
         <downloadurl type="full" format="zip">http://yourdomain.com/files/com_helloworld-1.5.0-final.zip</downloadurl>
 
       </downloads>
 
       </downloads>
 
       <tags>
 
       <tags>
Line 167: Line 167:
 
       <infourl title="HalloWorld URL">http://yourdomain.com</infourl>
 
       <infourl title="HalloWorld URL">http://yourdomain.com</infourl>
 
       <downloads>
 
       <downloads>
         <downloadurl type="full" format="tgz">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>
 
       </downloads>
 
       </downloads>
 
       <tags>
 
       <tags>
Line 187: Line 187:
 
       <infourl title="HalloWorld URL">http://yourdomain.com</infourl>
 
       <infourl title="HalloWorld URL">http://yourdomain.com</infourl>
 
       <downloads>
 
       <downloads>
         <downloadurl type="full" format="tgz">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>
 
       </downloads>
 
       </downloads>
 
       <tags>
 
       <tags>
Line 208: Line 208:
 
== Zips ==
 
== Zips ==
 
Download the zip file for this Part:
 
Download the zip file for this Part:
[http://www.leyar.com/joomlaorg/part17.zip]
+
[http://www.leyar.com/joomlaorg/part17.zip] (NOTE: The package has not been updated with the above Joomla! 1.7 compatibility)
  
 
== See Also ==
 
== See Also ==

Revision as of 14:25, 2 October 2011

This tutorial is for Joomla 1.6 and Joomla 1.7

Articles in this series

Contents


Introduction

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

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="HalloWorld 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="HalloWorld 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

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

See Also

Contributors

On Installation of that component, the "Error Building Admin Menus" warning message is getting appear...

Personal tools
Namespaces

Variants
Actions
Navigation
Joomla! Sites
Toolbox