Learning eZ publish 3 : Building content management solutions

Learning eZ publish 3 : Building content management solutions
eBook: $35.99
Formats: PDF, PacktLib, ePub and Mobi formats
save 50%!
Print + free eBook + free PacktLib access to the book: $95.98    Print cover: $59.99
save 37%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Table of Contents
Sample Chapters
  • Build content rich websites and applications using eZ Publish
  • Discover the secrets of the eZ Publish templating system
  • Develop the skills to create new eZ Publish extensions

Book Details

Language : English
Paperback : 392 pages [ 210mm x 197mm ]
Release Date : May 2004
ISBN : 1904811019
ISBN 13 : 9781904811015
Author(s) : Ben Pirt, Bjorn Dieding, Martin Bauer, Paul Borgermans, Paul Forsyth, Tony Wood
Topics and Technologies : All Books, CMS and eCommerce, Content Management (CMS), Open Source

Learning eZ publish 3: Building Content Management Solutions

Chapter 1: Installing eZ publish
Chapter 2: Content Management with eZ publish
Chapter 3: Displaying Content with eZ publish Templates
Chapter 4: A Glimpse Inside the Core
Chapter 5: Extending eZ publish
Chapter 6: Extension Development
Chapter 7: Deploying eZ publish
Chapter 8: Center for Design at RMIT Case Study
Chapter 9: Creating a Standards-Compliant eZ publish Site
Appendix A: Template Operators and Functions
  • Chapter 1: Installing eZ publish
    • Setting Up
      • Unpacking the Installation
      • Initializing the Database
      • Apache Virtual Host Settings
      • Image Settings
        • ImageMagick
        • GD
      • Cron Jobs
      • Configuration Files
    • The Setup Wizard
      • Page 1 of the Setup Wizard: Welcome to eZ publish
      • Page 2 of the Setup Wizard: System Check
      • Page 3 of the Setup Wizard: Email Settings
      • Page 4 of the Setup Wizard: Choose a Database
      • Page 5 of the Setup Wizard: Database Initialization
      • Page 6 of the Setup Wizard: Language Support
      • Page 7 of the Setup Wizard: Site Packages
      • Page 8 of the Setup Wizard: Site Access Configuration
      • Page 9 of the Setup Wizard: Site Details
      • Page 10 of the Setup Wizard: Site Security
      • Page 11 of the Setup Wizard: Site Registration
      • Page 12 of the Setup Wizard: Finished
    • Troubleshooting
      • PHP Memory Limits
      • PHP Running as a CGI
    • Summary
  • Chapter 2: Content Management with eZ publish
    • What Is Content Management?
    • eZ publish Fundamentals
      • Structuring Content
        • Site Structure
        • Node Tree (Content Object Tree)
        • Sections
        • Content Classes
        • Content Class Attributes
        • Content Object
      • Displaying Content
        • Separation between Content and Presentation
        • Site Structure versus Page Layout and Content Views
        • Overall Page Layout and Content Views
      • Authorization and Roles
        • Disabling a Module/Function outside the Role System
    • Adding Content with the Default Admin Interface
      • Creating Content Classes
        • Datatypes
        • XML Tags Available with ezxmltext Datatypes
        • Datatypes as Information Collectors
      • Creating a New Content Object
      • Editing Objects and Versioning
      • Managing Translations
      • Related Content
      • Workflows
        • Triggers
        • Workflow Events
      • Permissions/Roles
      • Templates
      • More Administrator Functions
        • Removing and Restoring Objects
        • URL Translation
        • URL Management
        • RSS Export and Import
        • Cache Administration
        • Search Stats
        • System Information
        • Section Setup
        • PDF Export
        • Rapid Application Development (RAD)
        • Extension Setup
        • Packages
        • Notification
        • Personal
        • Shop
    • Creating an Example Site
      • Creation of Basic Classes
        • Documents
        • Images
        • Discussion Forums
        • Calendar of Activities
        • Personalization
        • Miscellaneous
        • Creating Classes
        • Taxonomy or Structure
        • Users and Roles
        • Sections Setup
        • User Groups
        • Roles and Role Assignments
    • Summary
  • Chapter 3: Displaying Content with eZ publish Templates
    • Principles
      • Page Layout and Content Views
      • Page Layout
      • Content Views
      • Attribute Templates
      • Template Modularization
      • Style Sheets and Images
      • Edit Templates
      • Templates and Caching
      • Cascading and Overriding Templates
    • Working with eZ Publish Templates
      • Overview
        • Where Does the Content (Data) Come From?
      • Comments
      • Variables
        • Setting and Modifying Variables
        • Variable Types
        • Type Creators
        • Sections in Templates and their Effects on Variables
        • Variable Namespaces
        • Predefined Variables
        • Using Variables across Templates
      • Controlling Template Output Flow
        • Section
        • If-then-else Constructs with Section
        • Loops with Section
        • Switch Constructs
        • Variable Namespaces Revisited
      • Using Functions from Kernel Modules
      • Functions in the Content Module
        • Fetching a Single Node or Object
        • Fetching Node Lists and Node Trees
        • Counting the Objects of Certain (or all Types)
        • Displaying Version Information
        • Fetching the Current User
        • Others
      • Increasing Performance with Caching
        • Overall Caching
        • Cache-blocks
      • Custom Template Operators
    • The Template Override System
      • Using Cascading Effects in Templates
      • Overriding Templates Using Specific Conditions
        • Syntax of override.ini.append.php
    • Common Template Tasks
      • Navigation Menus
        • Top Level Menu
        • Breadcrumb Navigation
        • Tree Menus
      • Adding Edit Functions to Your Templates
        • Allow Users to Add Content to Your Site
        • Adding an Edit Link
        • Adding a Remove Button
        • Adding a Comment Button
      • Date and Time Tasks
        • Displaying Tomorrow\'s Date
      • String and Text manipulation
        • Limiting Text Output
        • Limiting XML Text Output
        • Automatic Linking and Conversion
      • Providing a Custom User Experience
        • Creating Dummy Nodes
        • A Specific User Panel
        • Putting the User Preferences Function to Work
        • Showing a User\'s Groups and Roles
      • Miscellaneous
        • Show a Version History Audit Trail
        • Show Creator, Modifier, and Publishing Date
        • Listing keywords and their Automatically Related Objects
        • Advanced Keyword Facility
      • Creating a Threaded Forum Template
    • Summary
  • Chapter 4: A Glimpse Inside the Core
    • Permissions
    • Object Persistence
      • Getting Attribute Values
      • Setting Attribute Values
      • Other Attribute Functions
    • Persistent Storage
      • Fetching Data
      • Storing Data
      • Other Data Manipulation
    • Content Classes
      • Content Class Attributes
    • Content Objects
      • Creating a Content Object
    • Workflows and Triggers
    • Notifications
    • Information Collection
    • Searching
    • Summary
  • Chapter 5: Extending eZ publish
    • Why Create an Extension?
      • Adding an Extension
        • Locating Your Extension
      • Example Directory Extensions
        • Datatype Extension
        • Module Extension
        • Workflow Eventtype Extension
      • Documentation on Extensions
    • Modules
      • Module Definitions
        • Module Names and Views
        • View Permissions
        • View Parameters
        • View Actions and Post Variables
        • View Navigation
    • Module Coding
      • Reading Module Input
      • Returning Information
      • Processing a Template
      • Redirecting a Module
      • Module Functions
  • Datatypes
    • Datatype Settings
    • Datatype Templates
    • The Datatype Wizard
    • Implementing the Datatype
      • Constructing a Datatype
      • Storing Datatype Information
      • Initializing with Default Values
      • Working with Class Attributes
      • Working with Object Attributes
    • Other Datatype Functions
    • Template Design
    • Complex Datatypes
  • Template Operators
    • Adding a PHP Command
    • The Template Operator Wizard
    • Writing an Operator
      • Registering the Operator
      • Coding the Operator
      • Initializing the Operator
      • Executing the Operator
  • Workflow Events and Triggers
    • Workflow Settings
    • Workflow Events
    • Workflow Triggers
    • Defining Triggers
  • Actions
  • Translations
    • Overriding Translations
  • Notifications
    • Notification Events
    • Adding Collaborations
  • SOAP Server
  • RSS (Really Simple Syndication)
  • Data Interoperability
    • Importing Information
    • Publishing a Folder Object
  • Login Handlers
    • LDAP (Lightweight Directory Access Protocol)
    • Text File Login
  • Summary
  • Chapter 6: Extension Development
    • Extension Development Practices
      • Designing Your Extension
        • Goals and Targets of the Extension
        • Preparing to Test Your Extension
        • Timescales
        • Anticipate the Learning Curve
        • Software Requirements
        • Development Tools
        • Sharing with the Community
        • Documentation
    • Creating the WorldPay Extension
      • Creating the Environment
      • Creating Workflow Events and Triggers
      • WorldPay Module
        • Creating the Module Extension Environment
        • Creating the Module
        • Reviewing the ini Settings
        • User Settings
        • Permissions
      • Callback Testing
    • Creating the Category Datatype
      • Category Datatype Design
        • Setting Up the Extension Environment
        • The Category Database Table
        • Database Communication
        • Category Discussion
        • Category Templates
      • The Category Datatype in Action
    • Integrating Existing Code with eZ publish
      • Making a Bridge to External Applications
        • Strategies
        • Who Am I?
        • Authentication
      • Communicating with Google
      • Modifying Existing Code
    • Summary
  • Chapter 7: Deploying eZ publish
    • Define Your Hosting Requirements
      • Number of Visitors
      • Security Needs
      • Reporting Requirements
      • Budget
      • Time Limits
      • Shared or Dedicated
      • Is My Server Powerful Enough?
    • Documentation
      • How and When to Update the Documentation
      • Contact Details
      • Location
      • Hardware
      • Operating System
      • Software
      • Patching Process
      • DNS Information
      • TCP/IP Information
      • Access Control
      • Upgrade Roadmap
      • Disaster Recovery
    • Preparing the Linux Environment
      • Apache
      • PHP
      • Database (MySQL/PostgreSQL)
      • GD Graphics library
      • ImageMagick
      • Cron Jobs
      • SMTP
      • PHP Accelerators
    • Deploying
      • New Project Deployment
      • Updating Project Deployment
      • Backups
      • Ports
    • Summary
  • Chapter 8: Center for Design at RMIT Case Study
    • The Client
    • The Existing Site
    • The Project
    • The Process
    • Requirements
      • Key Objectives
      • Creative
      • Functionality
      • Content
      • Hosting Environment
    • Selecting a CMS
    • Specifications
      • User View
      • Admin View
      • Links
      • Miscellaneous
      • Content Model
      • Display Templates
        • Sustainable Products, Sustainable Buildings, and LCA Template
      • Content Types
    • Interface Design
      • Visual Design
      • HTML Prototype
        • The Home Page
        • Section Pages
        • Content Pages
    • Development
      • Install eZ publish
      • Define Content Classes and Sections
      • Configure Roles and Permissions
      • Apply Display Logic and Templates
        • Create Page Layout Templates
        • Navigation
        • Setting Up
        • Summary Pages
        • Content Templates
    • Testing
      • Requirements
      • Specifications
      • Implementation
      • Functional Testing
      • Content Population
    • Deployment
    • Maintenance and Support
    • Training
    • Project Assessment
      • Requirements and Specification Phases
      • Development Phase
      • Content Population and Review Phase
    • Extending the Site
      • Workflow
      • Archiving
      • Integration with CRM
    • Summary
  • Chapter 9: Creating a Standards-Compliant eZ publish Site
    • What Are Web Standards?
      • XHTML
      • CSS
    • Web Standards: Real-World Scenario
      • Accessibility
      • Bandwidth
      • Future Proofing
      • Ease of Maintenance
    • eZ publish and Web Standards
    • The Client Requirements
    • Planning and Preparation
    • Template Design
      • page_head.tpl
      • header.tpl
      • navigation.tpl
      • image.tpl
      • footer.tpl
    • CSS Rules
    • Designing the Content
      • The News Article Class
      • The Data Class Definition
        • Class Templates
        • CSS Rules
    • Performance
      • View Caching
      • Template Compiling
      • Template Cache Blocks
      • PHP Accelerators
      • Benchmarking
        • ab
      • Effects of Optimization
    • Summary
  • Appendix A: Template Operators and Functions
    • Operators
      • String Operators
        • String Transformations
        • Counting and Comparing Strings
      • Array Operators
        • sum and sub
        • inc and dec
        • div
        • mod
        • mul
        • Max and min
        • abs
        • ceil and floor
        • round
      • Localization and Translation Operators
      • Logical Operators
        • ne
        • lt
        • gt
        • le
        • ge
        • eq
        • null
        • not
        • true
        • false
        • or
        • and
        • choose
        • contains
      • Type Checking
        • Image Handling
      • Other Template Operators
        • count
        • Accessing Variables in the ini Files
        • cond
        • first_set
        • eZ publish Kernel Operators

