CQ5 WCM Developer's Guide

Contents

Introduction
Introduction
Purpose of this Document
Target Audience
Prerequisites for development within CQ
CQ in-depth
JSR-170 and the JCR API
CQ DAM
Widgets
FileVault (source revision system)
Workflow Engine
Dispatcher
Localization
Sling Request Processing
Introduction to Sling
Sling is Content Centric
RESTful Sling
URL Decomposition
From URL to Content and Scripts
Sling API
Referencing existing elements using sling:include
First Steps - an example for using Sling
OSGI
CQ5 WCM - Architecture and Concepts
Development objects
Structure within the repository
Development Tools
Working with the CQ Development Environment (CQDE)
Setting up CQDE
Configuring CQDE
How to Set Up the Development Environment with Eclipse
Creating the Project Structure in CQ5
Installing FileVault (VLT)
Installing Eclipse
Creating the Project Structure in Eclipse
Scripting with Eclipse and CQ5
Java Developing with Eclipse and CQ5
Building collaborative and automated projects
Designer
Templates
What are Templates?
Overview of templates
How Templates are structured
The structure of a Template
The content produced by a Template
Developing Page Templates
Creating a new Template (based on an existing template)
Summary
Components
What exactly is a Component?
Default Components within CQ WCM
Components and their structure
Component definitions
Component definitions and the content they create
Component Hierarchy and Inheritance
Summary
Developing Components
Developing a new component by adapting an existing component
Adding a new component to the paragraph system (design mode)
Extending the Text and Image Component - An Example
Further Development of Specific Components and Tools
Developing the Bulk Editor
Scripts
global.jsp
JSP Tag Libraries
A closer look at a few of the foundation components...
Top Navigation Component
List Children Component
Logo Component
Paragraph System
Image Component
Text & Image Component
Search Component
Guidelines for Using Templates and Components
Java WCM API
Multi Site Manager for Developers
MSM in the Repository
MSM-specific Nodes, Node Types, and Properties
MSM mechanisms in the repository
Extending MSM Functionalities
How to extend synchronization actions
How to define the properties and the nodes that are copied to the Live Copy
How to remove the "Chapters" step in the "Create Site" wizard
How to Create a Fully Featured Internet Website
DAM Media Handlers
Default Media Handlers
Using Media Handlers in Workflows to perform tasks on Assets
Disabling/Enabling a Media Handler
Creating a new Media Handler
Important Classes and Interfaces
Example: create a specific Text Handler
Data Modelling
Data Modeling - David Nuescheler's Model
Source
Introduction from David
Seven Simple Rules
Keyboard Shortcuts
Security Checklist
Use the user session, not the administrative session
Check for Cross-Site Scripting (XSS)
Copyright, Licenses and Formatting Conventions
Formatting Conventions