Joomla ! 3.1 Templating

26 downloads 26390 Views 4MB Size Report
May 1, 2013 ... 1.4 Development Tools. 1.5 Joomla! 3.1. Installation: Live Demos. 1.6 JUI and Twitter Bootstrap. Local Web Server Install. Joomla! 3.1 Install in ...
What is Joomla! ?

Joomla! & Joomla! 3.1 Templating CMS Course Telerik Software Academy April-May 2013

Evgeni Leshtanski @Leshtanski

Questions Feel free to ask at any time or Tweet your question to #j3template

Lecture Highlights (Plan) 1. Introduction into Joomla! 2. Joomla! 3.1 Templating Timeframe: Three Sessions x 50 minutes Two 15 min. break in between

1

Part 1: Introduction into Joomla! 1.1 The Joomla! Project 1.2 Joomla! Core Features 1.3 Requirements for Joomla! 3.x 1.4 Development Tools 1.5 Joomla! 3.1. Installation: Live Demos Local Web Server Install Joomla! 3.1 Local Install

Joomla! 3.1 Install in a Web Hosting Environment

1.6 JUI and Twitter Bootstrap

1.1 The Joomla! Project

1.1.1. Glimpse of History: Joomla! 1.0, 9/16/ 2005

Winning logo contest submission by Alan Urquhart, Sept. 2005

www.joomla.org

Joomla! Development Strategy Bring People Together!

Joomla! Development Strategy Objectives:



Continue to offer a stable and reliable platform for our current and future user base.

● ●

Make innovation available to users and developers on a more timely basis. Make it easy for developers to contribute code to the project at any time.

Major principles:

● ● ● ● ●

Maintain a stable trunk; Predictable, incremental software releases; Strong backward compatibility support; Sound security policy; and Open development process.

1.1.2 Joomla! the Content Management System ● Web-based CMS . Content and data collaboratively shared and created.

● Allows people with or without technical knowledge of coding to have dynamic Web sites that they can easily manage.

● Very high level of extendability to create very complex Web sites and information systems.

Joomla! Release Cycle Each major release supported for 4+ years and includes one-click upgrades. ● 2.x series (1.6 + 1.7): Jan. 2011 - Dec. 2014 ■ v 2.5 January 2012 (LTS) ■ v 2.5.11 April 2013 (STS)

Joomla! Release Cycle ● 3.x series: Sept. 2012 - Dec. 2016 ■ v. 3.1. April 2013: STS ■ v. 3.2. September 2013: STS ■ v. 3.5. March 2014: LTS

Infographic by ThemePartner

1.1.3 Joomla! the Framework

Since Joomla1.5, Jan. 2011 Since July 2011: The Joomla! Platform (11.4), now (May 2012) - 12.1

1.1.4 The Joomlasphere

Joomla! is the People!

Joomla! Forum: 350,000 reg. users, 440,000 topics, approx. 2 million post

Joomla! Community Joomla! User Groups Joomla! Days Joomla! Developer Conferences and Summits Joomla! World Conferences

Joomla! Demo Site Joomla! Extension Directory (JED) Joomla! Resources Directory (JRD)

The Joomla! Project Team Joomla Leadership Team: leaders from Production Working Group and Community Working Group Michael Babker, Brad Baker, Isidro Baquero, Chris Davenport, Mark Dexter, Peter Martin, Olaf Offick, Sander Potjer, Nick Savov, Ron Severdia, Andrea Tarr Public Discussion Group of Joomla! Leadership Team: http://goo.gl/anJEr Public Discussion Group of Production Working Group: http://goo.gl/VoCMZ Public Discussion Group of Community Working Group: http://goo.gl/me7sa

Open Source Matters A not-for-profit formed under United States and New York state law

III.6.1. Mission, Vision & Values Mission

Vision

Our mission is to provide a flexible platform for digital publishing and collaboration.

In our vision, we see: People publishing and collaborating in their communities and around the world

Key Values

Software that is free, secure, and high-quality

Freedom

A community that is enjoyable and rewarding to participate in

Equality Trust

People around the world using their preferred languages

Community

A project that acts autonomously

Collaboration

A project that is socially responsible

Usability

A project dedicated to maintaining the trust of its users

Software License: ● Joomla! software and default templates are copyright 2005-2012 Open Source Matters, Inc. ● Terms of the GNU General Public License - GNU General Public License FAQ

Platinum Global Sponsors

