2005-12-30 12:25:54 +00:00
|
|
|
<?php
|
|
|
|
|
|
2006-01-10 14:58:06 +00:00
|
|
|
class MediaWiki {
|
|
|
|
|
|
|
|
|
|
var $params = array () ;
|
|
|
|
|
|
|
|
|
|
function setVal ( $key , &$value ) {
|
|
|
|
|
$this->param[strtolower($key)] = $value ;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getVal ( $key , $default = "" ) {
|
|
|
|
|
$key = strtolower ( $key ) ;
|
|
|
|
|
if ( isset ( $this->params[$key] ) ) {
|
|
|
|
|
return $this->params[$key] ;
|
2005-12-30 12:25:54 +00:00
|
|
|
}
|
2006-01-10 14:58:06 +00:00
|
|
|
return $default ;
|
|
|
|
|
}
|
|
|
|
|
|
2006-01-10 15:45:37 +00:00
|
|
|
function performAction ( $action , &$output , &$article , &$title , &$user , &$request ) {
|
2006-01-10 14:58:06 +00:00
|
|
|
switch( $action ) {
|
|
|
|
|
case 'view':
|
|
|
|
|
$output->setSquidMaxage( $this->getVal('SquidMaxage') );
|
|
|
|
|
$article->view();
|
|
|
|
|
break;
|
|
|
|
|
case 'watch':
|
|
|
|
|
case 'unwatch':
|
|
|
|
|
case 'delete':
|
|
|
|
|
case 'revert':
|
|
|
|
|
case 'rollback':
|
|
|
|
|
case 'protect':
|
|
|
|
|
case 'unprotect':
|
|
|
|
|
case 'info':
|
|
|
|
|
case 'markpatrolled':
|
|
|
|
|
case 'validate':
|
|
|
|
|
case 'render':
|
|
|
|
|
case 'deletetrackback':
|
|
|
|
|
case 'purge':
|
|
|
|
|
$article->$action();
|
|
|
|
|
break;
|
|
|
|
|
case 'print':
|
|
|
|
|
$article->view();
|
|
|
|
|
break;
|
|
|
|
|
case 'dublincore':
|
|
|
|
|
if( !$this->getVal('EnableDublinCoreRdf') ) {
|
|
|
|
|
wfHttpError( 403, 'Forbidden', wfMsg( 'nodublincore' ) );
|
|
|
|
|
} else {
|
|
|
|
|
require_once( 'includes/Metadata.php' );
|
|
|
|
|
wfDublinCoreRdf( $article );
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 'creativecommons':
|
|
|
|
|
if( !$this->getVal('EnableCreativeCommonsRdf') ) {
|
|
|
|
|
wfHttpError( 403, 'Forbidden', wfMsg('nocreativecommons') );
|
|
|
|
|
} else {
|
|
|
|
|
require_once( 'includes/Metadata.php' );
|
|
|
|
|
wfCreativeCommonsRdf( $article );
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 'credits':
|
|
|
|
|
require_once( 'includes/Credits.php' );
|
|
|
|
|
showCreditsPage( $article );
|
|
|
|
|
break;
|
|
|
|
|
case 'submit':
|
2006-01-10 15:45:37 +00:00
|
|
|
if( !$this->getVal('CommandLineMode') && !$request->checkSessionCookie() ) {
|
2006-01-10 14:58:06 +00:00
|
|
|
# Send a cookie so anons get talk message notifications
|
|
|
|
|
User::SetupSession();
|
|
|
|
|
}
|
|
|
|
|
# Continue...
|
|
|
|
|
case 'edit':
|
2006-01-10 15:45:37 +00:00
|
|
|
$internal = $request->getVal( 'internaledit' );
|
|
|
|
|
$external = $request->getVal( 'externaledit' );
|
|
|
|
|
$section = $request->getVal( 'section' );
|
|
|
|
|
$oldid = $request->getVal( 'oldid' );
|
2006-01-10 14:58:06 +00:00
|
|
|
if(!$this->getVal('UseExternalEditor') || $action=='submit' || $internal ||
|
|
|
|
|
$section || $oldid || (!$user->getOption('externaleditor') && !$external)) {
|
|
|
|
|
require_once( 'includes/EditPage.php' );
|
|
|
|
|
$editor = new EditPage( $article );
|
|
|
|
|
$editor->submit();
|
|
|
|
|
} elseif($this->getVal('UseExternalEditor') && ($external || $user->getOption('externaleditor'))) {
|
|
|
|
|
require_once( 'includes/ExternalEdit.php' );
|
2006-01-10 15:45:37 +00:00
|
|
|
$mode = $request->getVal( 'mode' );
|
2006-01-10 14:58:06 +00:00
|
|
|
$extedit = new ExternalEdit( $article, $mode );
|
|
|
|
|
$extedit->edit();
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 'history':
|
|
|
|
|
if ($_SERVER['REQUEST_URI'] == $title->getInternalURL('action=history')) {
|
|
|
|
|
$output->setSquidMaxage( $this->getVal('SquidMaxage') );
|
|
|
|
|
}
|
|
|
|
|
require_once( 'includes/PageHistory.php' );
|
|
|
|
|
$history = new PageHistory( $article );
|
|
|
|
|
$history->history();
|
|
|
|
|
break;
|
|
|
|
|
case 'raw':
|
|
|
|
|
require_once( 'includes/RawPage.php' );
|
|
|
|
|
$raw = new RawPage( $article );
|
|
|
|
|
$raw->view();
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
if (wfRunHooks('UnknownAction', array($action, $article))) {
|
|
|
|
|
$output->errorpage( 'nosuchaction', 'nosuchactiontext' );
|
|
|
|
|
}
|
2005-12-30 12:25:54 +00:00
|
|
|
}
|
|
|
|
|
}
|
2006-01-07 13:31:29 +00:00
|
|
|
|
2006-01-10 14:58:06 +00:00
|
|
|
} ; # End of class MediaWiki
|
2006-01-07 13:31:29 +00:00
|
|
|
|
2005-12-30 12:25:54 +00:00
|
|
|
?>
|
|
|
|
|
|