Joomla - CMS

5,090 views
4,988 views

Published on

- 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
- Joomla Architecture & Execution Flow
- Joomla Performance
- Joomla Myths
- Joomla Pros & Cons
- Joomla Vulnerabilities & How To Fix
- Where To Start

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,090
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
529
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Joomla - CMS

  1. 1. Dasun Hegoda Software Engineer
  2. 2. About Me Dasun Hegoda Joomla Experience : 3 Years
  3. 3. 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
  4. 4. I'm Gonna Talk About Joomla Architecture & Execution Flow Joomla Performance Joomla Myths Joomla Pros & Cons Joomla Vulnerabilities & How To Fix Where To Start
  5. 5. 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
  6. 6. 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)
  7. 7. Let's Start!!!
  8. 8. 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.
  9. 9. CMS Examples
  10. 10. Let's see which one is the most popular
  11. 11. Let Me Explain ● Drupal is a full-fledged, enterprise grade CMS. It’s 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 isn’t nearly as powerful or capable as Drupal or Joomla, easy to use blogging solution that looks good and can accommodate multiple authors easily.
  12. 12. 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.
  13. 13. Introduction To Joomla ● Joomla is a free and open-source content management framework for publishing web content. It is built on a model–view–controller 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.
  14. 14. 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
  15. 15. If A Picture Is Worth A Thousand Words, How Many Words Is A Movie Worth?
  16. 16. 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
  17. 17. Why Joomla?
  18. 18. Features ● Content Management ● Template Management ● User Management ● Media Manager ● Language Manager ● Banner Management ● Contact Management ● Menu Manager
  19. 19. Features Cont ● Integrated Help System ● System Features ● Web Services ● Syndication and Newsfeed Management ● Web Link Management ● Search ● Polls ● Powerful Extensibility
  20. 20. Secret Features ● Joomla Debugging ● Offline Mode – Maintenance ● Multi Database Support ● WYSIWYG Editor Customization
  21. 21. Why Joomla 3 Is Sooooo Special ?
  22. 22. 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
  23. 23. Two Factor Authentication
  24. 24. Content Version Control
  25. 25. SQL Explain
  26. 26. Profile
  27. 27. See it yourself http://community.joomla.org/blogs/community/1777- joomla-32-video-tutorials.html
  28. 28. If A Picture Is Worth A Thousand Words, How Many Words Is A Movie Worth? Let's See What Officials Say
  29. 29. 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_b rand_new_site._Should_I_launch_a_Joomla.21_2.5_sit e_or_a_3.0_site.3F
  30. 30. Past Releases
  31. 31. Future Releases
  32. 32. If A Picture Is Worth A Thousand Words, How Many Words Is A Movie Worth?
  33. 33. Joomla Extension
  34. 34. Basic Parts(Extension types) ● Components ● Modules ● Plugins ● Templates
  35. 35. 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)
  36. 36. 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)
  37. 37. 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
  38. 38. 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.
  39. 39. Template Examples
  40. 40. CMS Architecture
  41. 41. 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.
  42. 42. Joomla Folder Structure
  43. 43. 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
  44. 44. 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.
  45. 45. 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.
  46. 46. Execution Flow
  47. 47. 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
  48. 48. 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
  49. 49. 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
  50. 50. 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
  51. 51. Joomla Myths
  52. 52. 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 can’t compete with commercial tools.
  53. 53. Joomla Pros
  54. 54. 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
  55. 55. Joomla Pros Cont ● Scheduled Content ● Social Media Integration ● Multiple User Collaboration ● Easy To Manage ● Community Support ● Security ● Multi-Lingual Support
  56. 56. Joomla Cons
  57. 57. 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
  58. 58. 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
  59. 59. How To Fix
  60. 60. 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
  61. 61. Where To Start???
  62. 62. Where To Start ● docs.joomla.org ● developer.joomla.org ● hiddenjoomlasecrets.com ● Youtube ● Google

×