if ( 0 == $this->getID() ) {
if ( 'edit' == $action ) {
- wfProfileOut( $fname );
+ wfProfileOut( $fname );
# Should we put something in the textarea?
# if &preload=Pagename is set, we try to get
# the revision text and put it in.
# Don't preload anything.
# We used to put MediaWiki:Newarticletext here.
# This is now shown above the edit box instead.
- return '';
+ return '';
}
wfProfileOut( $fname );
-
+
return wfMsg( 'noarticletext' );
- } else {
+ } else {
$this->loadContent( $noredir );
# check if we're displaying a [[User talk:x.x.x.x]] anonymous talk page
if ( $this->mTitle->getNamespace() == NS_USER_TALK &&
wfProfileOut( $fname );
}
+ function render() {
+ global $wgOut;
+
+ $wgOut->setArticleBodyOnly(true);
+ $this->view();
+ }
+
/**
* Insert a new empty page record for this article.
* This *must* be followed up by creating a revision
var $mParserOptions;
var $mShowFeedLinks = false;
var $mEnableClientCache = true;
+ var $mArticleBodyOnly = false;
/**
* Constructor
function getScript() { return $this->mScripts; }
function setETag($tag) { $this->mETag = $tag; }
+ function setArticleBodyOnly($only) { $this->mArticleBodyOnly = $only; }
function addLink( $linkarr ) {
# $linkarr should be an associative array of attributes. We'll escape on output.
setcookie( $name, $val, $exp, '/' );
}
- wfProfileIn( 'Output-skin' );
- $sk->outputPage( $this );
- wfProfileOut( 'Output-skin' );
+ if ($this->mArticleBodyOnly) {
+ $this->out($this->mBodytext);
+ } else {
+ wfProfileIn( 'Output-skin' );
+ $sk->outputPage( $this );
+ wfProfileOut( 'Output-skin' );
+ }
$this->sendCacheControl();
ob_end_flush();
require_once( 'GlobalFunctions.php' );
require_once( 'Hooks.php' );
require_once( 'Namespace.php' );
-require_once( 'RecentChange.php' );
+require_once( 'RecentChange.php' );
require_once( 'User.php' );
require_once( 'Skin.php' );
require_once( 'OutputPage.php' );
$messageMemc =& wfGetMessageCacheStorage();
$parserMemc =& wfGetParserCacheStorage();
-wfDebug( 'Main cache: ' . get_class( $wgMemc ) .
- "\nMessage cache: " . get_class( $messageMemc ) .
+wfDebug( 'Main cache: ' . get_class( $wgMemc ) .
+ "\nMessage cache: " . get_class( $messageMemc ) .
"\nParser cache: " . get_class( $parserMemc ) . "\n" );
wfProfileOut( $fname.'-memcached' );
wfProfileIn( $fname.'-database' );
if ( !$wgDBservers ) {
- $wgDBservers = array(array(
+ $wgDBservers = array(array(
'host' => $wgDBserver,
'user' => $wgDBuser,
'password' => $wgDBpassword,
wfProfileIn( $fname.'-User' );
# Skin setup functions
-# Entries can be added to this variable during the inclusion
+# Entries can be added to this variable during the inclusion
# of the extension file. Skins can then perform any necessary initialisation.
foreach ( $wgSkinExtensionFunctions as $func ) {
$func();
# SEARCH INDEX UPDATES, AND MANY MANY THINGS.
# DO NOT USE THIS MODE EXCEPT FOR TESTING RIGHT NOW.
#
-# To disable it, the easiest thing could be to uncomment the
+# To disable it, the easiest thing could be to uncomment the
# following; they should effectively disable the UI switch functionality
#
# $wgLangClass = $wgContLangClass;
# $wgLanguageCode = $wgContLanguageCode;
# $wgLang = $wgContLang;
#
-# TODO: Need to change reference to $wgLang to $wgContLang at proper
+# TODO: Need to change reference to $wgLang to $wgContLang at proper
# places, including namespaces, dates in signatures, magic words,
# and links
#
wfProfileIn( $fname.'-extensions' );
# Extension setup functions for extensions other than skins
-# Entries should be added to this variable during the inclusion
-# of the extension file. This allows the extension to perform
+# Entries should be added to this variable during the inclusion
+# of the extension file. This allows the extension to perform
# any necessary initialisation in the fully initialised environment
foreach ( $wgExtensionFunctions as $func ) {
$func();
wfProfileIn( 'Skin::outputPage' );
$this->initPage( $out );
+
$out->out( $out->headElement() );
$out->out( "\n<body" );
$out->out( "<!-- Wiki debugging output:\n" .
$out->mDebugtext . "-->\n" );
}
+
$out->out( $this->beforeContent() );
$out->out( $out->mBodytext . "\n" );
*/
function userCanPreview( $action ) {
global $wgTitle, $wgRequest, $wgUser;
-
+
if( $action != 'submit' )
return false;
if( !$wgRequest->wasPosted() )
return false;
- if( !$wgTitle->userCanEditCssJsSubpage() )
+ if( !$wgTitle->userCanEditCssJsSubpage() )
return false;
return $wgUser->matchEditToken(
$wgRequest->getVal( 'wpEditToken' ) );
}
-
+
# get the user/site-specific stylesheet, SkinPHPTal called from RawPage.php (settings are cached that way)
function getUserStylesheet() {
global $wgOut, $wgStylePath, $wgContLang, $wgUser, $wgRequest, $wgTitle, $wgAllowUserCss;
return $s . $this->reallyDoGetUserStyles();
}
-
+
function reallyDoGetUserStyles() {
global $wgUser;
$s = '';
return $s;
}
-
+
function getCategoryLinks () {
global $wgOut, $wgTitle, $wgParser;
global $wgUseCategoryMagic, $wgUseCategoryBrowser, $wgLang;
}
}
}
-
+
$go = wfMsg( 'go' );
$sp = wfMsg( 'specialpages' );
$spp = $wgContLang->specialPage( 'Specialpages' );
$s .= "<select name=\"wpDropdown\">\n";
$s .= "<option value=\"{$spp}\">{$sp}</option>\n";
-
+
foreach ( $a as $name => $desc ) {
$p = $wgContLang->specialPage( $name );
$s .= "<option value=\"{$p}\">{$desc}</option>\n";
# 0 != $id->getEmailauthenticationtimestamp() && # .. which is authenticated
# 1 != $wgUser->getOption('disablemail'); # and not disabled
}
-
+
function emailUserLink() {
global $wgTitle;
$title = Title::makeTitle( NS_SPECIAL, $name );
return $title->getLocalURL( $urlaction );
}
-
+
/*static*/ function makeI18nUrl ( $name, $urlaction='' ) {
$title = Title::newFromText( wfMsgForContent($name) );
$this->checkTitle($title, $name);
return $title->getLocalURL( $urlaction );
}
-
+
/*static*/ function makeUrl ( $name, $urlaction='' ) {
$title = Title::newFromText( $name );
$this->checkTitle($title, $name);
*
* @return array
* @access private
- */
+ */
function buildSidebar() {
$fname = 'SkinTemplate::buildSidebar';
wfProfileIn( $fname );
-
+
$bar = array();
$lines = explode( "\n", wfMsgForContent( 'sidebar' ) );
foreach ($lines as $line) {
} else { continue; }
}
}
-
+
wfProfileOut( $fname );
return $bar;
}
* Todo: Needs some serious refactoring into functions that correspond
* to the computations individual esi snippets need. Most importantly no body
* parsing for most of those of course.
- *
+ *
* PHPTAL support has been moved to a subclass in SkinPHPTal.php,
* and is optional. You'll need to install PHPTAL manually to use
* skins that depend on it.
function translate($value) {
$fname = 'SkinTemplate-translate';
wfProfileIn( $fname );
-
+
// Hack for i18n:attributes in PHPTAL 1.0.0 dev version as of 2004-10-23
$value = preg_replace( '/^string:/', '', $value );
-
+
$value = wfMsg( $value );
// interpolate variables
while (preg_match('/\$([0-9]*?)/sm', $value, $m)) {
function &setupTemplate( $classname, $repository=false, $cache_dir=false ) {
return new $classname();
}
-
+
/**
* initialize various variables and generate the template
*
$fname = 'SkinTemplate::outputPage';
wfProfileIn( $fname );
-
+
extract( $wgRequest->getValues( 'oldid', 'diff' ) );
wfProfileIn( "$fname-init" );
# Language links
$language_urls = array();
-
+
if ( !$wgHideInterlanguageLinks ) {
foreach( $wgOut->getLanguageLinks() as $l ) {
$nt = Title::newFromText( $l );
wfProfileIn( "$fname-execute" );
$res = $tpl->execute();
wfProfileOut( "$fname-execute" );
-
+
// result may be an error
$this->printOrError( $res );
wfProfileOut( $fname );
}
-
+
/**
* Output the string, or print error message if it's
* an error object of the appropriate type.
function buildPersonalUrls() {
$fname = 'SkinTemplate::buildPersonalUrls';
wfProfileIn( $fname );
-
+
/* set up the default links for the personal toolbar */
global $wgShowIPinHeader;
$personal_urls = array();
'exists' => $title->getArticleID() != 0?true:false
);
}
-
+
function makeArticleUrlDetails( $name, $urlaction='' ) {
$title = Title::newFromText( $name );
$title= $title->getSubjectPage();
'exists' => $title->getArticleID() != 0?true:false
);
}
-
+
/**
* an array of edit links by default used for the tabs
* @return array
global $wgContLang, $wgUseValidation, $wgDBprefix, $wgValidationForAnons;
$fname = 'SkinTemplate::buildContentActionUrls';
wfProfileIn( $fname );
-
+
global $wgUser, $wgRequest;
$action = $wgRequest->getText( 'action' );
$section = $wgRequest->getText( 'section' );
$nskey,
!$this->mTitle->isTalkPage(),
'', true);
-
+
$content_actions['talk'] = $this->tabAction(
$this->mTitle->getTalkPage(),
'talk',
$this->mTitle->isTalkPage(),
'',
true);
-
+
wfProfileIn( "$fname-edit" );
if ( $this->mTitle->userCanEdit() ) {
$oid = ( $oldid && ! isset( $diff ) ) ? '&oldid='.IntVal( $oldid ) : false;
}
if( $wgUser->isLoggedIn() || $wgValidationForAnons ) { # and $action != 'submit' ) {
- # Validate tab. TODO: add validation to logged-in user rights
+ # Validate tab. TODO: add validation to logged-in user rights
if($wgUseValidation && ( $action == "" || $action=='view' ) ){ # && $wgUser->isAllowed('validate')){
if ( $oldid ) $oid = IntVal( $oldid ) ; # Use the oldid
else
wfProfileOut( $fname );
return $content_actions;
}
-
+
/**
function buildNavUrls () {
$fname = 'SkinTemplate::buildNavUrls';
wfProfileIn( $fname );
-
+
global $wgUser, $wgRequest;
global $wgSiteSupportPage, $wgEnableUploads, $wgUploadNavigationUrl;
$action = $wgRequest->getText( 'action' );
$oldid = $wgRequest->getVal( 'oldid' );
$diff = $wgRequest->getVal( 'diff' );
-
+
$nav_urls = array();
$nav_urls['mainpage'] = array('href' => $this->makeI18nUrl('mainpage'));
$nav_urls['randompage'] = array('href' => $this->makeSpecialUrl('Random'));
$nav_urls['help'] = array('href' => $this->makeI18nUrl('helppage'));
if( $wgEnableUploads ) {
if ($wgUploadNavigationUrl) {
- $nav_urls['upload'] = array('href' => $wgUploadNavigationUrl );
- } else {
+ $nav_urls['upload'] = array('href' => $wgUploadNavigationUrl );
+ } else {
$nav_urls['upload'] = array('href' => $this->makeSpecialUrl('Upload'));
}
} else {
}
$nav_urls['specialpages'] = array('href' => $this->makeSpecialUrl('Specialpages'));
-
+
// A print stylesheet is attached to all pages, but nobody ever
// figures that out. :) Add a link...
if( $this->iscontent && ($action == '' || $action == 'view' || $action == 'purge' ) ) {
'text' => wfMsg( 'printableversion' ),
'href' => $wgRequest->appendQuery( 'printable=yes' ) );
}
-
+
if( $this->mTitle->getNamespace() != NS_SPECIAL) {
$nav_urls['whatlinkshere'] = array(
'href' => $this->makeSpecialUrl("Whatlinkshere/$this->thispage")
return 'nstab-main';
}
}
-
+
/**
* @access private
*/
function setupUserCss() {
$fname = 'SkinTemplate::setupUserCss';
wfProfileIn( $fname );
-
+
global $wgRequest, $wgAllowUserCss, $wgUseSiteCss, $wgContLang, $wgSquidMaxage, $wgStylePath, $wgUser;
$sitecss = '';
$siteargs = '&maxage=' . $wgSquidMaxage;
# Add user-specific code if this is a user and we allow that kind of thing
-
+
if ( $wgAllowUserCss && $this->loggedin ) {
$action = $wgRequest->getText('action');
-
+
# if we're previewing the CSS page, use it
if( $this->mTitle->isCssSubpage() and $this->userCanPreview( $action ) ) {
$siteargs = "&smaxage=0&maxage=0";
}
if ($wgContLang->isRTL()) $sitecss .= '@import "' . $wgStylePath . '/' . $this->stylename . '/rtl.css";' . "\n";
-
+
# If we use the site's dynamic CSS, throw that in, too
if ( $wgUseSiteCss ) {
$sitecss .= '@import "' . $this->makeNSUrl(ucfirst($this->skinname) . '.css', 'action=raw&ctype=text/css&smaxage=' . $wgSquidMaxage, NS_MEDIAWIKI) . '";' . "\n";
$sitecss .= '@import "' . $this->makeUrl('-','action=raw&gen=css' . $siteargs) . '";' . "\n";
}
-
+
# If we use any dynamic CSS, make a little CDATA block out of it.
-
+
if ( !empty($sitecss) || !empty($usercss) ) {
$this->usercss = "/*<![CDATA[*/\n" . $sitecss . $usercss . '/*]]>*/';
}
function setupUserJs() {
$fname = 'SkinTemplate::setupUserJs';
wfProfileIn( $fname );
-
+
global $wgRequest, $wgAllowUserJs, $wgJsMimeType;
$action = $wgRequest->getText('action');
}
wfProfileOut( $fname );
}
-
+
/**
* returns css with user-specific options
* @access public
function getUserStylesheet() {
$fname = 'SkinTemplate::getUserStylesheet';
wfProfileIn( $fname );
-
+
global $wgUser;
$s = "/* generated user stylesheet */\n";
$s .= $this->reallyDoGetUserStyles();
wfProfileOut( $fname );
return $s;
}
-
+
/**
* @access public
*/
function getUserJs() {
$fname = 'SkinTemplate::getUserJs';
wfProfileIn( $fname );
-
+
global $wgStylePath;
$s = '/* generated javascript */';
$s .= "var skin = '{$this->skinname}';\nvar stylepath = '{$wgStylePath}';";
if ('<'.$msgKey.'>' != $userJS) {
$s .= $userJS;
}
-
+
wfProfileOut( $fname );
return $s;
}
$this->data = array();
$this->translator = new MediaWiki_I18N();
}
-
+
/**
* @access public
*/
function set( $name, $value ) {
$this->data[$name] = $value;
}
-
+
/**
* @access public
*/
function setRef($name, &$value) {
$this->data[$name] =& $value;
}
-
+
/**
* @access public
*/
function setTranslator( &$t ) {
$this->translator = &$t;
}
-
+
/**
* @access public
*/
function text( $str ) {
echo htmlspecialchars( $this->data[$str] );
}
-
+
/**
* @access private
*/
function html( $str ) {
echo $this->data[$str];
}
-
+
/**
* @access private
*/
function msg( $str ) {
echo htmlspecialchars( $this->translator->translate( $str ) );
}
-
+
/**
* @access private
*/
function msgHtml( $str ) {
echo $this->translator->translate( $str );
}
-
+
/**
* An ugly, ugly hack.
* @access private
$wgOut->mParserOptions, true );
echo $parserOutput->getText();
}
-
+
/**
* @access private
*/
function haveData( $str ) {
return $this->data[$str];
}
-
+
/**
* @access private
*/
}
}
-} // end of if( defined( 'MEDIAWIKI' ) )
+} // end of if( defined( 'MEDIAWIKI' ) )
?>
<head>
<title>MediaWiki <?php echo $wgVersion ?></title>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
-
+
<style type='text/css' media='screen, projection'>
html, body {
color: #000;
</head>
<body>
<img src='skins/common/images/mediawiki.png' alt='The MediaWiki logo' />
-
+
<h1>MediaWiki <?php echo $wgVersion ?></h1>
<div class='error'>
<?php
$wgTitle = Title::newFromID( $curid );
} else {
$wgTitle = Title::newFromURL( $title );
- /* check variant links so that interwiki links don't have to worry about
+ /* check variant links so that interwiki links don't have to worry about
the possible different language variants
*/
if( !is_null($wgTitle) && $wgTitle->getArticleID() == 0 )
$wgContLang->findVariantLink( $title, $wgTitle );
-
+
}
wfProfileOut( 'main-misc-setup' );
case 'info':
case 'markpatrolled':
case 'validate':
+ case 'render':
$wgArticle->$action();
break;
case 'print':
User::SetupSession();
}
# Continue...
- case 'edit':
+ case 'edit':
$internal = $wgRequest->getVal( 'internaledit' );
$external = $wgRequest->getVal( 'externaledit' );
$section = $wgRequest->getVal( 'section' );
- $oldid = $wgRequest->getVal( 'oldid' );
- if(!$wgUseExternalEditor || $action=='submit' || $internal ||
+ $oldid = $wgRequest->getVal( 'oldid' );
+ if(!$wgUseExternalEditor || $action=='submit' || $internal ||
$section || $oldid || (!$wgUser->getOption('externaleditor') && !$external)) {
require_once( 'includes/EditPage.php' );
$editor = new EditPage( $wgArticle );
- $editor->submit();
+ $editor->submit();
} elseif($wgUseExternalEditor && ($external || $wgUser->getOption('externaleditor'))) {
require_once( 'includes/ExternalEdit.php' );
$mode = $wgRequest->getVal( 'mode' );
- $extedit = new ExternalEdit( $wgArticle, $mode );
+ $extedit = new ExternalEdit( $wgArticle, $mode );
$extedit->edit();
}
break;
/** */
require_once( "commandLine.inc" );
+require_once("memcached-client.php");
$mcc = new memcached( array('persistant' => true) );
$mcc->set_servers( $wgMemCachedServers );