Joomla! Project in Bulgaria: Джумла! България, http://www.joomla-bg.com/ Joomla! Day Bulgaria, http://joomladay.bg/

Learn More about Joomla! Joomla! Developer Network Joomla! Official Documentation The Joomla! Resource Directory™ The Joomla! Community Portal™

Joomla! Press (Official Books)

Joomla! Press (Official Books)

Contribute to Joomla! ○ ○ ○ ○

Answer Questions in the Joomla! Forums Write or Translate a Tutorial or Doc Develop an Extension or Template Test or Add a Comment to an Issue Report ○ Join a Joomla! Working Group (Joomla! Bug Squad ...) ○ Help Out at a Joomla! Event ○ Contribute in Other Ways

Contribute to Joomla! Join Joomla! Bug Squad ...

David Hurley [email protected] Joomla! Community Development Manager

Joomla! Vulnerable Extension List Since 2010: hosted on the docs.joomla.org From May 1, 2013: New subdomain vel.joomla.org

Where next Joomla! Extendable, RESTful, hypermedia web services API

WSWG

Kickstarter Project by Chris Davenport

Extendable, RESTful, hypermedia web services Possibilities that will be opened up: ● Much easier to create client code that accesses data in the CMS ● Services can be hierarchical so you can create new services ● Straightforward to offer users access to your content using a modern hypermedia-based API with only minimal coding ● API key management capabilities ● Hypermedia-based web services can be added by 3party developers to their extensions; new installable services ● Breaking down information silos; getting a step closer to point-and-click EDI (Electronic Data Interchange)

Taptheme.com

1.2 Joomla! Core Features

Joomla! Core Features User Management

Search

Media Manager

Web Link Management

Integrated Help System System Features

Language Manager Banner Management

Content Management

Contact Management

Syndication and Newsfeed Management

Polls

Menu Manager

Web Services (Remote procedure Calls XML / HTTP Blogger) Powerful Extensibility ●

Template Management

Joomla! Extensions Directory

New features of the Joomla! 3 series ● Incorporation of Twitter Bootstrap into a jui media package. ● A new responsive administrator template--Isis-- and interface. ● A new front end template--Protostar-- built using Twitter Bootstrap ● Updated accessible template called Beez3 ● PostgreSQL Driver. You will be able to run Joomla 3.0 sites using the PostgreSQL database. ● PHP Memcached Driver ● Use of JFeed for feed management rather than SimplePie ● Installation of language packages directly from the extension manager ● Guest user group present by default ● Saving blank articles allowed ● New administrator statistics module

New features of the Joomla! 3 series ● Update TinyMCE to version 3.5.6 ● Continued clean up of older unused code, files and database fields and tables and improved standardization of tables. ● Improvements to Smart Search ● Extensive work on code style standardisation and consistency ● Unit testing in the CMS ● Updated system tests in the CMS ● Multilanguage: adding items associations in remaining core components. ● Language Installation tool for the Joomla Installer. ● Items associations in multi-language ● Allow different update packages for different version dev levels

Joomla! Glossary Article

Jdoc statement

Patch

Category

LDAP

SEF URLs

Chrome

Module Positions

SVN

Extensions Component Module Plugin Template Language + Library Package

MVC

Suffixes Module Page

1.3 Requirements for Joomla! 3.x

Requirements for Joomla! 3.x Software PHP (Magic Quotes GPC off)

Recommended

Minimum

5.3.1 +

5.3.1 +

5.1 +

5.1 +

10.50.1600.1+

10.50.1600.1+

8.3.18 +

8.3.18 +

2.x +

2.x +

1.1

1.0

7

7

Supported Databases: MySQL (InnoDB support required) MSSQL PostgreSQL

Supported Web Servers: Apache (with mod_mysql, mod_xml, and mod_zlib) Nginx Microsoft IIS

1.4 Development Tools

1. Local Web Server Bundle: Linux

Windows

Mac OS X

Lamp Bundle

EasyPHP

MAMP & MAMP Pro

XAMPP for Linux

WampServer

XAMPP for Mac OS X

Zend Server Community Ed.

Zend Server Community Ed.

Zend Server Community Ed.

XAMPP for Windows

Mac Port

2. Browsers: Firefox 4+ ; Safari 5+ ; Google Chrome 10+ ; Opera 10+ ; Internet Explorer 8(?/9)+

3. IDE: 2.1. Eclipse, Netbeans, PHPStorm, Zend Studio 2.2. Sublime Text 2 (3) 4. Joomla_CodeSniffer (PHP CodeSniffer) ○ Joomla! Standards Github Repo

