* Retieves key/value pairs to circumvent global variables
* Note that keys are case-insensitive!
*/
- function getVal( $key, $default = "" ) {
+ function getVal( $key, $default = '' ) {
$key = strtolower( $key );
if( isset( $this->params[$key] ) ) {
return $this->params[$key];
return $default;
}
- /**
- * Checks if the wiki is set up at all, or configured but not activated
- */
- function checkSetup() {
- if ( file_exists( './LocalSettings.php' ) ) {
- /* LocalSettings exists, commerce normally */
- return;
- }
-
- /* LocalSettings is not in the right place, do something */
- $IP = ".";
- require_once( 'includes/DefaultSettings.php' ); # used for printing the version
- $out = file_get_contents( "./setup_message.html" );
- $out = str_replace( "$1", $wgVersion, $out );
- if ( file_exists( 'config/LocalSettings.php' ) ) {
- $msg = "To complete the installation, move <tt>config/LocalSettings.php</tt> to the parent directory.";
- } else {
- $msg = "Please <a href='config/index.php' title='setup'>setup the wiki</a> first.";
- }
- $out = str_replace( "$2", $msg, $out );
- echo $out ;
- die();
- }
-
/**
* Initialization of ... everything
@return Article either the object to become $wgArticle, or NULL
* Note that $title here is *not* a Title object, but a string!
*/
function checkInitialQueries( $title,$action,&$output,$request, $lang) {
- wfProfileIn( 'MediaWiki::checkInitialQueries' );
if ($request->getVal( 'printable' ) == 'yes') {
$output->setPrintable();
}
$lang->findVariantLink( $title, $ret );
}
- wfProfileOut( 'MediaWiki::checkInitialQueries' );
return $ret ;
}
// Do this above the read whitelist check for security...
$title = Title::makeTitle( NS_SPECIAL, 'Search' );
}
- $this->setVal( "Search", $search );
+ $this->setVal( 'Search', $search );
# If the user is not logged in, the Namespace:title of the article must be in
# the Read array in order for the user to see it. (We have to check here to
* @return mixed an Article, or a string to redirect to another URL
*/
function initializeArticle( $title, $request ) {
+ global $wgTitle;
wfProfileIn( 'MediaWiki::initializeArticle' );
$action = $this->getVal('Action');
$article = $this->articleFromTitle( $title );
// Namespace might change when using redirects
- if( $action == 'view' && !$request->getVal( 'oldid' ) && $request->getVal( 'redirect' ) != 'no' ) {
- $target = $article->followRedirect();
- if( is_string( $target ) ) {
- global $wgDisableHardRedirects;
- if( !$wgDisableHardRedirects ) {
- // we'll need to redirect
- return $target;
- }
+ if( $action == 'view' && !$request->getVal( 'oldid' ) &&
+ $request->getVal( 'redirect' ) != 'no' ) {
+ $dbr=&wfGetDB(DB_SLAVE);
+
+ // If we don't check for existance we'll get "Trying to get
+ // property of non-object" E_NOTICE in Article::loadPageData() when
+ // viewing a page that does not exist
+ if ( $article->exists() ) {
+ $article->loadPageData($article->pageDataFromTitle($dbr,$title));
}
- if( is_object( $target ) ) {
- // evil globals hack!
- global $wgTitle;
- $wgTitle = $target;
-
- $article = $this->articleFromTitle( $target );
- $article->setRedirectedFrom( $title );
+
+ /* Follow redirects only for... redirects */
+ if ($article->mIsRedirect) {
+ $target = $article->followRedirect();
+ if( is_string( $target ) ) {
+ global $wgDisableHardRedirects;
+ if( !$wgDisableHardRedirects ) {
+ // we'll need to redirect
+ return $target;
+ }
+ }
+ if( is_object( $target ) ) {
+ /* Rewrite environment to redirected article */
+ $rarticle = $this->articleFromTitle($target);
+ $rarticle->loadPageData($rarticle->pageDataFromTitle($dbr,$target));
+ if ($rarticle->mTitle->mArticleID) {
+ $article = $rarticle;
+ $wgTitle = $target;
+ $article->setRedirectedFrom( $title );
+ } else {
+ $wgTitle = $title;
+ }
+ }
+ } else {
+ $wgTitle = $article->mTitle;
}
}
wfProfileOut( 'MediaWiki::initializeArticle' );
$action = $this->getVal('Action');
if( in_array( $action, $this->getVal('DisabledActions',array()) ) ) {
/* No such action; this will switch to the default case */
- $action = "nosuchaction";
+ $action = 'nosuchaction';
}
switch( $action ) {
}; /* End of class MediaWiki */
-?>
\ No newline at end of file
+?>