Actions

Portal

Difference between revisions of "Developers"

From Joomla! Documentation

(Blanked the page)
m (Reverted edits by Tom6 (talk) to last revision by Mrs.siam)
Line 1: Line 1:
 +
{{RightTOC}}
 +
{{Chunk:Developer profile}}
  
 +
A complete contents list of all pages of interest to developers can be found in the [[:Category:Development|development category]].
 +
 +
== Reference Material ==
 +
 +
* [[Framework|Joomla Framework]].
 +
* [http://api.joomla.org API documentation] automatically generated using phpDocumentor.
 +
 +
== Articles and Tutorials ==
 +
 +
=== General ===
 +
* [[Setting up your workstation for Joomla! development]].  A step-by-step guide to installing the Eclipse IDE on your local workstation for Joomla! development.
 +
* [[Setting up your workstation for extension development]] A guide to Joomla Extension development
 +
* [http://community.joomla.org/blogs/community/828-webinar-using-eclipse-for-joomla-development.html Using Eclipse for Joomla! Development] Video webinar demonstrating overview of Eclipse features for Joomla! development
 +
* [[Extension development using eclipse and phing]] This article explains one way in which you can set up your workstation for writing Joomla! extensions. It assumes that you are using Eclipse and that you are familiar with using Eclipse for working with Joomla! and Subversion. For more information about the basics of getting started with Eclipse for Joomla! development.
 +
* [[Tortoise SVN]]
 +
* [[Running Automated Tests for Version 1.6]] {{JVer|1.6}}
 +
* [[How to debug your code]] ([[Do not use die to debug]]!)
 +
* [[Joomla Beginning Developer Course]]
 +
* [[Secure coding guidelines]]
 +
* [[Development Best Practices]]
 +
 +
=== Migration ===
 +
* [[Adapting a Joomla 1.0 extension to Joomla 1.5]]
 +
* [[Adapting a Joomla 1.5 extension to Joomla 1.6]]
 +
* [[Version 1.6 Developer Notes]]
 +
* [[Making single installation packages for Joomla! 1.5, 1.6 and 1.7]]
 +
 +
=== Components ===
 +
{{RecReading|Component|dev|topic}}
 +
=== Modules ===
 +
{{RecReading|Module|dev|topic}}
 +
=== Plugins ===
 +
{{RecReading|Plugin|dev|topic}}
 +
=== Templates ===
 +
{{RecReading|Template|dev|topic}}
 +
===Parameters===
 +
* [[Standard parameter types]]
 +
* [[Custom parameter types]]
 +
* [[Component parameters]]
 +
* [[Creating custom template parameter types]]
 +
See also: [[:Category:Parameters]]
 +
 +
=== Core extensions summary ===
 +
* [[Banner component]] {{JVer|1.6}}
 +
 +
=== Security ===
 +
* [[How to add CSRF anti-spoofing to forms]]
 +
* [http://developer.joomla.org/tutorials/181-preventing-sql-injections.html Preventing SQL Injections]
 +
* [[Securing Joomla extensions]]
 +
 +
=== Database ===
 +
* [[How to use the database classes in your script]]
 +
* [[How to use the JTable class]]
 +
* [[How to connect to an external database]]
 +
 +
=== Localisation ===
 +
* [http://community.joomla.org/magazine/article/508-developer-localization-advancements-in-joomla-15.html Localization Advancements in Joomla! 1.5]
 +
* [[Adding multi-language support]]
 +
* [[Language Guidelines for 3rd Party Extensions]]
 +
* [[Adding Joomfish functionality to custom components]]
 +
* [[Specification of language files]] {{JVer|1.6}}
 +
* [[Language Metadata]] {{JVer|1.6}}
 +
 +
=== Access Control ===
 +
* [[Access Control System In Joomla 1.6]] {{JVer|1.6}}
 +
 +
=== Miscellaneous ===
 +
* [[How to use the filesystem package]]
 +
* [[API Execution Order]]
 +
* [[Accessing the current user object]]
 +
* [[Adding JavaScript and CSS to the page]]
 +
* [[Constants]] used in the Joomla [[Framework]].
 +
* [[Client-side form validation]]
 +
* [[How to create a custom button]]
 +
* [[How to create a stand-alone application using the Joomla! Framework]]
 +
* [[How to use user state variables]]
 +
* [[Adding template overridable images in your extension]]
 +
* [[Retrieving data from GET and POST requests]]
 +
* [[Cache]] and [[Using caching to speed up your code]]
 +
* [[Using the installer API to support package installation]]
 +
* [[How to add tooltips to your Joomla! website]]
 +
* [[Display error messages and notices]].
 +
* [[Errors]]
 +
* [[Creating a custom form field type]] {{JVer|1.6}}
 +
 +
== Contributing to Joomla Development ==
 +
The development of Joomla itself is carried out by the [[Development Working Group]] and third party developers.
 +
 +
* [[Participating in the community]]: a brief description of how people can get involved.
 +
* [[Developer Email lists]]: a list of email lists for developers, including third party developers.
 +
* [[Coding style and standards]] (To be reviewed).
 +
* [[Setting up your workstation for Joomla! development]].  A step-by-step guide to installing the Eclipse IDE on your local workstation for Joomla! development.
 +
* [http://docs.joomla.org/Setting_up_your_workstation_for_Joomla!_development_--_Part_2#Check_Out_Joomla.21_Source_Code How to check out SVN Code]
 +
* [[Patch submission guidelines]].
 +
* [[Filing bugs and issues]].
 +
* [[How to release a distribution tarball]].
 +
* [[How to create a continuous integration]].
 +
 +
== Contributing to Joomla Developer Documentation ==
 +
The development of Joomla developer documentation is carried out primarily by the [[Documentation Working Group]].  There are currently two sub-projects of interest to developers:
 +
* [[Joomla! 1.5 Template Tutorials Project]]
 +
* [[API Reference Project]]
 +
 +
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:
 +
 +
<pre><nowiki>[[Category:Development]]
 +
</nowiki></pre>
 +
 +
If you locate other articles you think are relevant to developers, please add this marker to those pages.
 +
 +
=== Suggested topics ===
 +
This is a short list of articles that might be written to support developers.  Please feel free to add further topic ideas.
 +
 +
* [[Adding configuration objects to modules and plugins]].
 +
* [[Storing data in the session between page loads]].
 +
* [[Suppressing output of extra HTML]].
 +
* [[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 create component feeds]] (RSS/ATOM)
 +
* [[How to create PDF views]]
 +
* [[How to generate paths for client side and server side]]
 +
* [[How to access information from the request]]
 +
*: 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 cloak email addresses]]
 +
* [[Using the caching system in your component]]. This might be enough (for now?) -> [[Cache]]
 +
* [[Extending Joomla's MVC Architecture]]
 +
 +
==Joomla Security Guide==
 +
Developers should also be aware of security issues.
 +
{{Security Guide}}
 +
 +
[[Category:Development]]
 +
[[Category:JED]]
 +
[[Category:Joomla! user profiles]]

Revision as of 19:14, 2 February 2012

<translate> As a developer you are tasked with altering or extending the functionality of Joomla! or one of its extensions. You will be proficient in a range of programming languages, including PHP, but may be less familiar with such things as JavaScript or CSS. If you are new to Joomla! you will need information about the Joomla! Framework API and how to use it and will probably make extensive use of best practice example code.</translate>


A complete contents list of all pages of interest to developers can be found in the development category.

Reference Material

Articles and Tutorials

General

Migration

Components

<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 information, see Component Development.

Modules

<translate> Module Development</translate>

<translate> This page contains many links to selected documentation concerning Module Development for Joomla 2.5 and Joomla 3.x. A good place to start is with the Recommending Reading articles below as they provide a good introductory base of knowledge to build on.</translate>

<translate> What is a Module?</translate>

<translate>

Modules are lightweight and flexible extensions used for page rendering. These modules are often “boxes” arranged around a component on a typical page. A well-known example is the login module. Modules are assigned per menu item, so you can decide to show or hide (for example) the login module depending on which page (menu item) the user is currently on.

See also: Component, Plugin, Template</translate>

<translate> Recommended Reading</translate>

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

<translate> FAQs</translate>

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

<translate> Module Development Tutorials</translate>

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


<translate> Module Development Articles Needed</translate>

{{Portal:Module_Development/Projects/<translate> en</translate>}}

_

For more information, see Module Development.

Plugins

<translate> Plugin Development</translate>

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

<translate> Using Plugins</translate>

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

<translate> Reading list</translate>

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

<translate> Tutorials</translate>

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


<translate> Plugin Development Articles Needed</translate>

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


For more information, see Plugin Development.

Templates

<translate> Template Development</translate>

{{:Portal:Template Development/Intro/<translate> en</translate>}}

<translate> Recommended Reading</translate>

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

<translate> FAQ</translate>

{{:Portal:Template Development/FAQs/<translate> en</translate>}}

<translate> Template Development Tutorials</translate>

{{:Portal:Template Development/Tutorials/<translate> en</translate>}}


For more information, see Template Development.

Parameters

See also: Category:Parameters

Core extensions summary

Security

Database

Localisation

Access Control

Miscellaneous

Contributing to Joomla Development

The development of Joomla itself is carried out by the Development Working Group and third party developers.

Contributing to Joomla Developer Documentation

The development of Joomla developer documentation is carried out primarily by the Documentation Working Group. There are currently two 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.

Suggested topics

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

Joomla Security Guide

Developers should also be aware of security issues. Template:Security Guide