Virtual Websites with MediaWiki and LAMP
From QED
| Content creation should not be recondite. It should not be this bizarre arcana that only experts and gold-plated computer science gurus can do. | ||
| -- Brendan Eich, inventor of Javascript, Innovators of the Net |
- Brief Tour of qed.princeton.edu
- Goals and Constraints
- Choices
- Synergy
Contents |
Brief Tour
Goals
- Straightforward web-based content creation and management
- Faculty projects
- Student projects
- Multiple editors per course and per project
- Integration with database
- access to data
- page generation
- Extensibility architecture
- "Isolation"
- "Look and feel"
- Search
- Widely used, open source "standards"
- LDAP support
- Guest logins without LDAP entanglement
- Fine-grained access control
- Distributed access control
- Extensibility
- Extensible extensions
- "While I Live, I Grow"
See also Some Salient Requirements
Constraints
- "Open Source" software
- LAMP
Choices
- MediaWikiwp — see QED:Rationale/Why MediaWiki
- Partitioning
- Namespaces
- Multiple installations
- One or more "wiki farms"
- One or more "QED" services
QED Access Restrictions
- Leverage MediaWiki and Apache mechanisms
- Namespaces
- Page protection
- File protection
- Extensions
- Image: namespace — © symbol in page name
- Folder-based access
- Category-based access
Synergy
Extensibility Framework
- MediaWiki + PHP + CSS + JavaScript
- MediaWiki plug-ins (software extensions)
- MediaWiki hooks (e.g. for LDAP login)
- MediaWiki templates (e.g. for Google Earth/Google Maps)
- MediaWiki support for adding new <tag>s
- MediaWiki configurability
An extensible extension
Category Queries
- Special:CategoryQuery — the basic extension
- MG/Maps/CQ — "data-driven" GUI
Transcluding the results of a PHP/MySQL query
- MG/Data and Analysis#Download
- this is accomplished by "transcluding" a special page: {{Special:ExportTable}}
- the page can be transcluded anywhere else;
- the glue: http://qed.princeton.edu/extensions/SpecialExportTable_php
- the nitty gritty: http://qed.princeton.edu/extensions/ExportTable_php
- this is accomplished by "transcluding" a special page: {{Special:ExportTable}}












