Portal

Difference between revisions of "Developers"

From Joomla! Documentation

m (Dropped the core extensions box as it wasn't being used anyway.)
m
 
(84 intermediate revisions by 10 users not shown)
Line 1: Line 1:
<div style="width:auto; margin:0; padding:0px 8px 8px 8px; border:1px solid #4F91CD; background-color:#DCEBFF;">
+
<noinclude><languages /></noinclude>
<!-- This portal was created using subst:box portal skeleton  -->
+
{{Top portal heading|color=white-bkgd|icon=code|icon-color=#5091cd|size=5x|text-color=#333|title=
{{browsebar|profiles}}
+
<translate><!--T:45--> Joomla! Developers Portal</translate>}}
<div style="clear:both; width:100%">
+
__TOC__
 +
{{Portal:Developers/Intro/<translate><!--T:1-->
 +
en</translate>}}
 +
{{section portal heading|icon=book|title=<translate><!--T:2-->
 +
Getting Started!</translate>}}{{Portal:Developers/Resources/<translate><!--T:3-->
 +
en</translate>}}
  
{{:{{FULLPAGENAME}}/box-header-sq|<big>Joomla! {{PAGENAME}}</big>|{{FULLPAGENAME}}/Intro|}}
+
<translate>==There are four types of extensions development== <!--T:25--></translate>
{{:{{FULLPAGENAME}}/Intro}}
+
<br />
{{:{{FULLPAGENAME}}/box-footer|}}
+
{{section portal heading|icon=code|title=<translate><!--T:9-->
</div>
+
Components</translate>}}
<div style="clear:both; width:100%">
+
{{Portal:Component_Development/Reading_list/<translate><!--T:11-->
{{:{{FULLPAGENAME}}/box-header-sq|Resources|{{FULLPAGENAME}}/Resources|}}
+
en</translate>}}{{tip|<translate><!--T:12-->
{{:{{FULLPAGENAME}}/Resources}}<br/><br/>
+
See the [[S:MyLanguage/Portal:Component_Development|Component Development Portal page]].</translate>|title=<translate><!--T:13-->
<div class="portal-column-left"> <!-- Switch to one column on narrow screens -->
+
For more articles and information:</translate>}}  
{{:{{FULLPAGENAME}}/box-header-sq|Components|Component_Development/Reading_list|}}{{:{{FULLPAGENAME}}/Components}}
+
<br />
{{:{{FULLPAGENAME}}/box-footer|}}
+
{{section portal heading|icon=plug|title=<translate><!--T:10-->
{{:{{FULLPAGENAME}}/box-header-sq|Templates|Template_Development/Reading_list|}}{{:{{FULLPAGENAME}}/Templates}}
+
Plugins</translate>}}{{Portal:Plugin_Development/Reading_list/<translate><!--T:14-->
{{:{{FULLPAGENAME}}/box-footer|}}
+
en</translate>}}{{tip|<translate><!--T:40-->
{{:{{FULLPAGENAME}}/box-header-sq|Database|{{FULLPAGENAME}}/Database|}}
+
See the [[S:MyLanguage/Portal:Plugin_Development|Plugin Development Portal page]].</translate>|title=<translate><!--T:41-->
{{:{{FULLPAGENAME}}/Database}}
+
For more articles and information:</translate>}}
{{:{{FULLPAGENAME}}/box-footer|}}
+
<br />
{{:{{FULLPAGENAME}}/box-header-sq|Localisation|{{FULLPAGENAME}}/Localisation|}}
+
{{section portal heading|icon=cubes|title=<translate><!--T:21-->
{{:{{FULLPAGENAME}}/Localisation}}
+
Modules</translate>}}{{Portal:Module_Development/Reading_list/<translate><!--T:22-->
{{:{{FULLPAGENAME}}/box-footer|}}
+
en</translate>}}{{tip|<translate><!--T:23-->
 +
See the [[S:MyLanguage/Portal:Module_Development|Module Development Portal page]].</translate>|title=<translate><!--T:24-->
 +
For more articles and information:</translate>}}  
 +
<br />
 +
{{section portal heading|icon=desktop|title=<translate><!--T:17-->
 +
Templates</translate>}}{{Portal:Template_Development/Reading_list/<translate><!--T:18-->
 +
en</translate>}}{{tip|<translate><!--T:19-->
 +
See the [[S:MyLanguage/Portal:Template_Development|Template Development Portal page]].</translate>|title=<translate><!--T:20-->
 +
For more articles and information:</translate>}}  
 +
{{-}}
 +
 
 +
<translate>==More Development Topics== <!--T:33--></translate>
 +
<div class="large-4 column">
 +
{{section portal heading|icon=database|title=<translate><!--T:27-->
 +
Database</translate>}}{{Portal:Developers/Database/<translate><!--T:28-->
 +
en</translate>}}
 
</div>
 
</div>
<div class="portal-column-right"> <!-- Switch to one column on narrow screens -->
+
<div class="large-4 column">
{{:{{FULLPAGENAME}}/box-header-sq|Migration|{{FULLPAGENAME}}/Migration|}}
+
{{section portal heading|icon=language|title=<translate><!--T:29-->
{{:{{FULLPAGENAME}}/Migration}}
+
Localisation</translate>}}{{Portal:Developers/Localisation/<translate><!--T:31-->
{{:{{FULLPAGENAME}}/box-footer|}}
+
en</translate>}}
{{:{{FULLPAGENAME}}/box-header-sq|Modules|Module_Development/Reading_list|}}{{:{{FULLPAGENAME}}/Modules}}
 
{{:{{FULLPAGENAME}}/box-footer|}}
 
{{:{{FULLPAGENAME}}/box-header-sq|Plugins|Plugin_Development/Reading_list|}}{{:{{FULLPAGENAME}}/Plugins}}
 
{{:{{FULLPAGENAME}}/box-footer|}}
 
{{:{{FULLPAGENAME}}/box-header-sq|Parameters & Forms|{{FULLPAGENAME}}/Parameters|}}
 
{{:{{FULLPAGENAME}}/Parameters}}
 
{{:{{FULLPAGENAME}}/box-footer|}}
 
{{:{{FULLPAGENAME}}/box-header-sq|Security|{{FULLPAGENAME}}/Security|}}
 
{{:{{FULLPAGENAME}}/Security}}
 
{{:{{FULLPAGENAME}}/box-footer|}}
 
{{:{{FULLPAGENAME}}/box-header-sq|Access Control|{{FULLPAGENAME}}/Access Control|}}
 
{{:{{FULLPAGENAME}}/Access Control}}
 
{{:{{FULLPAGENAME}}/box-footer|}}
 
{{:{{FULLPAGENAME}}/box-header-sq|Miscellaneous|{{FULLPAGENAME}}/Miscellaneous|}}
 
{{:{{FULLPAGENAME}}/Miscellaneous}}
 
{{:{{FULLPAGENAME}}/box-footer|}}
 
 
</div>
 
</div>
{{:{{FULLPAGENAME}}/box-footer|}}
+
<div class="large-4 column">
 +
{{section portal heading|icon=users|title=<translate><!--T:30-->
 +
ACL Topics</translate>}}{{Portal:Developers/Access Control/<translate><!--T:32-->
 +
en</translate>}}
 
</div>
 
</div>
 
+
{{-}}
<div style="clear:both; width:100%"></div>
+
<div class="large-4 column">
 
+
{{section portal heading|icon=edit|title=<translate><!--T:34-->
<div class="portal-column-right"> <!-- Switch to one column on narrow screens -->
+
Forms</translate>}}{{Portal:Developers/Forms/<translate><!--T:35-->
{{:{{FULLPAGENAME}}/box-header-sq|Contributing to Joomla Development|{{FULLPAGENAME}}/Joomla Development contribution|}}
+
en</translate>}}
{{:{{FULLPAGENAME}}/Joomla Development contribution}}
 
{{:{{FULLPAGENAME}}/box-footer|}}
 
{{:{{FULLPAGENAME}}/box-header-sq|Contributing to Joomla Developer Documentation|{{FULLPAGENAME}}/Developer Documentation|}}
 
{{:{{FULLPAGENAME}}/Developer Documentation }}
 
{{:{{FULLPAGENAME}}/box-footer|}}
 
 
</div>
 
</div>
 
+
<div class="large-4 column">
<div class="portal-column-left"> <!-- Switch to one column on narrow screens -->
+
{{section portal heading|icon=book|title=<translate><!--T:46--> API Guides</translate>}}
{{:{{FULLPAGENAME}}/box-header-sq|Projects|{{FULLPAGENAME}}/Projects|}}
+
<translate><!--T:47--> The Joomla API Guides provide explanations and sample code relating to the Joomla API functions, to help you understand how to use the APIs in your own extensions. [[S:MyLanguage/API Guides|Click here]] to get to the index of these guides.</translate>
{{:{{FULLPAGENAME}}/Projects}}
 
{{:{{FULLPAGENAME}}/box-footer|}}
 
{{:{{FULLPAGENAME}}/box-header-sq|Joomla! Security Guide|{{FULLPAGENAME}}/Joomla! Security Guide|}}
 
{{:{{FULLPAGENAME}}/Joomla! Security Guide}}
 
{{:{{FULLPAGENAME}}/box-footer|}}
 
 
</div>
 
</div>
 
+
<div class="large-4 column">
<div style="clear:both; width:100%">
+
{{section portal heading|icon=lock|title=<translate><!--T:36-->
 +
Security</translate>}}{{Portal:Developers/Security/<translate><!--T:37-->
 +
en</translate>}}{{tip|<translate><!--T:42-->
 +
See the [[S:MyLanguage/Security|Security Portal page]].</translate>|title=<translate><!--T:43-->
 +
For more articles and information:</translate>}}
 
</div>
 
</div>
 +
{{-}}
 +
{{section portal heading|icon=user-plus|title=<translate><!--T:38-->
 +
Contributing to Documentation</translate>}}
 +
{{Portal:Developers/Developer_Documentation/<translate><!--T:44-->
 +
en</translate>}}
  
</div><!-- top div close -->
+
__NOTOC__
__NOTOC__ __NOEDITSECTION__
+
<noinclude>
 
+
[[Category:Development{{#translation:}}]]
 
+
[[Category:Joomla! user profiles{{#translation:}}]]
[[Category:Development]]
+
</noinclude>
[[Category:JED]]
 
[[Category:Joomla! user profiles]]
 

Latest revision as of 16:27, 18 April 2020

Other languages:
Bahasa Indonesia • ‎Deutsch • ‎English • ‎Nederlands • ‎Türkçe • ‎eesti • ‎español • ‎français • ‎italiano • ‎português • ‎português do Brasil • ‎русский • ‎українська • ‎فارسی • ‎বাংলা • ‎ไทย • ‎中文(中国大陆)‎ • ‎中文(台灣)‎
Joomla! Developers Portal

The development of Joomla! itself is carried out by the Production Department and third party developers. This page is a starting point for developers interested in the development of components, modules, plugins and templates.

Have an Interest in Core Contributions?

The development of Joomla itself is carried out by Production Department and third party developers. For more information about Joomla! core development, how to contribute to code to core, or becoming more involved with the core code, you should go to Joomla! Code Contributors.


Getting Started!

There are several ways of setting up your workstation in for Joomla! development. Some suggestions can be found at Setting up your workstation for Joomla development.

Next, you should familiarise yourself with Joomla! Secure coding guidelines and the short article on Joomla! Development Best Practices.

Documentation on the Joomla! API can assist with becoming familiar with the foundations of the Joomla! code base.

Finally, Joomla! has many resources for developers. Our Joomla! Resources page will get you pointed in the right direction if you need help and solutions.


There are four types of extensions development[edit]


Components


There are many articles, tutorials, references and FAQs which focus on component development. If this is your first time developing a component for Joomla, you should start with the Absolute Basics of How a Component Functions. If needed, you can visualise the control flow of a component with these diagrams.

Next, you will want to read our  Joomla 3.x MVC tutorial    Developing a Model-View-Controller Component. Remember to familiarise yourself with Joomla! Secure coding guidelines and Development Best Practices.

Once you have read the tutorial and/or tried the example component, you can focus more on the specifics of your component with additional articles. These are listed on the Component Development Portal or any of the supporting Portals for Development(Plugins, Modules or Templates).

For more articles and information:

See the Component Development Portal page.


Plugins

The following articles will help familiarise you with Joomla! plugins. They are a good starting point to understanding and then developing plugins.

Beginner[edit]

To understand how to install and use a plugin in Joomla it is recommended to read Administration of a Plugin in Joomla!

Intermediate[edit]

To understand plugins better it is advised that you create a basic plugin for Joomla!.

To read on how to run a basic content plugin in a custom module or component you may have already developed it is recommended to read Triggering content plugins in your extension.

Advanced[edit]

To understand the principles on which the Plugin system works Plugin Developer Overview. To then implement this in a component you have designed it is recommended to read Supporting plugins in your component.

For more articles and information:

See the Plugin Development Portal page.


Modules


For more articles and information:

See the Module Development Portal page.


Templates

Our template development documentation contains many articles, FAQs and tutorials. A first step to developing a template is understanding how templates are executed.

Beginners[edit]

Intermediate[edit]

For more articles and information:

See the Template Development Portal page.

More Development Topics[edit]

API Guides

The Joomla API Guides provide explanations and sample code relating to the Joomla API functions, to help you understand how to use the APIs in your own extensions. Click here to get to the index of these guides.

Contributing to Documentation


The development of Joomla developer documentation is carried out primarily by the Documentation Working Group. There is currently one sub-projects of interest to developers:

When creating a new page, ensure you place the following marker at the bottom of the page so it is included in the category list:

[[Category:Development]]

If you locate other articles you think are relevant to developers, please add this marker to those pages.