J3.x

Developing an MVC Component/Developing a Basic Component: Difference between revisions

From Joomla! Documentation

MATsxm (talk | contribs)
Tags for heading changed
Edited tutorial to be geared towards Joomla! beginners. Organized information into clear step by step instructions for how to create and install a Joomla! component.
Line 31: Line 31:


<translate>
<translate>
=== Pack an installation zip file === <!--T:11-->
=== How to add a component to Joomla! ===  
</translate>
To add the ''Hello World!'' component to Joomla! you must:
<translate><!--T:12-->
*With your favourite file manager, create a directory (anywhere outside of your Joomla! installation directory) containing:
If you have used Joomla! before reading this tutorial, you have noticed that extensions are installed using a compressed file containing all the things which are needed for installing and uninstalling them.</translate>
** ''[[#helloworld.xml|helloworld.xml]]''
** ''[[#site/helloworld.php|site/helloworld.php]]''
** ''[[#index.html|site/index.html]]''
** ''[[#index.html|admin/index.html]]''
** ''[[#admin/helloworld.php|admin/helloworld.php]]''
** ''[[#index.html|admin/sql/index.html]]''
** ''[[#index.html|admin/sql/updates/index.html]]''
** ''[[#index.html|admin/sql/updates/mysql/index.html]]''
** ''[[#admin/sql/updates/mysql/0.0.1.sql|admin/sql/updates/mysql/0.0.1.sql]]''


<translate><!--T:13-->
*With your favourite editor, edit each file and include the source code found in the File Details section.
With your favorite file manager, create a directory (outside your Joomla! installation directory) containing:</translate>
*Create a compressed file of this directory.
* ''[[#helloworld.xml|helloworld.xml]]''
*Install the ''Hello World!'' component using the extension manager of Joomla!.
* ''[[#site/helloworld.php|site/helloworld.php]]''
**Click Extensions {{rarr}} Manage {{rarr}} Install {{rarr}} Upload Package File {{rarr}} Choose File
* ''[[#index.html|site/index.html]]''
**Navigate and Select File
* ''[[#index.html|admin/index.html]]''
**Click Upload & Install
* ''[[#admin/helloworld.php|admin/helloworld.php]]''
***Note - You should see a message letting you know if the installation succeeded or failed
* ''[[#index.html|admin/sql/index.html]]''
* ''[[#index.html|admin/sql/updates/index.html]]''
* ''[[#index.html|admin/sql/updates/mysql/index.html]]''
* ''[[#admin/sql/updates/mysql/0.0.1.sql|admin/sql/updates/mysql/0.0.1.sql]]''


<translate><!--T:14-->
You can test this basic component by putting ''index.php?option=com_helloworld'' or ''administrator/index.php?option=com_helloworld'' in your browser address. You can also notice that the ''Hello World!'' component is visible in the administrator site of your Joomla installation under the ''Components'' menu.
Create a compressed file of this directory or directly download the [https://github.com/scionescire/Joomla-3.2-Hello-World-Component/archive/step-1-basic-component.zip archive] and install it using the extension manager of Joomla. You can test this basic component by putting ''index.php?option=com_helloworld'' or ''administrator/index.php?option=com_helloworld'' in your browser address. You can also notice that the ''Hello World!'' component is visible in the administrator site of your Joomla installation under the ''Components'' menu.</translate>


<translate>
==File Details== <!--T:15-->
==File Details== <!--T:15-->
</translate>
</translate>

Revision as of 13:04, 14 September 2015

Joomla! 
3.x
Tutorial
Developing an MVC Component



This is a multiple-article series of tutorials on how to develop a Model-View-Controller Component for Joomla! VersionJoomla 3.x.

Begin with the Introduction, and navigate the articles in this series by using the navigation button at the bottom or the box to the right (the Articles in this series).



The first basic component

Let's create a Hello World! component.

Public display

With your favourite file manager and editor, create a file yoursite/components/com_helloworld/helloworld.php containing:

Hello world

Also Create an empty file yoursite/components/com_helloworld/helloworld.xml The last step is install the component, go to Extensions    Extension Manager    Discover :: Discover (Button). Select the component and install it with the installation (button). You can test this basic component by putting index.php?option=com_helloworld in your browser address (don't forget to prefix this address with your Joomla! 3.x installation path) after installing this component.

Administrator management

With your favourite file manager and editor, create a file yoursite/administrator/components/com_helloworld/helloworld.php containing:

Hello world administration

You can test this basic component by putting administrator/index.php?option=com_helloworld in your browser address after installing the component.

How to add a component to Joomla!

To add the Hello World! component to Joomla! you must:

  • With your favourite editor, edit each file and include the source code found in the File Details section.
  • Create a compressed file of this directory.
  • Install the Hello World! component using the extension manager of Joomla!.
    • Click Extensions    Manage    Install    Upload Package File    Choose File
    • Navigate and Select File
    • Click Upload & Install
      • Note - You should see a message letting you know if the installation succeeded or failed

You can test this basic component by putting index.php?option=com_helloworld or administrator/index.php?option=com_helloworld in your browser address. You can also notice that the Hello World! component is visible in the administrator site of your Joomla installation under the Components menu.

File Details

admin/sql/updates/mysql/0.0.1.sql is an empty file allowing to initialise schema version of the com_helloworld component.

helloworld.xml

<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="3.2.0" method="upgrade">

	<name>Hello World!</name>
	<!-- The following elements are optional and free of formatting constraints -->
	<creationDate>December 2013</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.1</version>
	<!-- The description is optional and defaults to the name -->
	<description>Description of the Hello World component ...</description>

	<update> <!-- Runs on update; New since J2.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>
	</files>

	<administration>
		<!-- Administration Menu Section -->
		<menu link='index.php?option=com_helloworld'>Hello World!</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>helloworld.php</filename>
			<!-- SQL files section -->
			<folder>sql</folder>
		</files>
	</administration>

</extension>

site/helloworld.php

Hello World

admin/helloworld.php

Hello World administration

index.html

common to all folders

<html><body bgcolor="#FFFFFF"></body></html>


General Information

Please create a pull request or issue at https://github.com/joomla/Joomla-3.2-Hello-World-Component for any code descprepancies or if editing any of the source code on this page.