Ben Pirt

Ben Pirt studied architecture at Edinburgh University. In 1999 he moved to New York where he developed animation skills through working for a design and visualisation company. Here he was also able to strengthen his web development skills through the use of PHP, SQL, CSS and XHTML. On his return to Edinburgh in 2001 he co-taught a course on architecture and multimedia before completing his postgraduate diploma at the Bartlett School of Architecture.

Bjorn Dieding

Bjorn Dieding attended the Ev. Gymnasium Werther, where he took advantage of a student exchange to the U.S. in 1997, and at this time, first came into contact with web design. From then on he invested much of his free time gathering knowledge and learning about Internet-related topics. In 1999 he started realizing his first commercial projects. In 2000 Bjorn attended the b.i.b. Hannover, graduating in 2003 as a computer scientist in e-commerce (Staatl. gepr. Informatiker Electronic Commerce). After graduation, he became a freelance web application programmer and web designer. In March 2004, Bjorn became the first core developer of eZ publish outside eZ systems.

Bjorn Dieding met Soren Meyer while studying, and at the end of 2002 they decided to team up as xrow GbR. Their main objective was to deliver value-added services for professional and high-quality open source software. Today, xrow GbR is one of the top German consultancies for delivering eZ publish services.

Martin Bauer

Martin Bauer is the Managing Director of designIT, an Australian based content management specialist practice. Martin has ten years experience in web development and web based content management. He is the world's first certified Feature Driven Development Project Manager. Prior to his role as Managing Director, Martin held a variety of roles across a range of industries. This experience includes careers in law, advertising and IT. Martin's breadth of expertise has culminated in a focus upon the delivery of effective content management solutions.

