An independent media centre content management system
Oscailt 3.x Design Document
Design Document Version 1.1
Table of Contents
1. Introduction
1.1 How To Read This Document
1.2 Understanding Oscailt For Programmers
2. Design Overview
2.1 The Main Layers of Oscailt
2.2 The Main Functional Blocks
2.3 Oscailt 3.x Architecture
2.3.1 Meta Data Management System
2.3.2 Optimised Runtime Display System
2.3.3 XML Meta Data Object Set
3. Display Overview
3.1 Introduction
3.2 Basic Layout
3.3 Page Rendering
3.3.1 Output Buffering and Oscailt
4. Design Details
4.1 Layout, Module and Element Configuration
4.1.1 How and Where Elements, Modules and Layouts are Implemented
4.1.2 Storage of the Elements, Modules and Layouts Objects
4.2 Handling of URL Requests
4.2.1 Use of Oscailt Friendly URLs
4.2.2 Implementation of Oscailt Friendly URLs
4.2.3 Limitations of Oscailt Friendly URLs
4.3 The Code Cache
4.3.1 Building the Code Cache
4.3.2 File Organistation in the Code Cache
4.3.2.1 Organistation by Language
4.4 More on Handling Requests and the Code Cache
4.4.1 Execution of index.php and Loading of Code Cache Objects
4.4.1.1 First Cached File: Displayable Runtime Module
4.4.1.2 Second Cached File: Page Layout Module
4.4.2 Execution Sequence for a Request in Live (Non Cached) Mode
4.5 File Organisation
4.6 Classes and Class Hierarchy
4.6.1 Runtime Display type Classes
4.6.2 More about Runtime Classes and Core Oscailt Classes
4.6.3 Class Tree for the Abstract Indy Classes
4.6.4 The IndyBasicObject Class and It's Derivatives
4.6.4.1 The IndyListObject Class and It's Derivatives
4.6.4.2 The IndySiteModuleObject Class and It's Derivatives
4.6.5 The IndyObjectManager Class
4.6.5.1 Usage of indyObjectManager by index.php
4.6.5.2 Usage of indyObjectManager by admin.php
4.6.6 The IndyObjectActionRequest Class
4.6.7 The Classes in the indydataclasses Directory
4.6.8 The ItemAction Class and Editor Options
4.6.9 Core Functionality Classes from Oscailt 2x
4.7 Configuration within Oscailt
4.7.1 Config Options and Files
4.7.2 Changes to attachments.php
4.7.3 Changes to permissions.php
4.8 The Oscailt Database
4.8.1 Database Connect and Commits
4.8.2 List of Oscailt Database Tables
4.9 Edit Locks
4.10 Controlling Use of HTML and Other Tags in Input
4.11 Use of JavaScript in Oscailt
5. The Admin Functionality Explained
5.1 Admin.php Code Execution Sequence
5.1.1 Main Classes Used
5.2 Admin XML Files
5.2.1 More about the XML Files
5.3 Basic Admin Files
5.3.1 Miscellaneous Files
5.3.1.1 The Adminfooter.inc File
5.4 Edit Topics, Regions, Types and Languages
5.5 The IP Monitor
5.6 IP Banning
5.7 Editor Status and Messaging
6. Language Translation
6.1 Definiting Languages in Oscailt
6.2 Master Pages, Language Specific Pages: How to Translate Oscailt Public Pages
6.2.1 Default Language
6.3 How to Translate Oscailt Administration Pages
6.3.1 Language Versions of Administration Layout Pages
6.4 General Language Support Background
6.5 Unicode Support
6.6 Text Not Easily Translated
7. Log Files
7.1 sitelog.txt
7.2 actionlog.txt
7.3 securitylog.txt
7.4 spamlog.txt
7.5 reported_post.txt
7.6 spamlog_contact.txt
8. Caching and the QueryCache Class
8.1 The QueryCache Class
8.1.1 Database Cache
8.1.2 Database Connection(s)
8.1.3 Limitations of the Database Cache
8.1.4 Limitations: Update
8.2 The Image Cache
8.3 Other Caches Used by Oscailt
9. Editor Permissions and Roles
9.1 Important Files for Permissions and Roles
9.2 Data for Permissions and Roles
9.3 Role Permissions
9.3.1 Code Changes and Permission Updates
9.4 Permissions in Action
10. Module Specifics
10.1 Contact Form including Reported Posts
10.1.1 Reported Posts
10.2 The Publish Form
10.2.1 Overview
10.2.2 Components
10.2.3 Publish Processing
10.3 Events and Events Display
10.3.1 Overview
10.3.2 Displaying Events
10.3.2.1 Core Files for Event Functionality
10.3.3 Events and the Publish Form
11. Changing Code and Adding New Functionality
11.1 Overview
11.2 Process to Follow
11.3 Points to Consider
12. Exports and Dump Files
13. Use of Style Sheets in Oscailt
13.1 Overview
14. Appendix A - Some Background on Objects, Classes, Functions and Methods
14.1 Introduction
14.2 Classes and Objects
14.3 Functions and Methods
14.3.1 Syntax and Conventions
14.4 Object Data
14.5 Class Inheritance
15. Appendix B - Some Resources
15.1 PHP Manual
15.2 Editor Tool
15.3 File Difference and Merge Tools for Windows
15.4 Development Environment Tool
15.5 CVS Source Control
15.6 Unicode and UTF-8
Last updated: Nov 2012