| |
Back to BOOK PAGE
Table of ContentsPreface 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- Chapter 13: Error Handling
- The Problem
- Discussion
- PHP Error Handling
- Database Errors
- Application Errors
- Framework Solution
- Handling Database Errors
- Page 404 Errors
- 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
Back to BOOK PAGE
| |
|