PHP 5 CMS Framework Development Table of Contents

Back to BOOK PAGE

Table of Contents

Preface
Chapter 1: CMS Architecture
Chapter 2: Administrators, Users, and Guests
Chapter 3: Organizing Code
Chapter 4: Sessions and Users
Chapter 5: Database and Data Objects
Chapter 6: Access Control
Chapter 7: Handling Extensions
Chapter 8: Caches and Handlers
Chapter 9: Menus
Chapter 10: Languages
Chapter 11: Presentation Services
Chapter 12: Other Services
Chapter 13: Error Handling
Chapter 14: Real Content
Appendix A: Packaging
Index

  • Chapter 1: CMS Architecture
    • The Idea of a CMS
      • Critical CMS Features
      • Desirable CMS Features
      • System Management
    • Technology for CMS Building
      • Leveraging PHP5
      • Some PHP Policies
      • Classes and Objects
      • Objects, Patterns, and Refactoring
      • The Object-Relational Compromise
      • Basics of Combining PHP and XHTML
      • Model, View, and Controller
    • The CMS Environment
      • Hosting the CMS
      • Basic Browser Matters
      • Security of a CMS
      • Some CMS Terminology
    • Summary
  • Chapter 2: Administrators, Users, and Guests
    • The Problem
    • Discussion and Considerations
      • Who Needs Users?
      • Secure Authentication
      • Secure Storage of Passwords
      • Blocking SQL Injection
      • Login
      • Managing User Data
      • User Self Service
      • Customizing for Users
      • Extended User Information
    • Framework Solution
      • The User Database Table
      • Indexes on Users
      • Keeping User Tables in Step
      • Achieving Login
      • Administering Users
      • Generating Passwords
      • Replacing a User View
      • Extending a User View
    • Summary
  • Chapter 3: Organizing Code
    • The Problem
    • Discussion and Considerations
      • Security
      • Methods of Code Inclusion
      • Practicality in Coding
    • Framework Solution
      • Autoloading
      • The Smart Class Mapper
      • Digression on the Singleton Pattern
      • Finding a Path to the Class
      • Populating the Dynamic Class Map
      • Saving Map Elements
    • Summary
  • Chapter 4: Sessions and Users
    • The Problem
    • Discussion and Considerations
      • Why Sessions?
      • How Sessions Work
      • Avoiding Session Vulnerabilities
      • Search Engine Bots
      • Session Data and Scalability
    • Framework Solution
      • Building a Session Handler
        • Creating a Session
        • Finding the IP Address
        • Validating a Session
        • Remembering Users
        • Completing Session Handling
      • Session Data
        • Session Data and Bots
        • Retrieving Session Data
        • Keeping Session Data Tidy
    • Summary
  • Chapter 5: Database and Data Objects
    • The Problem
    • Discussion and Considerations
      • Database Dependency
      • Ease of Development
      • Keeping up with Change
      • Database Security
      • Pragmatic Error Handling
    • Framework Solution
      • Class Structure
        • Connecting to a Database
      • Handling Databases Easily
        • Prefixing Table Names in SQL
        • Making the Database Work
        • Getting Hold of Data
        • Higher Level Data Access
        • Assisted Update and Insert
        • What Happened?
      • Database Extended Services
        • Getting Data about Data
        • Easier Data about Data
        • Aiding Maintenance
      • Data Objects
        • Rudimentary Data Object Methods
        • Data Object Input and Output
        • Setting Data in Data Objects
        • Sequencing Database Rows
      • Database Maintenance Utility
    • Summary
  • Chapter 6: Access Control
    • The Problem
    • Discussion and Considerations
      • Adding Hierarchy
      • Adding Constraints
      • Avoiding Unnecessary Restrictions
      • Some Special Roles
      • Implementation Efficiency
      • Where are the Real Difficulties?
    • Framework Solution
      • Database for RBAC
      • Administering RBAC
      • The General RBAC Cache
      • Asking RBAC Questions
    • Summary
  • Chapter 7: Handling Extensions
    • The Problem
    • Discussion and Considerations
      • An Extension Ecosystem
        • Templates in the Ecosystem
        • Modules in the Ecosystem
        • Components in the Ecosystem
        • Component Templates
        • Modules Everywhere
      • More on Extensions
        • Templates
        • Modules
        • Components
        • Plug ins
      • Extension Parameters
    • Framework Solution
      • Packaging Extensions
      • Module Interface and Structure
      • The Logic of Module Activation
      • Component Interface and Structure
        • A Standardized Component Structure
      • Plug in Interface and Structure
      • Invoking Plug ins
      • Installing and Managing Extensions
        • Structuring Installer Tasks
        • Putting Extension Files in Place
        • Extensions and the Database
        • Knowing About Extension Classes
    • Summary
  • Chapter 8: Caches and Handlers
    • The Problem
    • Discussion and Considerations
      • Building Information Handlers
      • The Singleton Cache
        • The Disk Cache
        • Scalability and Database Cache
      • The XHTML Cache
      • Other Caches
    • Framework Solution
      • Abstract Cache Class
      • Singleton Object Cache Manager
      • Creating the Base Class Cached Singleton
      • Generalized Cache
    • Summary
  • Chapter 9: Menus
    • The Problem
    • Discussion and Considerations
      • Page Management by URI
      • Menu Database Requirements
      • Menu Management
      • Menu Construction
      • Menu Presentation
    • Framework Solution
      • Building the Menu Handler
      • Interfacing to Components
      • The Menu Creator
      • An Example of a Menu Module
    • Summary
  • Chapter 10: Languages
    • The Problem
    • Discussion and Considerations
      • Character Sets
      • UTF-8 and XHTML
      • Specifying Languages
      • Handling Multiple Languages in Code
      • Languages in CMS Extensions
      • Handling Languages in Data
    • Framework Solution
      • The gettext Implementation
        • File Formats for gettext
        • Functions for gettext
        • The PHPgettext Classes
        • The Language Class
        • Administrator Language Application
      • Handling Extensions
        • Managing Extension Translations
        • Installing Translations with CMS Extensions
        • Handling Multilingual Data
    • Summary
  • Chapter 11: Presentation Services
    • The Problem
    • Discussion and Considerations
      • Differing Points of View
      • Model View Controller
      • XHTML, CSS, and Themes
      • PHP for XHTML Creation
      • Widgets and XHTML
      • Page Control and Navigation
      • WYSIWYG Editors
      • XHTML Cleaning
      • The Administrator Interface
    • Framework Solution
      • Using "heredoc" to Define XHTML
      • Using Templating Engines
      • Some Widgets
      • Building Page Control
      • Supporting Editors
      • Cleaning Up XHTML
      • Administrator Database Management
    • Summary
  • Chapter 12: Other Services
    • The Problem
    • Discussion and Considerations
      • Parsing XML
      • Configuration Handling
      • WYSIWYG Editing
      • File and Directory Handling
      • Sending Mail
      • Parameter Objects
      • Administrator Ready-Made Functionality
    • Framework Solution
      • Reading XML Files Easily
      • Storing Configuration Data
      • Incorporating a WYSIWYG Editor
      • Dealing with Files and Directories
      • Compound Parameter Objects
      • Administrator Ready-Made Table Handlers
    • Summary
  • Chapter 13: Error Handling
    • The Problem
    • Discussion
      • PHP Error Handling
      • Database Errors
      • Application Errors
    • Framework Solution
      • Handling Database Errors
      • Page 404 Errors
    • Summary
  • Chapter 14: Real Content
    • The Problem
    • Discussion and Considerations
      • Articles, Blogs, Magazines, and FAQ
      • Comments and Reviews
      • Forums
      • Galleries, Repositories, and Streaming
      • E-commerce and Payments
      • Forms
      • Calendars
      • Integrators
      • RSS Readers
      • Other Categories
    • Framework Solution
      • A Simple Text Application
        • The Database Table for Simple Text
        • A Text Data Object
        • Administering Text Items—Controller
        • Administering Text Items—Viewer
        • Showing Text to Visitors
        • Menu Building
      • Simple Developments of Text Items
      • Building Advanced Text Systems
    • Summary

Back to BOOK PAGE

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
Resources
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
Sort A-Z