Difference between revisions of "Extension:WikiaInfo.php"

From Organic Design wiki
m
(move to svn)
 
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
<?php
+
{{svn|extensions|WikiaInfo/WikiaInfo.php}}
# Extension:WikiaInfo{{Category:Extensions}}{{php}}{{Category:Extensions created with Template:SpecialPage}}{{Category:OD2}}
 
# - Licenced under LGPL (http://www.gnu.org/copyleft/lesser.html)
 
# - Author: [http://www.organicdesign.co.nz/nad User:Nad]
 
# - Started: 2007-08-27
 
 
if (!defined('MEDIAWIKI')) die('Not an entry point.');
 
 
define('WIKIAINFO_VERSION','1.0.0, 2007-08-27');
 
 
$wgExtensionFunctions[] = 'wfSetupWikiaInfo';
 
 
$wgExtensionCredits['specialpage'][] = array(
 
'name'        => 'Special:WikiaInfo',
 
'author'      => '[http://www.organicdesign.co.nz/nad User:Nad]',
 
'description' => 'List the currently running wikia and the domains pointing to them',
 
'url'        => 'http://www.organicdesign.co.nz/Extension:WikiaInfo.php',
 
'version'    => WIKIAINFO_VERSION
 
);
 
 
require_once "$IP/includes/SpecialPage.php";
 
 
# Define a new class based on the SpecialPage class
 
class SpecialWikiaInfo extends SpecialPage {
 
 
# Constructor
 
function SpecialWikiaInfo() {
 
SpecialPage::SpecialPage('WikiaInfo','sysop',true,false,false,false);
 
}
 
 
# Override SpecialPage::execute()
 
function execute() {
 
global $wgOut;
 
 
 
$wgOut->addWikiText("{{#tree:openlevels=1\n*'''Settings files'''\n");
 
 
 
# Get list of domain symlinks by inode
 
$domains = array();
 
$handle = opendir($GLOBALS['domains']);
 
while (false !== ($link = readdir($handle))) {
 
if (!ereg('^\\.',$link)) {
 
$stat  = stat($link);
 
$inode = $stat[1];
 
if (is_array($domains[$inode])) $domains[$inode][] = $link;
 
else $domains[$inode] = array($link);
 
}
 
}
 
closedir($handle);
 
 
 
# Loop through settings files
 
$wikia = array();
 
$handle = opendir($GLOBALS['settings']);
 
while (false !== ($file = readdir($handle))) {
 
if (!ereg('^\\.',$file)) {
 
$stat  = stat($file);
 
$inode = $stat[1];
 
$wgOut->addWikiText("**'''$file'''\n");
 
if (is_array($domains[$inode])) {
 
foreach ($domains[$inode]) as $domain) $wgOut->addWikiText("***[http://$domain $domain]\n");
 
}
 
}
 
}
 
closedir($handle);
 
 
 
$wgOut->addWikiText("}}\n");
 
}
 
 
}
 
 
# Called from $wgExtensionFunctions array when initialising extensions
 
function wfSetupWikiaInfo() {
 
global $wgLanguageCode,$wgMessageCache;
 
$wgMessageCache->addMessages(array('wikiainfo' => 'Current Wikia Information'));
 
SpecialPage::addPage(new SpecialWikiaInfo());
 
}
 
?>
 

Latest revision as of 03:27, 12 September 2009

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.