Paul Borgermans

Paul Borgermans holds a Masters degree in Science and a PhD in Applied Physics. He became involved with high-performance computing from the start of the 90s while doing plasma physics research. From then on, computing has always been an important part of his job, which gradually involved the integration of large databases, computations, and operational management in R&D. The birth of the World Wide Web also marked the start of projects around intranet developments. Recently, he started a knowledge-management program with his current employer, the Belgian Nuclear Research Center.

Paul Forsyth

Paul Forsyth is an active contributor to the eZ publish community, and lead developer at Vision with Technology. As Lead Developer, Paul helps to develop processes, methods, and technical standards in addition to developing systems and overseeing the development team. Previously, Paul was a Software Engineer at Parc Technologies, where his work included programming and system architecture on sophisticated applications optimizing flight schedules and managing fleet size for the airline industry. Paul was a PhD student at the University of Leeds after completing an MSc with Human Computer Systems at De Montfort University and a BSc (Hons) with Artificial Intelligence and Computer Science at the University of Edinburgh.

Tony Wood

Tony Wood has over 16 years of experience working for both small and large clients, with work ranging from system administration to knowledge management.

Tony is an active member in the eZ publish community and regularly contributes to the eZ publish community. Tony works for VisionWT which was the first company outside of eZ publish to deploy an eZ publish version 3 site and has focused on creating only eZ publish sites.

