joomla - cms
TRANSCRIPT
blue_half_circle_with_transparency
Dasun Hegoda
Software Engineer
About Me
Dasun Hegoda
Joomla Experience : 3 Years
I'm Gonna Talk About
Few Interesting Facts About Joomla
CMS, Examples, Comparison
Introduction To Joomla
Joomla Features
Latest & Greatest Joomla 3.2 & It's New Features
Joomla Versions
Joomla Extensions
I'm Gonna Talk About
Joomla Architecture & Execution Flow
Joomla Performance
Joomla Myths
Joomla Pros & Cons
Joomla Vulnerabilities & How To Fix
Where To Start
Why Study Joomla
Governments are using Joomla joomlagov.info/
Nearly 7400 extensions for Joomla! - extensions.joomla.org/
Joomla.org exceeds 2 TB of traffic per month
Over 210k active registered users on the Official Joomla community forum
Why Study Joomla
Google and Yahoo have estimated the number of websites using Joomla to be around 30 million.
Over 35 million downloads of Joomla
In the last six months(September 2012 February 2013)Joomla 3.0: 796,340 (about 133k per month)
Joomla 2.5: 1,725,268 (about 288k per month)
Let's Start!!!
What's a CMS
A content management system (CMS) is a computer program that allows publishing, editing and modifying content.
CMSs are often used to run websites containing blogs, news, and shopping.
CMSs typically aim to avoid the need for hand coding.
CMS Examples
Let's see which one is the most popular
Let Me Explain
Drupal is a full-fledged, enterprise grade CMS. Its recommended for large projects where stability, scalability and power are prioritized over ease of use and aesthetics.
Joomla is a good option for small to enterprise grade CMS.
WordPress is often called a mini CMS. It isnt nearly as powerful or capable as Drupal or Joomla, easy to use blogging solution that looks good and can accommodate multiple authors easily.
Stop! Think-A-Min
Drupal - Steep Learning Curve, Lack of Free Plugins, Very Heavy, Big Cost
WordPress Security, Limited Design Option, Limited Content Management Capabilities, Less Flexible
Joomla is perfect in every angle.
Introduction To Joomla
Joomla is a free and open-source content management framework for publishing web content. It is built on a modelviewcontroller web application framework.
Joomla is written in PHP, uses object-oriented programming (OOP) techniques and software design patterns, stores data in a MySQL, MS SQL or PostgreSQL database.
Introduction To Joomla Cont
Mambo and Joomla are similar because they originated together, and then split into two communities and code bases in late 2005 when Joomla forked off from Mambo and they seperated. Because of the fact that Mambo is older, it's code base is clunkier and more cluttered.
www.mamboserver.com
If A Picture Is Worth A Thousand Words, How Many Words Is A
Movie Worth?
So Who's Using Joomla?
Harvard University Gsas.hardvard.edu
Crime Agency(U.K. Gov) - nationalcrimeagency.gov.uk
Linux Linux.com
Epson erd.erdvdc.com
MTV Greece Mtvgreece.gr
Yahama mx.yamaha.com
ICTA icta.lk
and Many More
Why Joomla?
Features
Content Management
Template Management
User Management
Media Manager
Language Manager
Banner Management
Contact Management
Menu Manager
Features Cont
Integrated Help System
System Features
Web Services
Syndication and Newsfeed Management
Web Link Management
Search
Polls
Powerful Extensibility
Secret Features
Joomla Debugging
Offline Mode Maintenance
Multi Database Support
WYSIWYG Editor Customization
Why Joomla 3 Is Sooooo Special ?
What I Think About Joomla 3
New Libraries
Improved UI Responsive, Simple Admin
Extra Functions
Security - Two Factor Authentication, Bcrypt
Debug- SQL Explain, Profile & Call Stack
RAD Minimal Code
Content Version Control
UX Improvement
Two Factor Authentication
Content Version Control
SQL Explain
Profile
See it yourself
http://community.joomla.org/blogs/community/1777-joomla-32-video-tutorials.html
If A Picture Is Worth A Thousand Words, How Many Words Is A
Movie Worth?
Let's See What Officials Say
Joomla Versions
LTS(2 Years) VS STS
1.0 in 2005-September
1.5(LTS), 1.6, 1.7, 2.5(LTS), 3.0, 3.1
3.2 Now
3.5 (LTS) 2014-March
docs.joomla.org/Joomla_3.0_FAQ#I.27m_building_a_brand_new_site._Should_I_launch_a_Joomla.21_2.5_site_or_a_3.0_site.3F
Past Releases
Future Releases
If A Picture Is Worth A Thousand Words, How Many Words Is A
Movie Worth?
Joomla Extension
Basic Parts(Extension types)
Components
Modules
Plugins
Templates
Components
Components are the largest and most complex extensions of them all, They can be seen as mini-applications. Most components have two parts: a site part and an administrator part. Every time a Joomla page loads, one component is called to render the main page body.
Content (com_content), Banners (com_banners), Contact (com_contact), News Feeds (com_newsfeeds) and Web Links (com_weblinks)
Modules
Modules are more lightweight and flexible extensions used for page rendering. These modules are mostly known as the boxes that are arranged around a component.
Banners (mod_banners), Menus (mod_menu), Who's Online (mod_whosonline)
Plugins
Plugins are more advanced extensions and are in essence event handlers. In the execution of any part of Joomla, be it the core, a module or a component, an event can be triggered. When an event is triggered, plugins that are registered with the application to handle that event execute.
Content - Load Modules, Editor - TinyMCE
Template
A template is basically the design of your Joomla! powered website. With a template you can change the look and feel of your website. Templates have certain fields in which the component (just one) and modules (as many as you like) will be shown. Templates are easy to build or customize and they provide maximum flexibility in how you style your site.
Template Examples
CMS Architecture
CMS Architecture
Extensions layer, consists of Extensions(Components, Templates, Modules)
Application layer, consists of applications that extend the Framework JApplication class. Jinstallation, Jadministrator, Jsite, XML-RPC.
Framework layer, consists of the Joomla! Framework, Libraries that are required by the Framework or are installed for use by third-party developers. Plugins extend the functionality available in the Framework.
Joomla Folder Structure
Joomla Folder Structure
root: Once installed Joomla, this index.php page will detect your settings in the configuration.php file and execute your main Joomla engine.
administrator: In this directory you find all files for your Joomla administrator web interface (components, templates, modules, plugins, etc).
cache: This folder holds Joomla cache files. To accelerate performance
components: This directory holds all Joomla components
images: This folder by default holds images used for your extensions
Joomla Folder Structure Cont
language: This folder holds all language files. Joomla stores translations in a simple INI-based file format.
libraries: this directory holds your entire Joomla system and third-party libraries used in your website. A Joomla website uses the core libraries contained inside the \libraries folder.
logs: Where Joomla stores its log files.
media: Default folder to store media files. It may contains files related with user interfaces, such as: JavaScript libraries, flash files, etc.
modules: This folder contains all installed front-end modules. It holds the modules available for display by a template.
Joomla Folder Structure Cont
includes: In this directory you find core files of Joomla
installation: This folder contains needed files for Joomla installation. It should be deleted after installed Joomla.
plugins: It contains all your plugins files. As well as components and modules, plugins are a type of add-on extension.
templates: This directory has all your frontend template files.
tmp: This folder stores temporary files and cookies that are used by the administrator and user interface of Joomla. Most of time, extensions files are copied to this folder during Joomla installation process.
Execution Flow
Execution Flow Cont
Load once: defines.php
Load once: framework.php
Profile mark: afterLoad
Call to Jfactory::getApplication('site')
Call to Jsite::initialise
JpluginHelper::importPlugin('system')
Profile mark: afterInitialise
Trigger events: onAfterInitialise
Execution Flow Cont
Route the URI: Call to JSite::route
Profile mark: afterRoute
Trigger events: onAfterRoute
Dispatch the component: Call to JSite::dispatch
Profile mark: afterDispatch
Trigger events: onAfterDispatch
Execution Flow Cont
Render the page: Call to JSite::render
Profile mark: afterRender
Trigger events: onAfterRender
Echo output: Call to Jresponse::toString
Render the page: Call to JSite::render
Profile mark: afterRender
Trigger events: onAfterRender
Echo output: Call to JResponse::toString
Joomla Performance
Template Optimization
All Components Are Not Good Components
Enable Caching
Find The Bad Queries
Optimize Your Database(Schema, Indexing)
Follow Best Practices(OOP, Design Patterns)
Use Joomla Debugging
Joomla Myths
Joomla Myths
Joomla is only for small sites
Legacy mode is bad for your site
Joomla has insufficient SEO
Joomla is for end users, not developers
Template will be mobile ready
A Silver bullet - will make my life easier
Joomla cant compete with commercial tools.
Joomla Pros
Joomla Pros
Free & Open Source
Full Fledged CMS
Power, Robust & Well Tested
Extensions Components, Modules, Plugins, Themes
Small Learning Curve
Future Proof Content Responsive Design, jQuery
Joomla Pros Cont
Scheduled Content
Social Media Integration
Multiple User Collaboration
Easy To Manage
Community Support
Security
Multi-Lingual Support
Joomla Cons
Joomla Cons
Limited Flexibility
Migration Joomla 1.5 Joomla 3.2
Security Open Code
Extension Compatibility
Limited ACL Support is being fixed
Unnecessary Extensions
Joomla(CMS) Need To Be Upgraded
Vulnerabilities
A weakness which allows an attacker to reduce a system's information assurance
Different versions have different issues & most of them are solved.
Vulnerability could exist due to an extension.
docs.joomla.org/Vulnerable_Extensions_List
Report : vel.joomla.org
How To Fix
How To Fix
Use The Latest Joomla Security Update
Keep Extensions Updated
Applied Server Level Security
Follow Best Practices In Coding
Delete The Joomla Templates That You Do Not Use
Write-Protected Your Joomla Configuration File
Where To Start???
Where To Start
docs.joomla.org
developer.joomla.org
hiddenjoomlasecrets.com
Youtube
Autor: 17.03.14