Actions

J2.5

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

From Joomla! Documentation

< J2.5:Developing a MVC Component
(New page: This tutorial is for {{JVer|1.6}} == Articles in this series == {{Chunk:Developing a Model-View-Controller (MVC) Component for Joomla!1.6 - Contents}} == Introduction == This tutorial is...)
 
 
(27 intermediate revisions by 13 users not shown)
Line 1: Line 1:
This tutorial is for {{JVer|1.6}}
+
{{version/tutor|2.5}}
 
+
{{Chunk:Developing a Model-View-Controller (MVC) Component for Joomla!2.5 - Contents}}
== Articles in this series ==
+
{{Chunk:Developing a Model-View-Controller (MVC) Component for Joomla!1.6 - Contents}}
+
  
 
== Introduction ==
 
== 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.
+
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="1.6.0" method="upgrade">
+
<extension type="component" version="2.5.0" method="upgrade">
  
 
<name>COM_HELLOWORLD</name>
 
<name>COM_HELLOWORLD</name>
<!-- The following elements are optional and free of formatting conttraints -->
+
<!-- The following elements are optional and free of formatting constraints -->
 
<creationDate>November 2009</creationDate>
 
<creationDate>November 2009</creationDate>
 
<author>John Doe</author>
 
<author>John Doe</author>
Line 29: Line 27:
 
<description>COM_HELLOWORLD_DESCRIPTION</description>
 
<description>COM_HELLOWORLD_DESCRIPTION</description>
  
<!-- Runs on install/uninstall/update; New in 1.6 -->
+
<!-- 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 1.6 -->
+
<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 102: Line 100:
 
<!-- UPDATESERVER DEFINITION -->
 
<!-- UPDATESERVER DEFINITION -->
 
<updateservers>
 
<updateservers>
<server type="extension" priority="1" name="HelloWorld Update Site">    
+
<!-- Note: No spaces or linebreaks allowed between the server tags -->
http://yourdomain.com/update/helloworld-update.xml
+
<server type="extension" priority="1" name="HelloWorld Update Site">http://yourdomain.com/update/helloworld-update.xml</server>
</server>
+
 
</updateservers>
 
</updateservers>
  
Line 127: Line 124:
 
       <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 136: 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.6" />
+
       <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>
  
Line 146: Line 183:
 
       <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="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 157: Line 194:
 
       <maintainerurl>http://yourdomain.com</maintainerurl>
 
       <maintainerurl>http://yourdomain.com</maintainerurl>
 
       <section>some-section</section>
 
       <section>some-section</section>
       <targetplatform name="joomla" version="1.6" />
+
       <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>
  
Line 165: Line 242:
 
</span>
 
</span>
  
You need to add a new update-node every time you publish a new release.
+
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 ==
 +
*[[Deploying an Update Server]]
 +
*[[Managing Component Updates with Joomla!2.5 - Part 1]]
 +
 
 +
== Contributors ==
 +
*[[User:Cdemko|Christophe Demko]]
 +
*[[User:oaksu|Ozgur Aksu]]
 +
*[[User:HobbesPDX|Ben Sandberg]]
 +
 
 +
[[Category:Development]]
 +
[[Category:Joomla! 1.6]]
 +
[[Category:Joomla! 1.7]]
 +
[[Category:Joomla! 2.5]]

Latest revision as of 13:46, 3 May 2013


Introduction

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

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)

See Also

Contributors