SlideShare a Scribd company logo
JS, CMS, UNTANGLE THE MESS
Chris Ward
@chrischinch
DISCLAIMERS
I’m more of a PHP guy

My JS use is fairly ‘traditional’
See, i’m even using Keynote!
WHY USE A CMS?
•

Ideal for a particular job

•

Existing systems

•

Familiarity
JS, CMS, untangle the mess
THE PROBLEMS
•

Conflicts

•

Page weight

•

Non specificity
WHAT’S AVAILABLE
Lots…
JS, CMS, untangle the mess
WE WILL FOCUS ON
•

Drupal

•

Wordpress

•

Joomla!

•

Expression Engine
JS, CMS, untangle the mess
DRUPAL JS OVERVIEW
•

Started with ‘generic’, settled on JQuery

•

Currently D7 ships with JQuery 1.4.2 / UI 1.8

•

Can easily (and often is) upgraded to latest

•

Used for UI enhancements, ajax DOM manipulation
etc…

•

All js is aggregated (if turned on)
OTHER OPTIONS

Umpteen UI modules (carousels, selectors,
Modals), JSON processing, Dynamic forms,
Responsive, Masonry, Modernizr, AngularJS,
Backbone, NodeJS and many many more…
ADDING JS
drupal_add_js() - The path to your js code + some parameters.
These allow to pass settings, how JS is to be rendered, where/when
it’s to be loaded
Four sets of arrays can be passed var Drupal = Drupal || { 'settings': {},
'behaviors': {}, 'themes': {}, 'locale': {} };
MORE INFORMATION

drupal.org/node/121997
JS, CMS, untangle the mess
WORDPRESS JS OVERVIEW
•

Currently ships with JQuery 1.11, Backbone,
TinyMCE and a few other scripts

•

Can easily be upgraded to latest

•

Used for UI enhancements, ajax DOM manipulation
etc…

•

Can be aggregated through plugins
ADDING JS
wp_register_script( $name, $url,
$dependencies, $version,
$load_in_footer );
wp_enqueue_script()
wp_dequeue_script()
wp_localize_script()
OTHER OPTIONS

Umpteen UI modules (carousels, selectors,
Modals), JSON processing, Dynamic forms,
Responsive, Masonry, Modernizr, AngularJS,
Backbone, NodeJS and many many more…
MORE INFORMATION

codex.wordpress.org/Using_Javascript
JS, CMS, untangle the mess
JOOMLA! JS OVERVIEW
•

Currently ships with JQuery 1.81, Bootstrap, JQuery
UI 1.8.23 and Mootools/Joomla JS

•

Can easily be upgraded to latest

•

Used for UI enhancements, ajax DOM manipulation
etc…

•