5. File/folder difference tool: WinMerge, Meld 6. Adobe Edge Reflow CC New!

1.5 Joomla! 3.1. Installation: Live Demos

Joomla 3.1.1 Stable 26 April 2013

New features of Joomla! 3.1 ● ● ● ● ● ● ● ● ● ● ● ●

Tags Added Added note form field Show logs in debug console Refactor installation to use new application and MVC classes Added pagination in COM_SEARCH component Added triggers on save for com_config JPlugin autoloadLanguage property Added SQL Server subclass for FinderIndexer Media wiki package OpenStreetMap package UNION ALL feature Removed the GeSHi plug-in

Joomla 3.1 is Here with Tags! Joomla 3.1 is Here with Tags!

Joomla 3.1 is Here with Tags!

1.6. Installation of Joomla! 3.1

Live Demo A Local Web Server Install Joomla! 3.1 Local Install

1.6. Installation of Joomla! 3.1 Contd. 2 Live Demo B Joomla! 3.1 Install in a Web Hosting Environment

Joomla! 3 Mobile Ready

1.6 JUI and Twitter Bootstrap

Joomla User Interface (JUI): Joomla! JUI Site: Main Goal JUI Media Package Kyle Ledbetter

Bootstrap 2.3.1 : GetBootstrap.com - Mark Otto, @mdo - Jacob Thornton, @fat Bootstrap 3.0 ○ Early look, RC.GetBootstrap.com ○ Mobile First ○ Mobile Only Layouts: at screen sizes of 767px or less (.col-small-span-*)

Bootstrap Expo: Beautiful and inspiring uses of Bootstrap

2

Don't hack the Joomla! core! Extend and override instead!

Part 2: Joomla! 3.1 Templating 2.1 Our Joomla! 3.1. Template Project 2.2 Joomla! 3.1 Template Creation in Steps 2.3 Fine-Tuning and Creating an Installable Zip Archive

2.1 Our Joomla! 3.1. Template Project

What we have: Bootstrapped static website: HTML5 + CSS3 PSD/fw.PNG + Bootstrap 2.3.1 : GetBootstrap.com

Refreshers: ● HTML5 Element Flowchart in HTML5 Doctor ● CSS3 Refresher in Slideshare ● Adding WAI-ARIA Landmarks to Joomla, PB Web Dev

What we need to do: ● Convert the Bootstrapped static website (HTML5+CSS3, fluid layout + RWD) into a Joomla! 3.1 Template, fluid layout + RWD utilizing the Core Joomla! 3.1 + default Protostar Template ● Install and style the new Joomla! 3.1 Template ● Package the new Joomla! 3.1 Template for delivery

2.2 Joomla! 3.1 Template Creation in Steps

Step One: Assessing (Creating) the Prototype The Bootstrapped static website (HTML5+CSS3, fluid layout + RWD)

Refreshers: ● A Beginner’s Guide to Wireframing, Webdesigntuts+ (part of UX Foundations) ● Twitter Bootstrap GUI & Wireframe Toolbox, Speckyboy.com ● Quick and Easy Interactive Wireframes with Bootstrap, Webdesigntuts+ ● Bootstrap Toolkit for Adobe Fireworks, FireworksToolkits.com

Designing Your Process

Focus 1: Analysing the .PSD / .FW.PNG

Focus 1: Analysing the "castlitestatic" Prototype

Bootstrap 2.3.1 + HTML5 + CSS3 + WAI

Focus 1: Analysing the Wireframes of "castlitestatic" Prototype via Wirify

Focus 2: In search of Module Positions A. The Protostar Template

Focus 2: In search of Module Positions B. YooTheme / Warp6

Focus 2: In search of Module Positions C. RocketTheme / Gantry - 1 Demo.RocketTheme.com

Focus 2: In search of Module Positions C. RocketTheme / Gantry - 2 Demo.RocketTheme.com

Focus 2: In search of Module Positions castlitetemplate mosdulepositions.odt

Focus 3: Supported Devices

Media queries /* Large desktop */ @media (min-width: 1200px) { ... }

/* Landscape phone to portrait tablet */ @media (max-width: 767px) { ... }

/* Portrait tablet to landscape and desktop */ @media (min-width: 768px) and (max-width: 979px) { ... }

/* Landscape phones and down */ @media (max-width: 480px) { ... }