Tony concentrates on building VisionWT which is a company he founded on the principle that content management should be available to all; whatever their budget.

Code Downloads

Download the code and support files for this book.

Submit Errata

Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.

Sample chapters

You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

Frequently bought together

Learning eZ publish 3 : Building content management solutions +    Oracle 11g R1 / R2 Real Application Clusters Handbook =
50% Off
the second eBook
Price for both: $65.60

Buy both these recommended eBooks together and get 50% off the cheapest eBook.

What you will learn from this book

With this book you will conquer eZ publish, and learn the skills to become an accomplished eZ publish developer. At the end of this book, you will:

  • Understand how eZ publish handles, versions, and publishes content to the Web
  • Be confident working in the eZ publish administration area
  • Know the secrets of the eZ publish templating system to design your own pages
  • Have the skills to create new eZ publish extensions See how real world eZ publish sites have been designed and implemented

This book covers:

  • Installing eZ publish
  • The basic concepts of eZ publish
  • The structure of an eZ publish site
  • Content management with eZ publish
  • Controlling your page output with eZ publish templates
  • The eZ publish core libraries
  • Creating eZ publish extensions
  • Creating new modules and datatypes
  • Working with RSS import and export
  • Deploying an eZ publish site
  • Case studies of real eZ publish sites
  • Optimizing your eZ publish installation

