Wikia.php

From Organic Design wiki
Info.svg This code is in our Git repository here.

Note: If there is no information in this page about this code and it's a MediaWiki extension, there may be something at mediawiki.org.

Specification

The wikia.php script is the heart of the OD/Wikia system. The Install a MediaWiki code-base procedure includes a step to ensure that it's LocalSettings.php file includes the wikia.php script. That script then sets up the wiki to a default state and determines which specific wiki instance's LocalSettings.php should be executed based on the domain part of the request. Following is a list of the things that wikia.php does.

Memory and other PHP configuration

Currently this just sets the PHP memory limit to 64M.

Database Access

The database access infotmation is determined from the /var/www/tools/wikid.conf file and is imported at this point.

Add Namespaces

Our wiki organisation system uses some specific namespaces such as "Extension" and "Record" which are added here.

MediaWiki Globals

Global configuration variables are set to default wikia state such as friendly URL's, paths and file/upload settings.

Domain Specific Configuration

The document root is set based on the requesting domain at this point unless the request is from the command line, in which case the domain specified in the AdminSettings.php file are used instead.

Google Analytics

Id there are any Google analytics codes in the $wgGoogleTrackingCodes array then their script entries are added here.

Wiki-Specific LocalSettings

The wiki determined by the requests domain part is included here.

Site Maintenance

If the $wgSiteDown global is set, then the maintenance page is displayed here and execution halted.

Post-LocalSettings Configuration

Some settings such as EmergencyEmail are finalised after the wiki-specific settings are imported.

WikiaInfo

For OD only the WikiaInfo special page extension is included here - this should probably be moved into OD's LocalSettings.

Activity Log

A MediaWiki-specific logging facility is added at this point which logs session and user information to /var/www/activity.log. It also allows for sophisticated blocking based on IP, session or user.

See also