2. What's Joomla's History?
Joomla forked from Mambo due to licensing and
oversight concerns in 2005. Joomla is today
overseen by Open Source Matters, Inc. OSM is
a US-incorporated non-profit organization.
OSM's website is at opensourcematters.org.
The entire award-winning development team
behind Mambo moved to Joomla, and is today
led by Johan Janssens.
3. Joomla! System Requirements:
* PHP 4.2.x or above
* MySQL 3.23.x or above
* Apache 1.3.x or above
What does this mean?
Joomla is compatible with a wide variety of
LAMP-equipped servers.
4. Joomla! Releases
Joomla 1.0.13 (Sunglow)
“Legacy” version; still compatible with Mambo.
Maximum compatibility with 3rd Party Ext.
Joomla 1.5 RC 2
Refactored code base, numerous core
upgrades, including SEO, account security, and
more.
Not yet 1.5 Final.
1.0.X “Legacy” mode for compatibility.
5. Official Joomla Websites:
Main Site: www.joomla.org
Support Forums: forum.joomla.org
Extensions Directory: extensions.joomla.org
Joomla! Community By The Numbers:
1,000,000+ Support Forum Posts
199,000+ Support Forum Topics
133,000+ Forum Members
2,100+ Third-Party Extensions
6. Joomla Nomenclature:
Add-ons are differentiated by function. They can
be organized into three broad categories:
Components: Components are extensions that extend
the capability of the system beyond content
management. They generally have administrative
options particular to their operation that can be edited
under the “Components” menu. Output from
components is generally displayed in the website's main
body.
7. Joomla Nomenclature: (continued)
Modules generally control the “blocks” available
as “sidebar” content; they can display limited
aspects of the output from components.
Plug-ins (aka Mambots): These extensions
make alterations to system functions to attain
specific goals.
8. Simple Installation
Requires valid mySQL username/password.
Untar archive, copy/FTP to appropriate docroot.
Run through installer routine by visiting your site.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25. Templating with Joomla!
Joomla's templating system simply wraps HTML
and CSS around the internal PHP calls that pull
in the dynamic content.
26.
27.
28.
29.
30.
31. What have we learned so far?
Joomla History and Nomenclature
Joomla system requirements
Joomla installation procedure
Joomla Administrator Panel organization
Joomla Templating
32. What's left to cover?
Joomla Extensions for Content-oriented sites
Joomla Extensions for E-Commerce sites
General Purpose Joomla Extensions
Real World Joomla installs
Sponsor Thanks & Acknowledgements
One more thing
33.
34. Adapting Joomla to specific needs
Content-driven sites
E-commerce driven sites
35. Content-driven Communities with Joomla!
Let's define some traits common to online
communities:
User Profiles and detailed account information
Forums/Message Boards
User subscriptions
Differing subscription levels (up-sell from free
membership to paid membership)
36. User Profiles and Account Information
Extension: Community Builder
Adds additional information fields to user
accounts.
Allows membership listings with complete
profiles (a la MySpace)
Integrates with a wide variety of other third party
extensions, including forums, newsletter
components, private messenging, and more.
Highly customizable
37.
38.
39. Forums and Message Boards
Several forum solutions exist for Joomla, both
native extensions, and “bridge” components
integrating Joomla with other popular packages,
such as phpBB, SMF, and vBulletin.
One popular Joomla-native forum solution is
Fireboard.
40.
41.
42. Offering Subscription-based access to content
Account Expiration component
JACL (Joomla Access Control Level)
Account Expiration allows you to offer
subscriptions, and accept payments for such via
PayPal, WorldPay, 2CO, Merchant Gateway,
and more.
43. Subscription solutions (continued)
Joomla Access Control Level (JACL) allows for
the creation of additional user groups, thus
allowing either multiple subscription tiers, or
“free” and “members-only” access.
44. Subscription solutions (continued)
Both Account Expiration and JACL integrate with
Community Builder.
JACL-style functionality is due to be included in
the forthcoming Joomla 1.5.
45. Monetizing Content
A multitude of Joomla extensions exist for:
Image-based banner ads
Text-based ads, such as Google AdSense
Affiliate Marketing
Amazon.com
Donations/Tip Jars
Subscription Podcasting
Plug-ins/Mambots: A common example is a plug-in that integrates the search functions for a particular component into Joomla's main search function. In essence, plug-ins simply extend existing functionality or add features.
Certain directories under Joomla must be writeable by the HTTPD user in order to work properly. This applies particularly to components that store data in the docroot rather than the database, such as the Media Manager, the Component, Module, and Mambot installers, as well as many common third-party extensions. There is an official FAQ for Joomla and Security issues available here: http://help.joomla.org/component/option,com_easyfaq/task,view/id,167/Itemid,268/
I would pay good money to get Jon “Mad Dog” Hall to SING the GPL. I think he'd have a better singing voice than Richard Stallman.
After this screen, the installer simply asks the administrator to specify their preferred login credentials and contact information.
Security Issues with Joomla! Obey the Installer, and Remove /installation directory after install!! Security Issues are primarily caused by faulty third-party extensions Monitor httpd logs, bandwidth logs, and search terms for your site, in addition to traditional Linux intrusion detection & defense techniques to catch emerging threats before they hit your site.
We can see here that we've got a traditional top menu of options with drop-downs, a sort-of quick-launch area of frequently needed tools, and a status panel informing us of current logins, and other information regarding our site's articles and content.
The SITE menu contains several major options: Global Configuration: Contains the variables from configuration.php. Language Manager: Allows switching between languages. Media Manager: Allows for storage of images and media, which are then easily retrievable for insertion into content. Template Manager : Allows editing and customization of the HTML and CSS of the site's front-end. Trash Manager: Just like your Trash icon (Recycle Bin). Provides an extra precaution against accidental deletion of content. User Manager: Allows administrative access to user account information and modification, can be superceded by CommunityBuilder, which will be discussed a bit later.
The Menu....menu provides access to Joomla's menu system. You can add, modify, or delete menu items, including links to components, quickly and easily. Menus are displayed via special modules which are published and ready by default
Here we see the various options for content control. Note that the two main levels of content organization are Sections and Categories . Sections are subdivided into categories. Static Content is a special category that includes all articles will be permanent to the website, rather than rotated out for fresher content. Common examples here are policy/terms-type pages and instructional or sales content.
Here we see the expected range of options for controlling the ordering and presentation of our content items. We can set them to publish to the site's frontpage, or only be accessible via a category or section link in a menu. To control the content items themselves, we simply click the title or checkmark and click “Edit”.
Content items are edited within their own javascript-based WYSIWYG editor, with an Options pane to the right. The full range of options are available, or the writer can manipulate the HTML of the content directly. There are also a pair of windows for entering “Intro” and “Main” text, so you can shorten the presentation of your articles on the site's frontpage or content section into concise synopses which prompt the user to “Read More”. (ie, very similar to the conventional blog mindset in content organization.)
True story: I was asked to write a short administrator manual for a large corporate client. I'm a firm believer in writing documentation from a human perspective, so I included this little joke. Anyhow, this screenshot shows an actual content item being edited; the table borders are visible and changeable, as are all the other attributes, including the image.
And here's what the article looks like, with some minimal, elegant CSS applied. I'm still waiting on Steve Jobs to get back to me on this idea. Said a check was coming any day.
Individual administrative settings and configuration for our components can be found here.
Under the Modules menu, we can select “Site Modules”, or “Administrative Modules”. We will most typically be dealing with Site Modules. Here's the listing. Note that we can change the ordering of the modules within various Module Positions. We'll delve deeper into that momentarily. I won't cover the remaining sections in the administrator's panel, because of both time constraints and the fact that plugins can be both fairly advanced and fairly narrow in scope. Installing new add-ons into Joomla is very easy: You simply select the appropriate extension to install (component, module, or mambot) and upload the appropriate zip or tarball. The installer will extract the contents, read the enclosed XML file, and take the appropriate actions, copying the new extension into the appropriate part of the document tree and adding database tables and entries as appropriate.
Creating templates with Joomla is very easy, as we'll see in the next few slides as I create a Joomla site entirely from scratch. As this is only a fifty-minute speech, our site will look like it came straight out of 1995, but it will be a dynamic, database-driven 1995 website. :) The critics in the audience should also note that I finished this demonstration from Joomla installation to “completed” template in seven minutes. For those of you with existing websites you'd like to convert to being database-driven, this serves to illustrate how quickly you can adapt your existing HTML and CSS into Joomla without massive overhauls.
These are the default templates that come with Joomla. I've modified the first, “madeyourweb” to the truncated example we'll look at in the next slide. The important thing to note here is that we can assign templates to various pages, via the “Assign” dialog. This means we can use multiple page layouts within the same site, if we so choose.
And here's the HTML for this brief demonstration. That's all there is too it. Joomla does the rest of the work, as we'll see momentarily.
Here I've got the HTML color-coded. The stuff needed to run Joomla is in red, the extremely minimal HTML I used to cobble together a quick-and-dirty template is in blue. When I'm building a template, I generally just copy-paste the top part from one of the default templates, then copy-paste all the HTML from the <body> tag down from my HTML mockup, which I generally do in Dreamweaver or a text editor.
Here we see the CSS markup from one of the default templates, which for the purposes of expediency I've retained in my brief template demonstration. The CSS is pulled in by a dynamically-constructed HTML tag in the HTML portion of the template.
And here we see the end result, seven minutes later. Obviously, with more planning, design savvy, and care, we can see just how easily we can have both a visually-attractive website and one that is also dynamically-generated. Joomla doesn't bind you into particular layouts or formats the way many other CMS packages do. Your design outcome is limited only by your creativity and capabilities.
Creating templates with Joomla is very easy, as we'll see in the next few slides as I create a Joomla site entirely from scratch. As this is only a fifty-minute speech, our site will look like it came straight out of 1995, but it will be a dynamic, database-driven 1995 website. :) The critics in the audience should also note that I finished this demonstration from Joomla installation to “completed” template in seven minutes. For those of you with existing websites you'd like to convert to being database-driven, this serves to illustrate how quickly you can adapt your existing HTML and CSS into Joomla without massive overhauls.
Creating templates with Joomla is very easy, as we'll see in the next few slides as I create a Joomla site entirely from scratch. As this is only a fifty-minute speech, our site will look like it came straight out of 1995, but it will be a dynamic, database-driven 1995 website. :) The critics in the audience should also note that I finished this demonstration from Joomla installation to “completed” template in seven minutes. For those of you with existing websites you'd like to convert to being database-driven, this serves to illustrate how quickly you can adapt your existing HTML and CSS into Joomla without massive overhauls. (Pause to get time and collect the tickets for drawing.)
Pause to get timestamp and to bring the tickets up to the stage for drawing.
At this point, we're going to switch gears away from looking at the inner workings of Joomla, and describe the third-party extensions that can be added to build a full-featured website from the Joomla core foundation. We're going to look at two common uses for Joomla, content-driven websites, which can obviously be for purposes ranging from individuals and hobbyists, to online zines and communities. We'll start with content-driven websites.
Official Site, Home of Community Builder. www.joomlapolis.com
Here we see Community Builder in action, right on Joomlapolis.com. I couldn't even begin to give a detailed account of everything Community Builder is capable of in this presentation; it could take up a presentation all its own! In fact, Community Builder essentially acts as a system-within-a-system, extending Joomla's functionality and essentially providing an application framework of its own. It even has its own plug-in extensions! We can see here the massive extensibility of the system, including the various functions that can be added to your users' profiles. This is hardly an exhaustive listing, and with some coaxing, it's easy to invent your own.
Fireboard is a popular forum solution for Joomla, previously known as Joomlaboard. Features:
VirtueMart allows for a highly-flexible, template-based presentation of products, with all the expected accoutrements of an e-commerce solution: Multiple Product categories Dynamic Shipping cost calculation Dynamic sales/VAT tax calculation Coupons Downloadable content PayPal IPN/API integration And more.
Installed Components: Community Builder with SMF bridge SOBI2 Directory iJoomla Magazine (Commercial component) MyBlog PU_Arcade Marketplace Classifieds and more. Jamie's even got a custom “gas prices” component.
RocketTheme is a popular pre-fab template site, offering subscription access to more than twenty slick templates at one low yearly price, releasing a new template (or sometimes two) every month. In addition to being a slick e-commerce site built in Joomla, it's also a prime example of one interesting section of the Joomla ecosphere: the now-ubiquitous template club. Many Joomla developers are making extra money by developing templates for the general public and offering them either free or by subscription.