Focus 4: Grid Layout, responsive + fluid Responsive grid of 12 columns adapting to be 1170px wide depending on your viewport. Below 767px viewports, the columns become fluid and stack vertically.

Fluid grid system: Percents for column widths.

Focus 5: Icons 140 icons in sprite form, available in dark gray (default) and white, provided by Glyphicons.

Step Two: Joomla! 3.1 Template File Structure

The Protostar Template

Step Three: Create a "castlitetemplate" Project (IDE) or Folder Create "index.html" (HTML5): ○ + Google Fonts ○ Fluid layout + Fluid Grid: ○ "custom.css" and link it in "index.html"

mosdulepositions.odt Add folders: css, html, images (c+p from Protostar first) ---> step3_index.html

Step Four: Joomla! "index.php" step4_protostar_index.php + Conversion: "index.html" -> "index.php" step4_index.php

Step Four:

step4_index.php



Jdoc statements

Step Four: jdoc:include

Type

Style

Additional Attributes

head component message modules

none

name

html5

name

table

name

horz

name

html

name

rounded

name

outline

name

Step Four: Helpful Functions

Step Five: Create

Zip an Install package

templateDetails.xml (step5_templateDetails.xml) favicon.ico template_preview.png template_thumbnail.png

castlitetemplate.zip

Step Five: Install castlitetemplate.zip Review module positions and paths

One 3rd-party extensions to be installed: ● Admin Forever plugin

Step Six: "Optional regions" in castlitetemplate Protostar code: lines 168 -162 Additional Code:


Step Six: Combined example


Step Six: Or combined example 2


Step Six:

The “count modules” statement for several collapsible positions

div class="span12">


Step Six: Remove System Output from Home page


Step Seven: Styling the castlitetemplate for the Desktop custom.css

Step Eight: Styling the castlitetemplate for Tablets and Phones custom.css

Step Nine: How to override the output from the Joomla! core ■

Layout (Templates) Overrides Modules Overrides

Design Patterns Book by a Telerik Team, forthcoming

Step Nine: Model-View-Controller design pattern

Step Nine: Understanding Output Overrides Template versus Layout Ancillary Customisation Component Output Types and Layout Overrides Module Layout Overrides

Step Nine: Layout (Templates) / Modules Overrides The "article page layout" of the native content component components > com_content > views > article > tmpl > default.php

The layout of the breadcrumbs module modules > mod_breadcrumbs > tmpl > default.php

The HTML (html) template folder templates > yourtemplate > html > com_content > article > default.php templates > yourtemplate > html > mod_breadcrumbs > default.php

Step Nine:

The Alternative Layout Feature in Joomla! ver. 2.5+

Four types of alternative layouts: 1. 2. 3. 4.

Module Component Category Menu Item

Step Nine: Template override packs for Joomla 3.x core extensions: components and modules Joomla 3.x Template Overrides Example, Youjoomla Blog

Step Ten: Joomla! Template Styles / Parameters Files: templateDetails.xml index.php Folder: Language

2.3 Fine-tuning and Creating an Installable Zip Archive

1. Fine-tuning: Creating component.php error.php + less Folder Removing Superfluous Files Optimizing index.php + templateDetails.xml

2. Creating a Zip Archive

Final castlitetemplate installed in a live website:

www.leshtanski.com/castlite/

Questions?

Homework Bring the Bootstrap awesomeness and Joomla! 3.1 Dynamics to the LessIsMore HTML5 Template: 1. Set-up and deliver your styled Joomla! 3.1 Template: ● Not a pixel perfect approach, be creative ● Creation of a new prototype (Bootstrapped static, fluid and responsive HTML5 site): optional ● Recommended: add a dropdown menu item, and search and login modules

Homework 2. Install your template in a Joomla! 3.1 website on a hosted web server (optionally on the free 30 day Joomla! 3.1 Demo at CloudAccess.net) and share your URL.

Acknowledgements and thanks I have used a variety of sources to prepare this presentation. Many thanks to their authors. My special thanks go the experts and contributors of www.joomla.org, Joomla! Press, www.joomla-bg.com, www.joomladay.bg, http://twitter.github. io/bootstrap and http://rc.getbootstrap.com (@fat and @mdo), http://jui. kyleledbetter.com, The Art of Joomla, www.lynda.com (Jen Krammer) www. themepartner.com, OSTraining, www.inmotionhosting.com (Brad Markle), www. youjoomla.com, www.hyde-design.co.uk and others.

Thank you!