Actions

J2.5

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

From Joomla! Documentation

< J2.5:Developing a MVC Component
(fixed package type, added note to Zips section, to let user know not to expect the visible code.)
(Update link to Joomla 2.5 Component Updates)
(17 intermediate revisions by 8 users not shown)
Line 1: Line 1:
This tutorial is for {{JVer|1.6}} and {{JVer|1.7}}
+
{{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>
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 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.6" />
+
       <targetplatform name="joomla" version="2.5" />
 
   </update>
 
   </update>
 
   <update>
 
   <update>
Line 155: Line 153:
 
       <maintainerurl>http://yourdomain.com</maintainerurl>
 
       <maintainerurl>http://yourdomain.com</maintainerurl>
 
       <section>some-section</section>
 
       <section>some-section</section>
       <targetplatform name="joomla" version="1.7" />
+
       <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 165: 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="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 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>
 
     <update>
 
     <update>
Line 185: Line 203:
 
       <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>
Line 196: Line 214:
 
       <maintainerurl>http://yourdomain.com</maintainerurl>
 
       <maintainerurl>http://yourdomain.com</maintainerurl>
 
       <section>some-section</section>
 
       <section>some-section</section>
       <targetplatform name="joomla" version="1.7" />
+
       <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 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)
 
== Zips ==
 
Download the zip file for this Part:
 
[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 ==
 
*[[Deploying an Update Server]]
 
*[[Deploying an Update Server]]
 +
*[[Managing Component Updates with Joomla!2.5 - Part 1]]
  
 
== Contributors ==
 
== Contributors ==
 
*[[User:Cdemko|Christophe Demko]]
 
*[[User:Cdemko|Christophe Demko]]
 
*[[User:oaksu|Ozgur Aksu]]
 
*[[User:oaksu|Ozgur Aksu]]
On Installation of that component, the "Error Building Admin Menus" warning message is getting appear...
+
*[[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


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