Table of Contents
Preface
Chapter 1: Overview
Chapter 2: Developing in OpenCms
Chapter 3: Our First Module
Chapter 4: Developing Templates
Chapter 5: Adding Site Search
Chapter 6: Adding User Registration and Comment Support
Chapter 7: Providing Site Customization Features
Chapter 8: Extending OpenCms: Developing a Custom Widget
Chapter 9: Extending OpenCms: Adding RSS Feed Support
Chapter 10: Extending OpenCms: Adding an Administration Point
Index
- Chapter 1: Overview
- The Site Design
- Required Developer Skills
- Basic Site Development
- Sites Requiring Custom Content Types
- Sites Requiring Custom Features
- Bespoke Site Development
- OpenCms Application Overview
- The OpenCms Directory Structure
- The Real File System Layout
- The Virtual File System Layout
- OpenCms Architecture
- Extensibility through Modules
- The OpenCms Web Request Process
- OpenCms Web Application Packaging
- Building a Complete Site with OpenCms
- The OpenCms Directory Structure
- Summary
- Chapter 2: Developing in OpenCms
- Developing Basic Site Content
- Setting Up an Environment for Creating JSP Code
- Editing Files Using File Synchronization
- Using WebDAV for Editing
- Debugging JSP Code in OpenCms
- Setting Up an Eclipse Environment to Build OpenCms
- Tools Needed to Build OpenCms in Eclipse
- Step 1: Checkout the Project Source from CVS
- Step 2: Setting the Classpath for Compilation
- Step 3: Using Ant to Build a Distribution Package
- Building OpenCms outside of Eclipse Using Ant
- Debugging OpenCms in Eclipse
- Setting Up an Eclipse Environment without Building OpenCms
- Summary
- Chapter 3: Our First Module
- Understanding OpenCms Modules
- Common Module Types
- Module Events
- Exporting and Importing Modules
- Creating a Module
- Creating a BlogEntry Content Type
- Registering the Content Type
- Additional Schema Features
- Field Mappings
- Field Validations
- Default Field Values
- Localization
- Content Relationships
- Content Previewing
- Creating Content Using a Model
- User Interface Widgets
- Nested Content Definitions
- Editing Configuration Files with Validating Editors
- Organizing the Content
- Summary
- Chapter 4: Developing Templates
- Review of the Page Layout
- Templates in OpenCms
- Creating the Templates
- The Homepage Template
- The Blog Content Loop
- The Sidebar and Footer
- Common Code Elements
- Header Code
- Search Form
- Advertisements
- Blog Archives
- RSS Client and RSS Feeds
- Footer Section
- The Supporting Java Bean Class
- The Blog Template
- The Content and Template Loading Process
- Expressions in JSP Templates
- Using the Tag Library from JSP
- Combining Expressions with JSTL
- Accelerating Template Development Using WebDAV
- Install the Eclipse WebDAV Plug-in
- Create a Site Within Eclipse for the Server
- Import Content into the Project
- Summary
- Chapter 5: Adding Site Search
- A Quick Overview of Lucene
- Search Indexes
- Search Queries
- Configuring OpenCms Search
- Field Configurations
- Creating a Field Configuration
- Creating an Index Source
- Additional Search Settings
- Introducing Luke – a Visual Index Tool
- Writing the Search Code
- A Simple Search Example
- Subclassing the CmsSearch Bean
- The Search.jsp Template
- Summary
- A Quick Overview of Lucene
- Chapter 6: Adding User Registration and Comment Support
- Understanding OpenCms Security
- User, Groups, Roles, and Permissions
- Organizational Units
- Setting up Security for Our Site
- Organization Unit and Group Setup
- Adding the Users
- Resource Permissions
- User Login and Registration Code
- Adding Comment Support
- Adding the Comments to the XML Content
- Publishing the Comments
- Summary
- Understanding OpenCms Security
- Chapter 7: Providing Site Customization Features
- What is RSS?
- Creating the Module
- The RSS Client Code
- Displaying the RSS Feed in the Template
- Adding User Preferences to Accounts
- Updating the Java Code
- Updating the JSP Templates
- Hooking up the Account Management Page
- Summary
- Chapter 8: Extending OpenCms: Developing a Custom Widget
- Designing a Custom Widget
- Designing the Widget
- The Widget Code
- Custom Source Interface and Implementations
- Using OpenCms Message Strings for Localization
- Registering the Widget with OpenCms
- Summary
- Chapter 9: Extending OpenCms: Adding RSS Feed Support
- RSS Feed Design
- The RSS Feed Content Type
- Creating a Supporting Widget
- The RSS Feed Template and Java Classes
- Content Wrapper Java Classes
- Wrapping It Up
- Summary
- Chapter 10: Extending OpenCms: Adding an Administration Point
- Administrative Points
- The Administration View
- Hooking the Administration Point Up to the Module
- The RSS Administration Module
- Leveraging the OpenCms Dialog Classes
- The Feed Manager Class
- The New Channel Action
- Summary



