Actions

JDOC

Difference between revisions of "Joomla! Doc Sprints/Start Here"

From Joomla! Documentation

< JDOC:Joomla! Doc Sprints
(Audience: Third-party Developers)
m (Adjusted link after page move)
(46 intermediate revisions by 11 users not shown)
Line 1: Line 1:
__NOTOC__
 
 
{| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%"
 
{| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%"
 
| style="width:50%; vertical-align:top; border:1px solid Gold; background-color: LightYellow;" rowspan="1"|
 
| style="width:50%; vertical-align:top; border:1px solid Gold; background-color: LightYellow;" rowspan="1"|
Line 6: Line 5:
 
Below is a list of tasks, categorised by intended audience.  There will be overlap so treat this as a rough guide only.  Please feel free to add new topics to this list.
 
Below is a list of tasks, categorised by intended audience.  There will be overlap so treat this as a rough guide only.  Please feel free to add new topics to this list.
  
To start writing on a topic, change the item in this list into a link (unless it's already a link of course!).  To do this you simply surround the text by a pair of square brackets.  For example, to make "text" into a link, change it to <nowiki>"[[text]]"</nowiki>.  Save your change.  The link text should now appear in red.  Click on this new link and you will be taken to an editor screen for the new page.  Enter your new topic text and click save.  Simple as that.  If you encounter any problems, ask for help on the IRC channel.
+
To start writing on a topic, change the item in this list into a link (unless it's already a link of course!).  To do this you simply surround the text by a pair of square brackets.  For example, to make "text" into a link, change it to <nowiki>"[[text]]"</nowiki>.  Save your change.  The link text should now appear in red.  Click on this new link and you will be taken to an editor screen for the new page.  Enter your new topic text and click save.  Simple as that.  If you encounter any problems, ask for help on the [irc://irc.freenode.net/joomladocs IRC channel].
  
When you begin editing a page please consider adding an <nowiki>{{inuse}}</nowiki> template call while you are working on it so that others do not create conflicting changes to the same page.  And don't forget to remove it again when you've finished!
+
'''When you begin editing a page please add <nowiki>{{inuse}}</nowiki> to the top of the page before you start working on it so that others do not create conflicting changes to the same page.  And don't forget to remove it again when you have finished! Thank you.'''
 
</div>
 
</div>
  
Line 17: Line 16:
 
<div style="padding:1em 1em 1em 1em;"> <!--Note: Top, right, bottom, left -->
 
<div style="padding:1em 1em 1em 1em;"> <!--Note: Top, right, bottom, left -->
 
* If you are new to MediaWiki then you should consult the '''[http://meta.wikimedia.org/wiki/Help:Contents User's Guide]''' for information on using the wiki software.
 
* If you are new to MediaWiki then you should consult the '''[http://meta.wikimedia.org/wiki/Help:Contents User's Guide]''' for information on using the wiki software.
* List of '''[[local wiki templates]]''' that can be used in your wiki pages.  Templates reduce repetition and are the basis of modular documentation.
+
* List of '''[[JDOC:Local wiki templates|local wiki templates]]''' that can be used in your wiki pages.  Templates reduce repetition and are the basis of modular documentation.
* List of '''[[local wiki extensions]]''' that have been installed on this wiki.  Extensions provide additionally functionality to the wiki such as syntax highlighting and conditional expressions.
+
* List of '''[[JDOC:Local wiki extensions|local wiki extensions]]''' that have been installed on this wiki.  Extensions provide additionally functionality to the wiki such as '''syntax highlighting''' and conditional expressions.
* List of '''[[local interwiki links]]''' that are available on this wiki.  These provide useful shortcuts to creating URLs to other websites including the Joomla! forum, help screens and issue tracker; as well as links to the PHP documentation.
+
* List of '''[[JDOC:Local interwiki links|local interwiki links]]''' that are available on this wiki.  These provide useful shortcuts to creating URLs to other websites including the Joomla! forum, help screens and issue tracker; as well as links to the [http://php.net/manual PHP documentation] or [[wikipedia:Main_Page|Wikipedia]].
* Please read the '''[http://help.joomla.org/workshop/documents/Editorial%20Style%20Guide%20v1.0.5.pdf Joomla! Editorial Style Guide]'''.
+
* Please read the '''[http://help.joomla.org/workshop/documents/Editorial%20Style%20Guide%20v1.0.5.pdf Joomla! Editorial Style Guide]''' and the list of '''[[Project:W2W|words to watch]]'''.
 
</div>
 
</div>
 
|}
 
|}
 +
{{RightTOC}}
 +
 +
==Where to start==
 +
Looking for a topic to write about?  Well, for small tasks look in the Cookie Jar (below).
 +
 +
There are lists about:
 +
* requested but yet [[Special:Wantedpages|empty pages]]
 +
* [[:Category:Articles that require a review]] awaiting a copy editor
 +
 +
Otherwise, look down this page and browse the links.  Red links are empty pages.  If there is a topic that you feel we have missed then feel free to add it here.
 +
 +
==Doc Camp Cookie Jar==
 +
This is a list of small tasks that should be quick to get done and might be a good introduction to working on the documentation.
 +
* [[Joomla!]] - basic introduction to what Joomla! is, why you might want to download it, and where to go to get more information.
 +
* [[Copying a Joomla website]]
 +
* [[Using an FTP client to upload files]]
 +
* [[Using a terminal session]]
 +
* [[Migrating from 1.0.x to 1.5 Stable]] - see [http://dev.joomla.org/component/option,com_jd-wiki/Itemid,/id,migration:migration-component/]
 +
 +
We need some basic information on the following pages.  Looking for a simple definition of the term with links to further information if required.
 +
* [[ACL]] (redirect to [[Access Control List]])
 +
* [[Access Control List]]
 +
* [[Administrator (Application)]]
 +
* [[Administrator (User)]]
 +
* [[Backup]]
 +
* [[Banner]]
 +
* [[Blog]]
 +
* [[Calendar]]
 +
* [[Configuration]] (redirect to [[Screen.config.15|Screen.config.15]])
 +
* [[CSS]]
 +
* [[Database structure]]
 +
* Events (disambiguation page)
 +
* [[Front page]]
 +
* [[Global configuration]] (redirect to [[Screen.config.15|Screen.config.15]])
 +
* Installer (disambiguation page)
 +
* [[Languages]]
 +
* [[LDAP]] as in Lightweight Directory Access Protocol
 +
* [[Module positions]]
 +
* [[PHP]]
 +
* [[Register globals]]
 +
* [[Requirements]]
 +
* [[Release]]
 +
* [[Restricted access]]
 +
* [[Screen Captures]]
 +
* [[Search]]
 +
* [[Security]]
 +
* [[session save path]]
 +
* [[Setup]]
  
 
==Audience: Users/Administrators==
 
==Audience: Users/Administrators==
Line 28: Line 75:
  
 
* [[Installation notes for specific platforms]]
 
* [[Installation notes for specific platforms]]
 +
* [[Moving the administrator directory]]
 
* [[Help screens]].
 
* [[Help screens]].
 
* [[Marketing Information]] such as features and benefits.
 
* [[Marketing Information]] such as features and benefits.
 
* Create one or more demo/showcase sites then create tutorials explaining how each was put together.  For inspiration see: [http://www.adobe.com/devnet/blueprint/]
 
* Create one or more demo/showcase sites then create tutorials explaining how each was put together.  For inspiration see: [http://www.adobe.com/devnet/blueprint/]
 
* [[Beginners|Absolute Beginners Guide to Joomla!]]
 
* [[Beginners|Absolute Beginners Guide to Joomla!]]
 +
* [[Beginners_(Concise) | Another Absolute Beginners Guide to Joomla!]]
 
* [[Landing Pages]] for this wiki.
 
* [[Landing Pages]] for this wiki.
 +
* [[FAQs]] Frequently Asked Questions
  
 
==Audience: Web Designers==
 
==Audience: Web Designers==
 
Web designers are those people tasked with creating a Joomla! website that will later be looked after by an administrator.  These people can be assumed to know about HTML and CSS but may have only minimal knowledge of PHP.
 
Web designers are those people tasked with creating a Joomla! website that will later be looked after by an administrator.  These people can be assumed to know about HTML and CSS but may have only minimal knowledge of PHP.
  
* Creating clickable background images using CSS.
+
* [[Accessibility]]
* There is quite a lot for web designers in the [[Joomla! 1.5 Template Tutorials Project]].
+
* [[Beez]] - an accessible default template
 +
* [[Creating clickable background images using CSS]].
 +
* There is quite a lot for web designers in the [[Joomla! 1.5 Template Tutorials Project]]. In particular, look at the [[Outline for Template Tutorials]].
 +
* [[jdoc statements]] for templates
 +
* Modify the [[favicon]]
  
 
==Audience: Core Developers==
 
==Audience: Core Developers==
Line 44: Line 98:
  
 
* Developer guidelines.
 
* Developer guidelines.
* Participating in the community: a brief description of how people can get involved.
+
* [[Participating in the community]]: a brief description of how people can get involved.
 
* Coding style and standards.
 
* Coding style and standards.
 
* Secure coding guidelines.
 
* Secure coding guidelines.
 
* Error message conventions.
 
* Error message conventions.
 
* Exception handling.
 
* Exception handling.
* Patch submission guidelines.
+
* [[Patch submission guidelines]].
* Filing bugs/issues.
+
* [[Filing bugs and issues]].
* How to release a distribution tarball.
+
* [[How to release a distribution tarball]].
 
* Release numbering, compatibility and deprecation.
 
* Release numbering, compatibility and deprecation.
* Localisation (L18N): an explanation of how localisation is implemented in Joomla! 1.5 and how to use it.
+
* [[Localisation]] (L18N): an explanation of how localisation is implemented in Joomla! 1.5 and how to use it.
 
* [[Routing]]: how it works and how to use it
 
* [[Routing]]: how it works and how to use it
  
Line 64: Line 118:
 
** Recommend material to be migrated over to docs.joomla.org
 
** Recommend material to be migrated over to docs.joomla.org
 
** Update material that is to be migrated over to docs.joomla.org
 
** Update material that is to be migrated over to docs.joomla.org
* How to debug your code.
+
* [[How to debug your code]].
 
** Write a tutorial giving debugging tips for new developers.  Perhaps list different kinds of problems code might have and suggested approaches to locating the problem and fixing it.
 
** Write a tutorial giving debugging tips for new developers.  Perhaps list different kinds of problems code might have and suggested approaches to locating the problem and fixing it.
* Creating custom XML Parameter Types.
+
* [[Using the core parameter types]] (To be reviewed)
 +
* [[Creating custom XML parameter types]].
 
** Write a document detailing the steps to creating a custom XML Parameter type.  Explain how these types can be used in templates, modules, components and plugins.
 
** Write a document detailing the steps to creating a custom XML Parameter type.  Explain how these types can be used in templates, modules, components and plugins.
* Creating component preferences.
+
* [[Creating component preferences]] (ready for review).
 
** Write a document describing how to create an xml file for modifying component preferences and how to add a Parameters button to an administrator toolbar.
 
** Write a document describing how to create an xml file for modifying component preferences and how to add a Parameters button to an administrator toolbar.
* Adding JavaScript and CSS to the page.
+
* [[Adding JavaScript and CSS to the page]].
 
** Write a document describing how to add JavaScript and CSS to the page.  Explain how to decide whether JavaScript should go in the head block or in the page itself and how to insert the JavaScript.
 
** Write a document describing how to add JavaScript and CSS to the page.  Explain how to decide whether JavaScript should go in the head block or in the page itself and how to insert the JavaScript.
* Accessing the current user object.
+
* [[Accessing the current user object]].
 
** Write a document describing how to access the current user object and also indicate what type of information can be found in the object, and how that data should be retrieved and/or set.
 
** Write a document describing how to access the current user object and also indicate what type of information can be found in the object, and how that data should be retrieved and/or set.
* Adding AJAX to your component.
+
* [[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).
 
** 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).
* Using JPagination in your component (frontend and backend).
+
* [[Using JPagination in your component]] (frontend and backend).
 
** Describe the steps necessary to add pagination to a component using the JPagination class.  Describe the differences between frontend and backend.
 
** Describe the steps necessary to add pagination to a component using the JPagination class.  Describe the differences between frontend and backend.
* Creating a toolbar for your component.
+
* [[Creating a toolbar for your component]].
* Adding configuration objects to modules and plugins.
+
* [[Adding configuration objects to modules and plugins]].
* Storing data in the session between page loads.
+
* [[Storing data in the session between page loads]].
* Using the caching system in your component.
+
* [[Using the caching system in your component]].
* Creating a file uploader in your component.
+
* [[Creating a file uploader in your component]].
* Suppressing output of extra HTML.
+
* [[Suppressing output of extra HTML]].
* Supporting plugins in your component.
+
* [[Supporting plugins in your component]] (Ready for review).
 
** Explain how to add triggers so that your component can fire custom events.
 
** Explain how to add triggers so that your component can fire custom events.
* Adding Multi-language support.
+
* [[Adding multi-language support]].
* Retrieving data from the GET and POST requests - the Joomla! way.
+
* [[Retrieving data from GET and POST requests]] - the Joomla! way.
* Adding view layout configuration parameters.
+
* [[Adding view layout configuration parameters]].
 
** Explain how to create an XML file that will allow users to configure views.
 
** Explain how to create an XML file that will allow users to configure views.
* Using the installer API to support package installation.
+
* [[Using the installer API to support package installation]].
 
** Explain how to use the JInstaller API to install add-ons to components
 
** Explain how to use the JInstaller API to install add-ons to components
* How to Implement XML-RPC in a component
+
* [[How to implement XML-RPC in a component]]
 
** There are two ways to do this:
 
** There are two ways to do this:
 
*** Implement it using an XML-RPC plugin
 
*** Implement it using an XML-RPC plugin
 
*** Implement it in the component itself using raw views
 
*** Implement it in the component itself using raw views
* How and when to use the filesystem package
+
* [[How to use the filesystem package]]
* How to use the Filter 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)
 
** 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 the registry package]]
* How to Use JSimpleXML
+
* [[How to use JSimpleXML]]
 
** How to load and store XML files and how to work with them
 
** How to load and store XML files and how to work with them
* How to Use JDate
+
* [[How to use JDate]]
 
** What JDate does and how to use it...
 
** What JDate does and how to use it...
* How to add CSRF Anti-Spoofing to Forms
+
* [[How to add CSRF anti-spoofing to forms]]
 
** How to use JHTML::_( 'form.token' ) and token checking to secure components
 
** How to use JHTML::_( 'form.token' ) and token checking to secure components
* How to Add Breadcrumbs
+
* [[How to add breadcrumbs]]
* How to Use the JTable class
+
* [[How to use the JTable class]]
* How to create Component Feeds (RSS/ATOM)
+
* [[How to create component feeds]] (RSS/ATOM)
* How to Create PDF Views
+
* [[How to create PDF views]]
* How to Send Email From Components
+
* [[How to send email from components]]
* What's Available in the JFactory Class
+
* [[What's available in the JFactory class]]
* How to Generate Paths for Client side and Server side
+
* [[How to generate paths for client side and server side]]
* How to Access Information from the Request/Browser
+
* How to access information from the request/browser
* How to Create a Search Plugin
+
** This focuses on using the JBrowser class to retrieve information about the features available in the user's browser.
* How to Create a Content Plugin
+
* [[How to create a search plugin]] (To be reviewed)
* How to Create an Editor Plugin
+
* [[How to create a content plugin]] (To be reviewed)
* How to Create a System Plugin
+
* [[How to create an editor plugin]]
* What can be done with a User Plugin
+
* [[How to create a system plugin]]
* How to Create a Module
+
* [[What can be done with a user plugin]]
* How to Create a Stand-Alone Application Using the Joomla! Framework
+
* [[How to create a module]]
* How to Work With Parameters
+
* [[How to create a stand-alone application using the Joomla! Framework]]
* How to Use the JToolBar Class in the Frontend
+
* [[How to work with parameters]]
* How to Create a Custom Button
+
* [[How to use the JToolBar class in the frontend]]
* How to use the Editor in a Custom Component
+
* [[How to create a custom button]]
* How to use the JPane Classes in a Custom Component
+
* [[How to use the editor in a component]]
* How to Cloak Email Addresses
+
* [[How to use the JPane classes in a component]]
 +
* [[How to cloak email addresses]]
  
 
==Audience: Testers==
 
==Audience: Testers==
Line 144: Line 200:
 
This is meta documentation for use by the Documentation Working Group and other documentors.
 
This is meta documentation for use by the Documentation Working Group and other documentors.
  
[[MediaWiki setup notes]]
+
[[Project:MediaWiki setup notes|MediaWiki setup notes]]
  
 
==License==
 
==License==

Revision as of 16:04, 25 November 2011

Instructions

Below is a list of tasks, categorised by intended audience. There will be overlap so treat this as a rough guide only. Please feel free to add new topics to this list.

To start writing on a topic, change the item in this list into a link (unless it's already a link of course!). To do this you simply surround the text by a pair of square brackets. For example, to make "text" into a link, change it to "[[text]]". Save your change. The link text should now appear in red. Click on this new link and you will be taken to an editor screen for the new page. Enter your new topic text and click save. Simple as that. If you encounter any problems, ask for help on the IRC channel.

When you begin editing a page please add {{inuse}} to the top of the page before you start working on it so that others do not create conflicting changes to the same page. And don't forget to remove it again when you have finished! Thank you.

Reference Information
  • If you are new to MediaWiki then you should consult the User's Guide for information on using the wiki software.
  • List of local wiki templates that can be used in your wiki pages. Templates reduce repetition and are the basis of modular documentation.
  • List of local wiki extensions that have been installed on this wiki. Extensions provide additionally functionality to the wiki such as syntax highlighting and conditional expressions.
  • List of local interwiki links that are available on this wiki. These provide useful shortcuts to creating URLs to other websites including the Joomla! forum, help screens and issue tracker; as well as links to the PHP documentation or Wikipedia.
  • Please read the Joomla! Editorial Style Guide and the list of words to watch.

Contents

Where to start

Looking for a topic to write about? Well, for small tasks look in the Cookie Jar (below).

There are lists about:

Otherwise, look down this page and browse the links. Red links are empty pages. If there is a topic that you feel we have missed then feel free to add it here.

Doc Camp Cookie Jar

This is a list of small tasks that should be quick to get done and might be a good introduction to working on the documentation.

We need some basic information on the following pages. Looking for a simple definition of the term with links to further information if required.

Audience: Users/Administrators

Users are visitors to a Joomla! website; administrators are people who install and maintain the website. The assumption is that these people will not know how to write code.

Audience: Web Designers

Web designers are those people tasked with creating a Joomla! website that will later be looked after by an administrator. These people can be assumed to know about HTML and CSS but may have only minimal knowledge of PHP.

Audience: Core Developers

By "core developers" we mean developers who are contributing to the Joomla! core distribution which includes the core extensions as well as the Framework.

Audience: Third-party Developers

By "third-party developers" we mean developers who are working on extensions to Joomla! (components, modules, plugins and templates) which are made available separately from the Joomla! distribution.

Audience: Testers

These people may be testing functionality from a user perspective; or they may be developers testing the code itself.

  • Automated testing.

Audience: Various

Stuff that pertains to multiple audiences.

Audience: Documentors

This is meta documentation for use by the Documentation Working Group and other documentors.

MediaWiki setup notes

License

License

The contents of this wiki are subject to copyright law and are made available under the Joomla! Electronic Documentation License (JEDL) unless otherwise stated. You may find the JEDL Frequently Asked Questions useful in determining if your proposed use of this material is allowed. If you have any questions regarding licensing of this material please contact legal@opensourcematters.org. If you wish to report a possible violation of the license terms for the material on this site then please contact legal@opensourcematters.org.