X-Git-Url: https://git.cyclocoop.org/%242?a=blobdiff_plain;f=index.php;h=30add938e09456752104fc62c60480b195e66649;hb=3a73fb06506d5f605a5a00ffb9a3f9d73f4e9623;hp=8fff434468a6194539234ac1221077088c617b22;hpb=2b1dfa10a9ef57dea8f5b1945605f3edaefc593e;p=lhc%2Fweb%2Fwiklou.git
diff --git a/index.php b/index.php
index 8fff434468..30add938e0 100644
--- a/index.php
+++ b/index.php
@@ -1,151 +1,123 @@
$GLOBALS overwrite vulnerability');
-}
-# Valid web server entry point, enable includes.
-# Please don't move this line to includes/Defines.php. This line essentially defines
-# a valid entry point. If you put it in includes/Defines.php, then any script that includes
-# it becomes an entry point, thereby defeating its purpose.
-define( 'MEDIAWIKI', true );
-require_once( './includes/Defines.php' );
+# Initialise common code
+$preIP = dirname( __FILE__ );
+require_once( "$preIP/includes/WebStart.php" );
-if( !file_exists( 'LocalSettings.php' ) ) {
- $IP = "." ;
- require_once( 'includes/DefaultSettings.php' ); # used for printing the version
-?>
-
-
-
- MediaWiki
-
-
-
-
-
-
- MediaWiki
-
- config/LocalSettings.php to the parent directory." );
- } else {
- echo( "Please
setup the wiki first." );
- }
- ?>
-
-
-
-
-getVal( 'maxlag' );
+if( !is_null( $maxLag ) && !$mediaWiki->checkMaxLag( $maxLag ) ) {
+ exit;
+}
# Query string fields
$action = $wgRequest->getVal( 'action', 'view' );
$title = $wgRequest->getVal( 'title' );
-if ($wgRequest->getVal( 'printable' ) == 'yes') {
- $wgOut->setPrintable();
+# Set title from request parameters
+$wgTitle = $mediaWiki->checkInitialQueries( $title, $action );
+if( $wgTitle === null ) {
+ unset( $wgTitle );
}
-if ( '' == $title && 'delete' != $action ) {
- $wgTitle = Title::newFromText( wfMsgForContent( 'mainpage' ) );
-} elseif ( $curid = $wgRequest->getInt( 'curid' ) ) {
- # URLs like this are generated by RC, because rc_title isn't always accurate
- $wgTitle = Title::newFromID( $curid );
-} else {
- $wgTitle = Title::newFromURL( $title );
- /* check variant links so that interwiki links don't have to worry about
- the possible different language variants
- */
- if( count($wgContLang->getVariants()) > 1 && !is_null($wgTitle) && $wgTitle->getArticleID() == 0 )
- $wgContLang->findVariantLink( $title, $wgTitle );
-
-}
wfProfileOut( 'main-misc-setup' );
-# Debug statement for user levels
-// print_r($wgUser);
-
-$search = $wgRequest->getText( 'search' );
-if( !is_null( $search ) && $search !== '' ) {
- // Compatibility with old search URLs which didn't use Special:Search
- // Do this above the read whitelist check for security...
- $wgTitle = Title::makeTitle( NS_SPECIAL, '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
-# catch special pages etc. We check again in Article::view())
-if ( !is_null( $wgTitle ) && !$wgTitle->userCanRead() ) {
- $wgOut->loginToUse();
- $wgOut->output();
+#
+# Send Ajax requests to the Ajax dispatcher.
+#
+if( $wgUseAjax && $action == 'ajax' ) {
+ require_once( $IP . '/includes/AjaxDispatcher.php' );
+ $dispatcher = new AjaxDispatcher();
+ $dispatcher->performAction();
+ $mediaWiki->restInPeace();
exit;
}
-
-$wgTheWiki->mSearch = $search ;
-$wgTheWiki->main_action () ;
-# $search = $wgTheWiki->mSearch ; # Not needed
-
-
-# Deferred updates aren't really deferred anymore. It's important to report errors to the
-# user, and that means doing this before OutputPage::output(). Note that for page saves,
-# the client will wait until the script exits anyway before following the redirect.
-wfProfileIn( 'main-updates' );
-foreach ( $wgDeferredUpdateList as $up ) {
- $up->doUpdate();
+if( $wgUseFileCache && isset( $wgTitle ) ) {
+ wfProfileIn( 'main-try-filecache' );
+ // Raw pages should handle cache control on their own,
+ // even when using file cache. This reduces hits from clients.
+ if( $action != 'raw' && HTMLFileCache::useFileCache() ) {
+ /* Try low-level file cache hit */
+ $cache = new HTMLFileCache( $wgTitle, $action );
+ if( $cache->isFileCacheGood( /* Assume up to date */ ) ) {
+ /* Check incoming headers to see if client has this cached */
+ if( !$wgOut->checkLastModified( $cache->fileCacheTime() ) ) {
+ $cache->loadFromFileCache();
+ }
+ # Do any stats increment/watchlist stuff
+ $wgArticle = MediaWiki::articleFromTitle( $wgTitle );
+ $wgArticle->viewUpdates();
+ # Tell $wgOut that output is taken care of
+ wfProfileOut( 'main-try-filecache' );
+ $mediaWiki->restInPeace();
+ exit;
+ }
+ }
+ wfProfileOut( 'main-try-filecache' );
}
-wfProfileOut( 'main-updates' );
-
-wfProfileIn( 'main-cleanup' );
-$wgLoadBalancer->saveMasterPos();
-# Now commit any transactions, so that unreported errors after output() don't roll back the whole thing
-$wgLoadBalancer->commitAll();
+# Setting global variables in mediaWiki
+$mediaWiki->setVal( 'action', $action );
+$mediaWiki->setVal( 'CommandLineMode', $wgCommandLineMode );
+$mediaWiki->setVal( 'DisabledActions', $wgDisabledActions );
+$mediaWiki->setVal( 'DisableHardRedirects', $wgDisableHardRedirects );
+$mediaWiki->setVal( 'DisableInternalSearch', $wgDisableInternalSearch );
+$mediaWiki->setVal( 'EnableCreativeCommonsRdf', $wgEnableCreativeCommonsRdf );
+$mediaWiki->setVal( 'EnableDublinCoreRdf', $wgEnableDublinCoreRdf );
+$mediaWiki->setVal( 'JobRunRate', $wgJobRunRate );
+$mediaWiki->setVal( 'Server', $wgServer );
+$mediaWiki->setVal( 'SquidMaxage', $wgSquidMaxage );
+$mediaWiki->setVal( 'UseExternalEditor', $wgUseExternalEditor );
+$mediaWiki->setVal( 'UsePathInfo', $wgUsePathInfo );
-$wgOut->output();
+$mediaWiki->performRequestForTitle( $wgTitle, $wgArticle, $wgOut, $wgUser, $wgRequest );
+$mediaWiki->finalCleanup( $wgDeferredUpdateList, $wgOut );
-foreach ( $wgPostCommitUpdateList as $up ) {
- $up->doUpdate();
-}
+# Not sure when $wgPostCommitUpdateList gets set, so I keep this separate from finalCleanup
+$mediaWiki->doUpdates( $wgPostCommitUpdateList );
-wfProfileOut( 'main-cleanup' );
+$mediaWiki->restInPeace();
-logProfilingData();
-$wgLoadBalancer->closeAll();
-wfDebug( "Request ended normally\n" );
-?>