Joomla! Reborn: coding in version 1.5. It finally works the way you always wanted Completely overhauled codebase Improved security Better menu and URL.

Slides:



Advertisements
Similar presentations
PubMed/How to Search, Display, Download & (module 4.1)
Advertisements

Microsoft Office 2007 Web Feature Sharing Access Data.
Samsung Smart TV is a web-based application running on an application engine installed on digital TVs connected to the Internet.
Setting Up Information Portal Irwan Sampurna C-CONTENT 23 May 2006.
JavaScript FaaDoOEngineers.com FaaDoOEngineers.com.
EasySearch Technical Overview. Ever seen a website without a full text search? BUT – Search is expensive Financially Computationally – Search is complicated.
INTRODUCTION TO ASP.NET MVC AND EXAMPLE WALKTHROUGH RAJAT ARYA EFECS - OIM DAWG – 4/21/2009 ASP.NET MVC.
Web Pages and Style Sheets Bert Wachsmuth. HTML versus XHTML XHTML is a stricter version of HTML: HTML + stricter rules = XHTML. XHTML Rule violations:
Extending JIRA Rachel Wright July 15, 2014 See slide “Notes” section for commentary and talking points.
Ruby on Rails Model of MVC. Model-View-Controller Paradigm A way of organizing a software system Benefits: Isolation of business logic from the user interface.
Turners SharePoint Web Site How we did it. 2 Page Anatomy Custom Search Web Part Custom Search Web Part Data Form Web Parts Content Query Web Part HTML.
IBM WebSphere Portal © 2008 IBM Corporation 1 Deliver an Irresistible User Experience  Provides an interactive user experience  No programming needed,
1 Chapter 12 Working With Access 2000 on the Internet.
Graphical User Interface (GUI) Nelson Padua-Perez Bill Pugh Department of Computer Science University of Maryland, College Park.
Design and Planning Presenter: Mike Team Members: Casey Kaushik Danny.
Web Tailor Basics.
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
Get closer to the most advanced CMS Mihail Semedzhiev Joomla!
User Group 2015 Version 5 Features & Infrastructure Enhancements.
CVSQL 2 The Design. System Overview System Components CVSQL Server –Three network interfaces –Modular data source provider framework –Decoupled SQL parsing.
DSpace XML UI Project Texas A&M University Digital Initiatives, Research and Technology Scott Phillips, Cody Green, Alexey Maslov, Adam Mikeal, Brian Surratt,
1 ADVANCED MICROSOFT WORD Lesson 15 – Creating Forms and Working with Web Documents Microsoft Office 2003: Advanced.
RefWorks: Advanced February 13, What We’ll Cover Today Managing Your Personal Database Searching Your Personal Database Linking to the Full Text.
Sage CRM Developers Course
SCHOOL OF INFORMATION UNIVERSITY OF MICHIGAN si.umich.edu Drupal: Configuration and Customization Week 4: Installation, Module Development January 25,
ITD 3194 Web Application Development Chapter 4: Web Programming Language.
Server-side Scripting Powering the webs favourite services.
Building a UI with Zen Pat McGibbon –Sales Engineer.
Presented by: Katie Milanowski. 2  Formed in 1982  Bruce Barrington (HBO & Company)  Apply RAD technology to IBM PC  1986: Clarion Version 1.0, Atlanta,
Joomla! Day France SEBLOD Version 2.0 for Joomla! 1.6.
Class Instructor Name Date. Classroom Tips Class Roster – Please Sign In Class Roster – Please Sign In Internet Usage Internet Usage –Breaks and Lunch.
Oracle Financials – APEX Presented by : Ian Drever Chitra Kanakaraj The University of Waikato.
Copyright © 2012 Accenture All Rights Reserved.Copyright © 2012 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are.
Using JavaBeans and Custom Tags in JSP Lesson 3B / Slide 1 of 37 J2EE Web Components Pre-assessment Questions 1.The _____________ attribute of a JSP page.
Building Search Portals With SP2013 Search. 2 SharePoint 2013 Search  Introduction  Changes in the Architecture  Result Sources  Query Rules/Result.
© 2004 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice SISP Training Documentation Template.
Part 1 – PubMed Interface, Display options, Saving, Printing, and ing results. Instructions This part of the course is a PowerPoint demonstration.
AUTOMATION OF WEB-FORM CREATION - KINNERA ANGADI – MS FINAL DEFENSE GUIDANCE BY – DR. DANIEL ANDRESEN.
Writing Joomla! Extensions. What makes Joomla! extensions unique? They come in self-contained archives non-programmers can install: upload and you're.
Seattle Drupal Clinic Introduction to Drupal Part 1: Web Content Management, Advantages/Disadvantages of Drupal, Drupal terminology.
What’s new in Kentico CMS 5.0 Michal Neuwirth Product Manager Kentico Software.
ECA 228 Internet/Intranet Design I Intro to Markup.
Copyright (c) 2004 Prentice-Hall. All rights reserved. 1 Committed to Shaping the Next Generation of IT Experts. Creating XHTML Documents Essentials for.
How does Drupal Work? Information Systems 337 Prof. Harry Plantinga.
ForeCiteNote by Emma Nguyen, 11 th June Outline Overview Server side Client side  JavaScript classes.
 Registry itself is easy and straightforward in implementation  The objects of registry are actually complicated to store and manage  Objects of Registry.