Can be aggregated through plugins
ADDING JS
$document =
JFactory::getDocument();
$document->addScript(‘script');
JHTML::script('sample.js',
'templates/custom/js/');
OTHER OPTIONS

Umpteen UI modules (carousels, selectors,
Modals), JSON processing, Dynamic forms,
Responsive, Masonry, Modernizr,* AngularJS*,
Backbone, NodeJS and many many more…
MORE INFORMATION

docs.joomla.org/Adding_JavaScript
JS, CMS, untangle the mess
EXPRESSION ENGINE JS
OVERVIEW
•

JQuery v1.6.2?

•

Can’t be upgraded

•

Used for UI enhancements, ajax DOM
manipulation etc…

•

Assume it has JS aggregation
ADDING JS
{exp:jquery:script_tag}
plugin=
ui=
effect=
file=
ee()->cp->add_js_script(array('plugin' =>
'dataTables'));
ee()->javascript->output();
ee()->javascript->compile();
OTHER OPTIONS

Hmm…
MORE INFORMATION

ellislab.com/expressionengine/user-guide/modules/jque
SUMMARY

Each CMS handles and utilises JS in it’s specialised way.
THANKS!
Chris Ward
@chrischinch
chrischinchilla.com

More Related Content

What's hot (20)

KEY
Sugarcoating your frontend one ViewModel at a time
Einar Ingebrigtsen
 
DOCX
код презентации
LFadina62
 
PDF
Multi-tenant Database Design for SaaS
Võ Duy Tuấn
 
PPTX
Unobtrusive javascript
Columbia Developers Guild
 
PDF
Week 1 - How the Web Woks + Wordpress 101
Drake Martinet
 
PPTX
DevNexus 2016
Stephanie Brubaker
 
PPTX
SharePoint Ribbon Deep Dive
Chris O'Brien
 
PPTX
Hammersmith fundamentals html fundamentals
Mike Bradshaw
 
KEY
Developing for the mobile web
joeysim
 
PDF
jQuery - Boston IxDA
jeresig
 
PDF
JClouds at San Francisco Java User Group
Marakana Inc.
 
PPTX
Presentation on php and Javascript
Pradip Shrestha
 
PPTX
Практическая оптимизация сервер сайд: современные реалии
Valtech Ukraine
 
PDF
Евгений Самоненко - Практическая оптимизация сервер сайд современные реалии
Web Tech Fun
 
PDF
How to Make and Maintain a Successful Installation of WordPress Multisite
David Ensinger
 
PPTX
Backbone introduction
Ravi Kumar Hamsa
 
PDF
Develop plugin for Mozilla Firefox and structure a JS-based application
Afshin Mehrabani
 
PPTX
WordPress Theme Development Workflow with Node.js, Ruby, Sass, Bower and Grunt
Brajeshwar Oinam
 
PPS
MySQL Optimization from a Developer's point of view
Sachin Khosla
 
PPTX
Advance java session 9
Smita B Kumar
 
Sugarcoating your frontend one ViewModel at a time
Einar Ingebrigtsen
 
код презентации
LFadina62
 
Multi-tenant Database Design for SaaS
Võ Duy Tuấn
 
Unobtrusive javascript
Columbia Developers Guild
 
Week 1 - How the Web Woks + Wordpress 101
Drake Martinet
 
DevNexus 2016
Stephanie Brubaker
 
SharePoint Ribbon Deep Dive
Chris O'Brien
 
Hammersmith fundamentals html fundamentals
Mike Bradshaw
 
Developing for the mobile web
joeysim
 
jQuery - Boston IxDA
jeresig
 
JClouds at San Francisco Java User Group
Marakana Inc.
 
Presentation on php and Javascript
Pradip Shrestha
 
Практическая оптимизация сервер сайд: современные реалии
Valtech Ukraine
 
Евгений Самоненко - Практическая оптимизация сервер сайд современные реалии
Web Tech Fun
 
How to Make and Maintain a Successful Installation of WordPress Multisite
David Ensinger
 
Backbone introduction
Ravi Kumar Hamsa
 
Develop plugin for Mozilla Firefox and structure a JS-based application
Afshin Mehrabani
 
WordPress Theme Development Workflow with Node.js, Ruby, Sass, Bower and Grunt
Brajeshwar Oinam
 
MySQL Optimization from a Developer's point of view
Sachin Khosla
 
Advance java session 9
Smita B Kumar
 

Viewers also liked (9)

PDF
7 4-1-7-11
Francesc Daura Luna
 
PPTX
Why your image of the world could be wrong
Chris Ward
 
PPTX
Jquery mobile
Chris Ward
 
PDF
14.08021403
Francesc Daura Luna
 
PPTX
Building mobile apps with PhoneGap and Titanium appcelerator
Chris Ward
 
PDF
Tax free bonds - 2013
Mahesh Kabra
 
PPTX
Power your mobile app with Drupal - Melbourne Mobile, July 2013
Chris Ward
 
PDF
A Documentation Crash Course, LinuxCon 2016
Chris Ward
 
Why your image of the world could be wrong
Chris Ward
 
Jquery mobile
Chris Ward
 
14.08021403
Francesc Daura Luna
 
Building mobile apps with PhoneGap and Titanium appcelerator
Chris Ward
 
Tax free bonds - 2013
Mahesh Kabra
 
Power your mobile app with Drupal - Melbourne Mobile, July 2013
Chris Ward
 
A Documentation Crash Course, LinuxCon 2016
Chris Ward
 
Ad

Similar to JS, CMS, untangle the mess (20)

KEY
Intro to jQuery for Drupal
jhamiltoorion
 
KEY
Leveraging the Chaos tool suite for module development
zroger
 
PPT
jQuery and_drupal
BlackCatWeb
 
KEY
jQuery for Drupal
jhamiltoorion
 
PPT
Intro to-html-backbone
zonathen
 
PDF
Drupal7 Theming session on the occassion of Drupal7 release party in Delhi NCR
Gaurav Mishra
 
KEY
jQuery for Drupal
jhamiltoorion
 
KEY
Intro To jQuery In Drupal
Matthew Farina
 
PDF
Drupal 8 deeper dive
Amazee Labs
 
PPTX
Ready. Set. Drupal! An Intro to Drupal 8, Part 2
Acquia
 
PDF
Drupal Recipe
hernanibf
 
PDF
Building a Custom Theme in Drupal 8
Anne Tomasevich
 
PDF
What's new in D7 Theming?
John Albin Wilkins
 
PDF
Drupal 8 - Corso frontend development
sparkfabrik
 
KEY
Drupal 6 JavaScript and jQuery
Matt Butcher
 
PDF
Drupal 8: frontend development
sparkfabrik
 
PDF
Intro to-html-backbone-angular
zonathen
 
PDF
Drupal 8 - Core and API Changes
Shabir Ahmad
 
PPT
Drupal8 Introduction
Madhav Vyas
 
PPTX
f8db413453b33e4ffrointend development bbasics.pptx
vallabhdeshpande7499
 
Intro to jQuery for Drupal
jhamiltoorion
 
Leveraging the Chaos tool suite for module development
zroger
 
jQuery and_drupal
BlackCatWeb
 
jQuery for Drupal
jhamiltoorion
 
Intro to-html-backbone
zonathen
 
Drupal7 Theming session on the occassion of Drupal7 release party in Delhi NCR
Gaurav Mishra
 
jQuery for Drupal
jhamiltoorion
 
Intro To jQuery In Drupal
Matthew Farina
 
Drupal 8 deeper dive
Amazee Labs
 
Ready. Set. Drupal! An Intro to Drupal 8, Part 2
Acquia
 
Drupal Recipe
hernanibf
 
Building a Custom Theme in Drupal 8
Anne Tomasevich
 
What's new in D7 Theming?
John Albin Wilkins
 
Drupal 8 - Corso frontend development
sparkfabrik
 
Drupal 6 JavaScript and jQuery
Matt Butcher
 
Drupal 8: frontend development
sparkfabrik
 
Intro to-html-backbone-angular
zonathen
 
Drupal 8 - Core and API Changes
Shabir Ahmad
 
Drupal8 Introduction
Madhav Vyas
 
f8db413453b33e4ffrointend development bbasics.pptx
vallabhdeshpande7499
 
Ad

More from Chris Ward (19)

PDF
Electron - Solving our cross platform dreams?
Chris Ward
 
PDF
Automate your docs, automate yourself
Chris Ward
 
PDF
Back to the future with static site generators
Chris Ward
 
PDF
Building Cross Platform Apps with Electron
Chris Ward
 
PDF
Android Programming without Java
Chris Ward
 
PDF
The past, present and future of swift, Voxxed Belgrade 2016
Chris Ward
 
PDF
Always Listening User Experience
Chris Ward
 
PPT
Why you should come to DrupalSouth
Chris Ward
 
PPTX
Extend Drupal with a CRM, DrupalGov 2013
Chris Ward
 
PPTX
Drupal DevOps - Melbourne DevOps July 2013
Chris Ward
 
PPTX
Removing Barriers in Engagement - Melbourne Geek Night, July 2013
Chris Ward
 
PPTX
Tweak, Test and Debug your mobile apps from Web directions code 13
Chris Ward
 
PPTX
Take your drupal sites offline
Chris Ward
 
PPTX
Green Renters' Giant Green Games
Chris Ward
 
PPTX
Customising civicrm
Chris Ward
 
PPTX
Drupal - Melbourne cryptoparty
Chris Ward
 
PPTX
HP Lovecraft, laneway learning
Chris Ward
 
PPTX
CiviCRM and Wordpress
Chris Ward
 
PPTX
Blogging with drupal
Chris Ward
 
Electron - Solving our cross platform dreams?
Chris Ward
 
Automate your docs, automate yourself
Chris Ward
 
Back to the future with static site generators
Chris Ward
 
Building Cross Platform Apps with Electron
Chris Ward
 
Android Programming without Java
Chris Ward
 
The past, present and future of swift, Voxxed Belgrade 2016
Chris Ward
 
Always Listening User Experience
Chris Ward
 
Why you should come to DrupalSouth
Chris Ward
 
Extend Drupal with a CRM, DrupalGov 2013
Chris Ward
 
Drupal DevOps - Melbourne DevOps July 2013
Chris Ward
 
Removing Barriers in Engagement - Melbourne Geek Night, July 2013
Chris Ward
 
Tweak, Test and Debug your mobile apps from Web directions code 13
Chris Ward
 
Take your drupal sites offline
Chris Ward
 
Green Renters' Giant Green Games
Chris Ward
 
Customising civicrm
Chris Ward
 
Drupal - Melbourne cryptoparty
Chris Ward
 
HP Lovecraft, laneway learning
Chris Ward
 
CiviCRM and Wordpress
Chris Ward
 
Blogging with drupal
Chris Ward
 

Recently uploaded (20)

PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
PDF
July Patch Tuesday
Ivanti
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
July Patch Tuesday
Ivanti
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 

JS, CMS, untangle the mess

Editor's Notes

  • #4: A content management system, been around since the 90s
  • #8: Umbraco, .netNuke, Movable Type - .net Drupal, Joomla, Wordpress - PHP Plone - Python Refinery - Ruby Alfresco - Java Expression Engine - PHP SiteCore - ASP
  • #9: All PHP, two open source, two proprietary and ones I know the best. I wanted to add more proprietary options, but it’s really hard to find information.
  • #10: Drupal, PHP CMS, popular with large, complex sites and is thus quite complex itself.
  • #11: At the same time, module developers were starting to incorporate advanced effects libraries like Dojo, moo.fx, and prototype
  • #13: In modules and themes, things can just be fudged in of course… Settings behaviours to be acted upon - This is so Drupal is also aware of what is going on / DOM changes and can react / cache properly theme - Adds ability for client side DOM elements to be properly styled locale - Translations
  • #17: Even official docs mention adding into <head> / header.php… ‘Official’ way Name (required, string): The name of the script. URL (required, string): Dependencies (optional, array): Version (optional, string): Load in Footer (optional, boolean): There are specific enqueue functions for front / admin / login pages
  • #18: Notice how this is exactly the same…
  • #21: Mootools is deprecated
  • #22: Joomla is more MVC based, so JS can be added in various front end locations, out of scope for this talk.
  • #23: * Note quite ‘native’ plugins.
  • #27: Into templates File to load something other than JQuery 2nd - Modules
  • #28: Not saying there aren’t any, but it’s not made very clear or easy to find.
  • #30: Wordpress and Joomla quickly and for fairly one shot Drupal more complex allowing for more flexibility that may not be needed.