Learning eZ publish 3: Building Content Management Solutions
Introduction
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
Index
- 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
- Setting Up
- 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
- Structuring Content
- 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 Content Classes
- 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
- Creation of Basic Classes
- 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
- Overview
- 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
- Navigation Menus
- Summary
- Principles
- 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
- Adding an Extension
- Modules
- Module Definitions
- Module Names and Views
- View Permissions
- View Parameters
- View Actions and Post Variables
- View Navigation
- Module Definitions
- Module Coding
- Reading Module Input
- Returning Information
- Processing a Template
- Redirecting a Module
- Module Functions
- Why Create an Extension?
- 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
- Designing Your Extension
- 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
- Category Datatype Design
- Integrating Existing Code with eZ publish
- Making a Bridge to External Applications
- Strategies
- Who Am I?
- Authentication
- Communicating with Google
- Modifying Existing Code
- Making a Bridge to External Applications
- Summary
- Extension Development Practices
- 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
- Define Your Hosting Requirements
- 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
- What Are Web Standards?
- 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
- String Operators
- Operators