In Detail

eZ publish is a PHP-based, Open Source Content Management System and development framework. With over 1,000,000 downloads of the system to date (June 15, 2004), and now at version 3, eZ publish has evolved from a standard CMS to a framework for developing your own robust, PHP applications. With a community of devoted developers behind it, eZ publish has grown in popularity, with a tested and proven core architecture. Historically, eZ publish has had a notoriously steep learning curve. This book sets out to change that, and to make the unrivalled power and flexibility of eZ publish accessible to all developers. For the first time, the top contributors to the eZ publish community take you inside eZ publish, lifting the lid on this mysterious and powerful product to have you developing content-driven Web applications in no time. With hard-won experience of the practical difficulties faced by developers working with eZ publish, and technical approval from eZ systems, creators of eZ publish, this book is a distillation of the authors expertise, and the perfect way to master the system. If you are new to eZ publish, or have been frustrated or perplexed at being unable to get the most from eZ publish, then this is the book for you. A working knowledge of PHP is required to get the most from eZ publish, and from this book.


This book takes you through the process of designing and building content-rich web sites and applications using eZ publish. Famed for its power and flexibility, eZ publish can be daunting on first approach. Moreover, it has advanced features that reward the investment in learning. This book exists to ease experienced PHP developers into thinking and developing the eZ publish way. With hard-won experience of the practical difficulties faced by developers working with eZ publish, and technical approval from eZ systems (creators of eZ publish) this book is a distillation of the authors expertise, and the perfect way to master the system.b


Although there is good quality reference documentation on eZ publish, there are currently no books available. Therefore, this book has been written from the ground up, in a tutorial/case study style to fill this gap.

Who this book is for

This book is for Web developers new to eZ publish, while experienced developers of eZ publish who want to consolidate their knowledge will learn new techniques from eZ publish masters.

It has also been designed for those new to eZ publish while also being aimed at experienced developers who want to consolidate their knowledge and learn new tricks from eZ publish masters

Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software