Joomla course for beginning developers
Note
Please note that the content on this page is currently incomplete. Please treat it as a work in progress.
Contents[hide] |
Course Introduction
Prerequisites
- Solid understanding of how to install and configure Joomla! core and third party extensions
- Basic understanding of website administration, including how to install and configure PHP, Apache, and MySQL and how to backup and restore a Joomla! database and website
- Working knowledge of XHTML and CSS
- Either some programming background or a willingness to work harder to learn the basics. Other than that, the Joomla! Beginner Developer Course assumes you come ready to learn with nothing more than basic computing and Joomla! knowledge.
Costs
There is no cost for the course. All recommended tools are freely available. Students are expected to have a computer with Internet access. Work will be performed on the student’s computer or using Joomla! org resources (at no charge).Overview
The six week course will offered to a group with no more than 10 participants. Each student will work independently on course reading assignments and exercises. The group will proceed together, meeting frequently using Skype and Joomla! forum postings, helping one another learn and answer each other’s questions. It is hoped that each group will improve the curriculum and documentation for the community.Sign up
- xxx
Week 1 – Communication, IDE, MySQL and PHP Basics
Welcome to Week 1 – Communication, IDE, MySQL and PHP Basics, a six week Joomla! Development for Beginners course. During the first week of the course, you will install and configure an IDE and communication tools needed. In addition, if you have not learned PHP or MySQL, or if you wish to brush up on your skills, there are guides available for that purpose.Communication
The group will use the Joomla! forums and Skype for communication.Joomla! Forums
Make certain to register for a Joomla! Forum ID, if you do not already have one. Also, familiarize yourself with the forum rules. The Joomla! Coding 101 forum area is a place to discuss this curriculum and other beginning Joomla! developer topics.#joomla-dev on freenode.net
To talk about Joomla in code, join the channel on IRC described on the Joomla! Developer Network page.Discontinued: Skype Chat Room for Joomla! Developers
There used to be a Skype public chat room for Joomla! developers, but since Skype discontinued the public chat feature the room is no longer available.Integrated Developer Environment
An Integrated Developer Environment (IDE) is a collection of tools designed to help a developer. Typically, an IDE includes a source code editor, a compiler and/or interpreter, a debugger and a version control system.Select the appropriate choice for your operating system:
MySQL Fundamentals
Joomla! uses MySQL as the underlying database management system. If you have little or no experience working with MySQL or SQL in general, work through the SQL Tutorial from W3Schools. There are interactive opportunities for you to practice your learning using their database and website.PHP Fundamentals
Joomla! is an application developed using PHP. PHP is a server side scripting language well suited for web site development. If you have little or no experience working with PHP, take time to work through both these excellent tutorials:- PHP Tutorial from W3Schools (Basic, Advanced, Database sections)
- PHP 101: PHP For the Absolute Beginner.
Week 2 - Object Oriented Programming
Welcome to Week 2 - Object Oriented Programming, a six week Joomla! Development for Beginners course. Joomla! is built using object oriented programming techniques. If you are unfamiliar with OOP, this week focuses exclusively on that topic.Fundamental concepts
Object oriented programming has a language and terminology that is important to understand. Read the Fundamental concepts section of this Wikipedia article to begin learning terms like class, object, method, message passing, inheritance, encapsulation, abstraction and polymorphism.Getting Started with OOPs
Use this easy to follow Getting Started with Object Oriented Programming guide on object oriented programming language using real world examples that make it easier to understand these advanced concepts. Work through his guide and carefully consider the examples.Object Oriented PHP
If you are new to object oriented programming approaches, or have not used these approaches with PHP, or if you want to refresh your skills, NefariousDesigns has an excellent five part curriculum entitled **Object-Oriented Concepts** and a four part curriculum on **Object-Oriented PHP** that will help you understand these programming approaches.- Object-Oriented Concepts
- Object-Oriented PHP Part 1: Definition
- Object-Oriented PHP Part 2: Relationships
- Object-Oriented PHP Part 3: Taking Relationships Further
- Object-Oriented PHP Part 4: PHP5’s Improved Features
Week 3 - Joomla! Developer Basics
Welcome to Week 3 - Joomla! Developer Basics, a six week Joomla! Development for Beginners course. This week, you will learn to program a simple module, component and plugin. Then, you will begin exploring Joomla!'s framework and classes.Definitions
Before learning to build modules, components and plugins, it helps to understand how these are different and when you might use each of these items. Read the Extension types (technical definitions).Module
A module is an extension used for to display simple information. Latest News is an example of a module. Complete this module tutorial to learn how to create a Hello World module.Component
A component is the most complex extension type. Every Joomla! page has a component that renders the main part of the page. com_content is the primary component that is used to display article and blog information. Walk through these component tutorials:-
- Chris and Ian - there are two more that need completion. Should we work on these?**
Plugins and events
A plugin is typically the simplest type of extension. Follow this Plugin Tutorial to learn how to build a Joomla! v 1.5 Plugin.Week 4 - MVC Component and Custom URLS
Welcome to Week 4 - MVC Component and Custom URLS, a six week Joomla! Development for Beginners course. This week, you explore Joomla!'s MVC application architecture and you will learn to implement a router for your component.Model-View-Controller
Finally, the model-view-controller (MVC) architecture. You will learn to separate your component into these three pieces: the data (model), the user interface (view) and the controller.Developing a Model-View-Controller Component - Part 1 is the first part of a tutorial on creating MVC components.
Creating Custom URLs
In Joomla! 1.5, the URL was completely refactored. Joomla! is now capable of creating and parsing URLs in any format, including human readable URL's. Learn to use JRouter to Create Custom URLs for your component.Creating an Installation File
One of the final steps to building a component is learning to package it into an easy to use installation file for end users. Create an Install File-
- Ian and Chris - should we work on this?**
Week 5/6 Learning Project
Secure Extensions
Before creating extensions, make certain to review recommended security tips.Learning Project
Now that you have basic skills, work individually or as small teams and build something. You can pick an extension idea and use it to create a Joomla! extension. Or, you can invent your own idea. Try to keep it simple for your first couple of extensions. The more you practice these skills, the better you will become. Don't be afraid to ask questions, either.JoomlaCode
- [Http://joomlacode.org Get an ID on JoomlaCode]
- Read FAQ
- Ask Questions on JoomlaCode here
Joomla! Extension Directory
- Register and Get an ID on JED
- Read and follow rules
- Read the Instructions for using the site
- Ask questions about JED
Graduation!
After completing the six-week course, you will have only started your journey. Once a week, we will schedule an hour for a mini-lesson that a growing group of Joomla! developers can take turns teaching.During this weekly get together, ideas and questions can be shared to help engage and strengthen the developer network. Perhaps the core developers might take turns sitting in and share status information or helpful hints.
Framework and Classes
Is the following BEYOND this class?Joomla! has a complex and powerful application framework.
- Overview and Packages http://dev.joomla.org/content/view/1137/80/
- Study the packages and classes by looking at your Joomla! v 1.5 installation (Question – do these need to be updated?)
- JObject by jbruni
- JApplication
- JError
- JDatabase and Accessing the database using JDatabase
- Element list (classes, methods and properties) for Joomla! Framework (Ian provided – Question – can we have a couple of examples of how it would be used by a developer?) http://api.joomla.org/elementindex_Joomla-Framework.html
No comments:
Post a Comment