© 2008 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice Lesson # 9 HP UCMDB 8.0 Essentials.
Java Programming, 2E Introductory Concepts and Techniques Chapter 4 Decision Making and Repetition with Reusable Objects.
PubMed/How to Search, Display, Download & (module 4.1)
JAVA BEANS JSP - Standard Tag Library (JSTL) JAVA Enterprise Edition.
Date : 3/04/2010 Web Technology Solutions Class: PHP Web Application Frameworks.
Unit 13 –JQuery Basics Instructor: Brent Presley.
Mr. Justin “JET” Turner CSCI 3000 – Fall 2015 CRN Section A – TR 9:30-10:45 CRN – Section B – TR 5:30-6:45.
Adxstudio Portals Training
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Advanced Task Engine Doing Cool Stuff with Cool stuff!
10 Copyright © 2004, Oracle. All rights reserved. Building ADF View Components.
Introduction to Javascript. What is javascript?  The most popular web scripting language in the world  Used to produce rich thin client web applications.
Navigation Framework using CF Architecture for a Client-Server Application using the open standards of the Web presented by Kedar Desai Differential Technologies,
Groups, More than Just Collaboration Christopher Smoak.
Modern Development Technologies in SharePoint SHAREPOINT SATURDAY OMAHA APRIL, 2016.
The New Face of ASP.NET ASP.NET MVC, Razor, and jQuery Ido Flatow | Senior Architect | Sela | This session is.
DEV103 – Web Part Transformers – More than meets the eye By: D’arce Hess.
Quincy School District Joomla Overview August 24, 2009.
Web Technology Solutions
Lesson # 9 HP UCMDB 8.0 Essentials
CONTENT MANAGEMENT SYSTEM CSIR-NISCAIR, New Delhi
AVOIR -African virtual
iVend Retail Extensibility
Developing a Model-View-Controller Component for Joomla
Presentation transcript:

Joomla! Reborn: coding in version 1.5

It finally works the way you always wanted Completely overhauled codebase Improved security Better menu and URL controls –Default item –/better/link/structure

Goodbye Register Globals! Gone even in Legacy Mode! Many internal globals are also gone –$database –$my –$mosConfig_… Now retrieved through JFactory methods –$user =& JFactory::getUser();

Valid XHTML Transitional Entire page built before output Get JDocument object Add JS and CSS $document =& JFactory::getDocument(); $document->addStyleSheet('path/to/style.css'); $document->addScript('path/to/script.js');

Streamlined Execution Better organized execution process –Fewer opportunities for security holes –More plugin event possiblities

Streamlined Execution (contd.) Joomla! 1.5 $mainframe->route(); $Itemid = JRequest::getInt( 'Itemid'); $mainframe->authorize($Itemid); Joomla ! 1.0 if ( $option == 'com_content' && $Itemid === 0 ) { $id = intval( mosGetParam( $_REQUEST, 'id', 0 ) ); $Itemid = $mainframe->getItemid( $id ); } if ( $Itemid === 0 ) { $query = "SELECT id". "\n FROM #__menu". "\n WHERE menutype = 'mainmenu'". "\n AND published = 1". "\n ORDER BY parent, ordering" ; $database->setQuery( $query, 0, 1 ); $Itemid = $database->loadResult(); }

Streamlined Execution (contd.) index2.php deprecated Now sets a flag and includes index.php index.php 89 lines for 1.5 vs. 281 lines in 1.0

XML Configuration Improved Linking to component views Component views get parameters Component parameters easier to implement

Component Parameters Pulls from component XML

Modules are finally reusable! Use XML parameters for different instances

Modules are finally reusable! (contd.) Without title, default settings With title, default settings With title, button, and overridden default text

Joomla! 1.0 was “MVC lite” component.class.php –Model/ActiveRecord component.php –Controller: long switch() statement component.html.php –View: set of functions

Real Model View Controller Models organize queries Individual views can be overridden Controllers replace switch() statements

Models Joomla! separates queries from tables Models & Views can act “independently” of controller

Views Joomla! 1.0Joomla! 1.5 Compare template overrides:

Views (contd.) Views now have parameters that can be set for each menu link:

Controllers Makes execution flow clear Reduces number of $tasks Defaults to internal display() method

Controllers (contd.) switch ($task) { case 'edit': editRecord($id); break; default: viewRecords(); break; } function editRecord($id) {... }... class RecordsController extends JController { function edit() {... } function display() { parent::display(); } Joomla! 1.0Joomla! 1.5

Controllers - display() No $task, calls display() Finds ‘list’ view ‘list’ view calls model Display

Routing & SEF URLs Use JRoute::_() on all links Build logic in router.php Transformation: –index.php?option=com_vegetables&view=list &page=2 –/our_vegetables/list/2

router.php - Building Route function VegetablesBuildRoute(&$query) { $segments = array(); $segments[] = $query['view']; unset($query['view']); $segments[] = $query['page']; unset($query['page']); return $segments; }

router.php Parsing Route function VegetablesParseRoute($segments) { $vars = array(); $vars['view'] = $segments[0]; $vars['page'] = $segments[1]; return $vars; }

More information developer.joomla.org - dev news docs.joomla.org - wiki with API

Shameless Plugs Join the Bug Squad Buy my book Watch my videos (lynda.com, June)