Portal

Difference between revisions of "Developers"

From Joomla! Documentation

(169 intermediate revisions by 41 users not shown)
Line 1: Line 1:
{{Developer profile}}
+
__TOC__
 +
{{:{{FULLPAGENAME}}/Intro}}
  
== Participation ==
 
  
* [[Participating in the community]]: a brief description of how people can get involved.
+
==Getting Started==
* [[Coding style and standards]] (To be reviewed).
+
{{:{{FULLPAGENAME}}/Resources}}
* [[Patch submission guidelines]].
+
There is four types of extensions development:
* [[Filing bugs and issues]].
+
*[[#Components|Components Development]]
* [[How to release a distribution tarball]].
+
*[[#Plugins|Plugins Development]]
 +
*[[#Templates|Templates Development]]
 +
*[[#Modules|Modules Development]]
 +
<div class="large-12 column panel radius" style="background:none;">
 +
{{:{{FULLPAGENAME}}/Components}}
 +
</div>
 +
<div class="large-12 column panel radius" style="background:none;">
 +
{{:{{FULLPAGENAME}}/Plugins}}
 +
</div>
 +
<div class="large-12 column panel radius" style="background:none;">
 +
{{:{{FULLPAGENAME}}/Templates}}
 +
</div>
 +
<div class="large-12 column panel radius" style="background:none;">
 +
{{:{{FULLPAGENAME}}/Modules}}
 +
</div>
 +
{{-}}
  
== Reference Pages ==
+
== More Development Topics==
 +
<div class="large-12 column panel radius" style="background:none;">
 +
<div class="large-4 column">
 +
{{:{{FULLPAGENAME}}/Database}}
 +
</div>
 +
<div class="large-4 column">
 +
{{:{{FULLPAGENAME}}/Localisation}}
 +
</div>
 +
<div class="large-4 column">
 +
{{:{{FULLPAGENAME}}/Access Control}}
 +
</div>
 +
</div>
 +
<div class="large-12 column panel radius" style="background:none;">
 +
<div class="large-6 column">
 +
{{:{{FULLPAGENAME}}/Forms}}
 +
</div>
 +
<div class="large-6 column">
 +
{{:{{FULLPAGENAME}}/Security}}
 +
</div>
 +
</div>
 +
{{-}}
 +
<div class="large-12 column panel radius" style="background:none;">
 +
{{:{{FULLPAGENAME}}/Miscellaneous}}
 +
</div>{{-}}
  
Peruse all pages in the [[:Category:Development]] category.
+
<div class="large-12 column panel radius">
 
+
== Contributing to Documentation ==
When creating a new page, ensure you place the following marker at the top of the page so it is included in the category list:
+
{{:{{FULLPAGENAME}}/Developer Documentation}}
 
+
{{:{{FULLPAGENAME}}/Projects}}
<pre><nowiki>[[Category:Development]]
+
</div>
</nowiki></pre>
 
 
 
If you locate other articles you thing that are relevant to developer, please add this marker to those pages.
 
 
 
== Articles and Tutorials on developer.joomla.org ==
 
 
 
[http://community.joomla.org/magazine/article/508-developer-localization-advancements-in-joomla-15.html Localization Advancements in Joomla! 1.5]
 
 
 
[http://developer.joomla.org/tutorials/165-understanding-output-overrides-in-joomla.html Understanding Output Overrides in Joomla! 1.5]
 
 
 
[http://developer.joomla.org/tutorials/181-preventing-sql-injections.html Preventing SQL Injections]
 
 
 
[http://developer.joomla.org/tutorials/184-how-to-create-a-joomla-plugin.html How to create a Joomla! Plugin]
 
 
 
[http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_1 Developing a Model-View-Controller Component - Part 1]
 
 
 
[http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_2_-_Adding_a_Model Developing a Model-View-Controller Component - Part 2 - Adding a Model]
 
 
 
[http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_3_-_Using_the_Database Developing a Model-View-Controller Component - Part 3 - Using the Database]
 
 
 
[http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_4_-_Creating_an_Administrator_Interface Developing a Model-View-Controller Component - Part 4 - Creating an Administrator Interface]
 
 
 
== Cookie Jar ==
 
 
 
Articles that need to be written.
 
 
 
* Developer guidelines.
 
* Secure coding guidelines.
 
* Error message conventions.
 
* Exception handling.
 
* Release numbering, compatibility and deprecation.
 
* Complete/update/review the wiki API reference (assumes this has been moved from DocuWiki to MediaWiki).
 
* Update developer tutorials and how-to's currently on dev.joomla.org
 
** Review all material under the tutorials heading at http://dev.joomla.org/component/option,com_jd-wiki/Itemid,32/
 
** Recommend material to be migrated over to docs.joomla.org
 
** Update material that is to be migrated over to docs.joomla.org
 
* [[Adding AJAX to your component]].
 
** Write a document describing how to add AJAX to an MVC component.  If desired, use the MVC Hello World tutorial as a base.  Describe where various elements should go in the MVC design pattern.  Also describe how to implement MVC in a module (these need supporting components to do AJAX).
 
* [[Creating a toolbar for your component]].
 
* [[Adding configuration objects to modules and plugins]].
 
* [[Storing data in the session between page loads]].
 
* [[Using the caching system in your component]].
 
* [[Creating a file uploader in your component]].
 
* [[Suppressing output of extra HTML]].
 
* [[Adding view layout configuration parameters]].
 
** Explain how to create an XML file that will allow users to configure views.
 
* [[How to implement XML-RPC in a component]]
 
** There are two ways to do this:
 
*** Implement it using an XML-RPC plugin
 
*** Implement it in the component itself using raw views
 
* [[How to use the filesystem package]]
 
* [[How to use the filter package]]
 
** Describe how and when to use the Filter package and explain what needs to be filtered for various situations (for queries, for URLs, etc)
 
* [[How to use the registry package]]
 
* [[How to use JSimpleXML]]
 
** How to load and store XML files and how to work with them
 
* [[How to add breadcrumbs]]
 
* [[How to create component feeds]] (RSS/ATOM)
 
* [[How to create PDF views]]
 
* [[How to send email from components]]
 
* [[What's available in the JFactory class]]
 
* [[How to generate paths for client side and server side]]
 
* How to access information from the request/browser
 
** This focuses on using the JBrowser class to retrieve information about the features available in the user's browser.
 
* [[How to create an editor plugin]]
 
* [[What can be done with a user plugin]]
 
* [[How to work with parameters]]
 
* [[How to use the JToolBar class in the frontend]]
 
* [[How to use the editor in a component]]
 
* [[How to cloak email addresses]]
 
  
 
[[Category:Development]]
 
[[Category:Development]]
 +
[[Category:JED]]
 +
[[Category:Joomla! user profiles]]

Revision as of 14:37, 23 October 2014

<translate> 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.</translate>

<translate> Have an Interest in Core Contributions?</translate>

<translate> 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.</translate>



Getting Started[edit]

<translate> 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.</translate>

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

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

<translate> 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.</translate>


There is four types of extensions development:

Components[edit]

<translate> Component Development</translate>

{{Portal:Component_Development/Intro/<translate> en</translate>}}

<translate> Intro to Component Development</translate>

{{Portal:Component_Development/Reading list/<translate> en</translate>}}

<translate> General Information</translate>

{{Portal:Component_Development/Information/<translate> en</translate>}}

<translate> FAQs</translate>

{{Portal:Component_Development/FAQs/<translate> en</translate>}}

<translate> Tutorials</translate>

{{Portal:Component_Development/Tutorials/<translate> en</translate>}}


For more articles and information, see the Component Development Portal page.

{{Portal:Plugin_Development/Reading_list/<translate> en</translate>}}

More Development Topics[edit]

Contributing to Documentation[edit]

<translate> 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:</translate> <translate>

<translate> 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:</translate>

[[Category:Development]]

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


Suggested topics[edit]

This is a short list of articles that might be written to support developers. Please feel free to add further topic ideas.