Developers
m |
m (line break removed) |
||
| (40 intermediate revisions by 11 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;"> |
| − | + | <!-- This portal was created using subst:box portal skeleton --> | |
| + | {{browsebar|profiles}} | ||
| + | <div style="clear:both; width:100%"> | ||
| − | + | {{:{{FULLPAGENAME}}/box-header-sq|<big>Joomla! {{PAGENAME}}</big>|{{FULLPAGENAME}}/Intro|}} | |
| + | {{:{{FULLPAGENAME}}/Intro}} | ||
| + | {{:{{FULLPAGENAME}}/box-footer|}} | ||
| + | </div> | ||
| + | <div style="clear:both; width:100%"> | ||
| + | {{:{{FULLPAGENAME}}/box-header-sq|Resources|Joomla! Development for Beginners/Reading_list|}}{{:{{FULLPAGENAME}}/Resources}} | ||
| + | <div class="portal-column-left"> <!-- Switch to one column on narrow screens --> | ||
| + | {{:{{FULLPAGENAME}}/box-header-sq|Components|Component_Development/Reading_list|}}{{:{{FULLPAGENAME}}/Components}} | ||
| + | {{:{{FULLPAGENAME}}/box-footer|}} | ||
| + | {{:{{FULLPAGENAME}}/box-header-sq|Templates|Template_Development/Reading_list|}}{{:{{FULLPAGENAME}}/Templates}} | ||
| + | {{:{{FULLPAGENAME}}/box-footer|}} | ||
| + | {{:{{FULLPAGENAME}}/box-header-sq|Database|{{FULLPAGENAME}}/Database|}} | ||
| + | {{:{{FULLPAGENAME}}/Database}} | ||
| + | {{:{{FULLPAGENAME}}/box-footer|}} | ||
| + | {{:{{FULLPAGENAME}}/box-header-sq|Localisation|{{FULLPAGENAME}}/Localisation|}} | ||
| + | {{:{{FULLPAGENAME}}/Localisation}} | ||
| + | {{:{{FULLPAGENAME}}/box-footer|}} | ||
| + | </div> | ||
| + | <div class="portal-column-right"> <!-- Switch to one column on narrow screens --> | ||
| + | {{:{{FULLPAGENAME}}/box-header-sq|Migration|{{FULLPAGENAME}}/Migration|}} | ||
| + | {{:{{FULLPAGENAME}}/Migration}} | ||
| + | {{:{{FULLPAGENAME}}/box-footer|}} | ||
| + | {{:{{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> | ||
| + | {{:{{FULLPAGENAME}}/box-footer|}} | ||
| + | </div> | ||
| − | = | + | <div style="clear:both; width:100%"></div> |
| − | + | <div class="portal-column-right"> <!-- Switch to one column on narrow screens --> | |
| − | + | {{:{{FULLPAGENAME}}/box-header-sq|Contributing to Joomla Development|{{FULLPAGENAME}}/Joomla Development contribution|}} | |
| + | {{:{{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 class="portal-column-left"> <!-- Switch to one column on narrow screens --> |
| + | {{:{{FULLPAGENAME}}/box-header-sq|Projects|{{FULLPAGENAME}}/Projects|}} | ||
| + | {{:{{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 style="clear:both; width:100%"> |
| − | + | </div> | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | </div><!-- top div close --> | |
| − | + | __NOTOC__ __NOEDITSECTION__ | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
[[Category:Development]] | [[Category:Development]] | ||
[[Category:JED]] | [[Category:JED]] | ||
[[Category:Joomla! user profiles]] | [[Category:Joomla! user profiles]] | ||
Revision as of 22:05, 14 October 2012
Beginners · Developers · Web designers · Administrators · Evaluators
Joomla! Developers
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.
A complete contents list of all pages of interest to developers can be found in the development category.
Resources
General Resources
- The Joomla! Platform Manual
- Tutorial series for beginning and novice developers
- Setting up your workstation for Joomla development
- (Setting up your workstation in several ways (PHP, Joomla!, extension development; Web server, Editor / IDE, Version Control, Building, ..).
For more information, see Joomla! Development for Beginners .
Components
- Adding ACL rules to your component
- Adding AJAX to your component
- Adding sortable columns to a table in a component
- Component Program Flow.
- (UML sequence diagrams showing the control flow for a component.)
- Creating a file uploader in your component
- Creating a toolbar for your component
- Creating Mootools accordion or simple slider/toggler
- Creating PDF views
- Developing a Model-View-Controller Component
- File Structure and Naming Conventions
- How to add breadcrumbs
- How to add custom filters to components
- How to implement XML-RPC in a component
- JController and its subclass usage overview
- Joomla Platform Portal
- Managing Component Updates with Joomla!2.5 - Part 1
- Manifest files
- (For the installation of extensions.)
- Sending email from extensions
- Supporting SEF URLs in your component
- Using a custom image in the menu bar title
- Using multiple models in an MVC component
- Using the JHtmlTabs class in a component
- Using the JToolBar class in the frontend
- Using Tags in an Extension
- Xml-rpc changes in Joomla! 2.5
For more information, see Component Development.
Templates
- Accessibility
- Creating clickable background images using CSS
- Jim Yuzwalk has contributed a useful introduction to Joomla templates (download the example template from here).
- Changing the site favicon
- Using Class Suffixes
- Using Firebug With Your Joomla Website
- Understanding Output Overrides
- Layout Overrides in Joomla 2.5
- How are templates executed?
- How to determine if the user is viewing the front page
- jdoc statements
- Objects methods and properties available from your template - what you can do with
$this - How to cloak email addresses
For more information, see Template Development.
Database
Localisation
Migration
List of all articles belonging to the "Migration" category
Modules
For more information, see Module Development.
Plugins
- Plugin Developer Overview
- Creating a Plugin for Joomla 1.5
- Creating a content plugin
- Creating a search plugin
- Creating a Smart Search plug-in
- Creating an Authentication Plugin for Joomla 1.5
- Supporting plugins in your component
- Triggering content plugins in your extension
- Creating a System Plugin to augment JRouter
For more information, see Plugin Development.
Parameters & Forms
Security
Access Control
Miscellaneous
- Retrieving request data using JInput
and newer
- Retrieving data from GET and POST requests
- How to use the filesystem package
- Application execution order
- Accessing the current user object
- Adding JavaScript and CSS to the page
- Constants used in the Joomla Framework.
- 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
- 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.
- Sharing layouts across views or extensions with JLayout
- Using JLog
Contributing to Joomla Development
The development of Joomla itself is carried out by the Development Working Group and third party developers.
- Production Working Groups
- 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.
- 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 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.
Projects
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.
- Using 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)
- Using the registry package
- How to load and store XML files and how to work with them
- Creating component feeds (RSS/ATOM)
- Generating paths for client side and server side
- Acessing information from the request
- This focuses on using the JBrowser class to retrieve information about the features available in the user's browser.
- Creating an editor plugin
- What can be done with a user plugin
- Working with parameters
- Cloaking 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.
- Joomla Security Checklist
- Security and Performance FAQs
- Top 10 Stupidest Administrator Tricks
- Secure coding guidelines (for developers)
Joomla Security Forums