using index.php and redirect.php instead of wiki.phtml and redirect.phtml
keeping phtml stubs around for compatibility and CVS history
This commit is contained in:
parent
8c5cecc577
commit
1dea93f758
12 changed files with 152 additions and 130 deletions
4
INSTALL
4
INSTALL
|
|
@ -143,7 +143,7 @@ Or for Apache 2.0 module:
|
|||
Update httpd.conf as needed for your site. For example:
|
||||
|
||||
<IfModule mod_php4.c>
|
||||
AddType application/x-httpd-php .php .php4 .phtml
|
||||
AddType application/x-httpd-php .php .php4
|
||||
AddType application/x-httpd-php-source .phps
|
||||
</IfModule>
|
||||
<IfModule mod_php4.c>
|
||||
|
|
@ -156,7 +156,7 @@ Or for Apache 2.0 module:
|
|||
</Directory>
|
||||
RewriteEngine On
|
||||
RewriteMap ampescape int:ampescape
|
||||
RewriteRule ^/wiki/(.*)$ /wiki.phtml?title=${ampescape:$1} [L]
|
||||
RewriteRule ^/wiki/(.*)$ /index.php?title=${ampescape:$1} [L]
|
||||
|
||||
It is *seriously* recommended that you configure the webserver
|
||||
to disable running of PHP scripts except in the script directories
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ New features in 1.2:
|
|||
* Optional compression of old revision text (requires zlib support)
|
||||
* Fuzzy title search (experimental, requires memcached)
|
||||
* Page rendering cache (experimental)
|
||||
* JavaScript editing toolbar (off by default in user preferences)
|
||||
|
||||
Fixes and tweaks:
|
||||
* Should work out of the box on MySQL 3.2.x again. On 4.x set
|
||||
|
|
@ -29,10 +30,10 @@ Fixes and tweaks:
|
|||
|
||||
=== IMPORTANT BEHAVIOR CHANGES: ===
|
||||
|
||||
* wiki.phtml and redirect.phtml are now installed as wiki.php and redirect.php
|
||||
by default. If upgrading from an old installation or doing a manual install,
|
||||
do check $wgScriptExtension and the $wgScript variables to make sure
|
||||
everything's correct one way or the other.
|
||||
* wiki.phtml and redirect.phtml are now installed as index.php and redirect.php
|
||||
by default. If you are upgrading from an older version, you will have to
|
||||
change $wgScript in LocalSettings.php to point to index.php and
|
||||
redirect.php.
|
||||
|
||||
=== Database changes ===
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ This is a brief overview of the new design.
|
|||
|
||||
Primary source files/objects:
|
||||
|
||||
wiki.phtml
|
||||
index.php
|
||||
Main script. It creates the necessary global objects and parses
|
||||
the URL to determine what to do, which it then generally passes
|
||||
off to somebody else (depending on the action to be taken).
|
||||
|
|
|
|||
|
|
@ -14,10 +14,10 @@ $wgMetaNamespace = FALSE; # will be same as you set $wgSitename
|
|||
$wgServer = "http://" . getenv( "SERVER_NAME" );
|
||||
$wgScriptPath = "/wiki";
|
||||
|
||||
# Change this and the next two to use "phtml" for compatibility with old installations
|
||||
$wgScriptExtension = "php";
|
||||
$wgScript = "{$wgScriptPath}/wiki.{$wgScriptExtension}";
|
||||
$wgRedirectScript = "{$wgScriptPath}/redirect.{$wgScriptExtension}";
|
||||
# ATTN: Old installations used wiki.phtml and redirect.phtml -
|
||||
# make sure that LocalSettings.php is correctly set!
|
||||
$wgScript = "{$wgScriptPath}/index.php";
|
||||
$wgRedirectScript = "{$wgScriptPath}/redirect.php";
|
||||
|
||||
$wgStyleSheetPath = "{$wgScriptPath}/style";
|
||||
$wgStyleSheetDirectory = "{$IP}/style";
|
||||
|
|
|
|||
109
index.php
Normal file
109
index.php
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
<?php
|
||||
# Main wiki script; see design.doc
|
||||
#
|
||||
$wgRequestTime = microtime();
|
||||
|
||||
unset( $IP );
|
||||
ini_set( "allow_url_fopen", 0 ); # For security...
|
||||
include_once( "./LocalSettings.php" );
|
||||
|
||||
# Windows requires ';' as separator, ':' for Unix
|
||||
$sep = strchr( $include_path = ini_get( "include_path" ), ";" ) ? ";" : ":";
|
||||
ini_set( "include_path", "$IP$sep$include_path" );
|
||||
|
||||
include_once( "Setup.php" );
|
||||
|
||||
wfProfileIn( "main-misc-setup" );
|
||||
OutputPage::setEncodings(); # Not really used yet
|
||||
|
||||
# Query string fields
|
||||
#
|
||||
global $action, $title, $search, $go, $target, $printable;
|
||||
global $returnto, $diff, $oldid, $curid;
|
||||
|
||||
# Placeholders in case of DB error
|
||||
$wgTitle = Title::newFromText( wfMsg( "badtitle" ) );
|
||||
$wgArticle = new Article($wgTitle);
|
||||
|
||||
$action = strtolower( trim( $action ) );
|
||||
if ( "" == $action ) { $action = "view"; }
|
||||
if ( "yes" == $printable ) { $wgOut->setPrintable(); }
|
||||
|
||||
if ( "" == $title && "delete" != $action ) {
|
||||
$wgTitle = Title::newFromText( wfMsg( "mainpage" ) );
|
||||
} elseif ( $curid ) {
|
||||
# URLs like this are generated by RC, because rc_title isn't always accurate
|
||||
$wgTitle = Title::newFromID( $curid );
|
||||
} else {
|
||||
$wgTitle = Title::newFromURL( $title );
|
||||
}
|
||||
wfProfileOut( "main-misc-setup" );
|
||||
|
||||
if ( "" != $search ) {
|
||||
if( isset($_REQUEST['fulltext']) ) {
|
||||
wfSearch( $search );
|
||||
} else {
|
||||
wfGo( $search );
|
||||
}
|
||||
} else if( !$wgTitle or $wgTitle->getInterwiki() != "" or $wgTitle->getDBkey() == "" ) {
|
||||
$wgTitle = Title::newFromText( wfMsg( "badtitle" ) );
|
||||
$wgOut->errorpage( "badtitle", "badtitletext" );
|
||||
} else if ( ( $action == "view" ) && $wgTitle->getPrefixedDBKey() != $title ) {
|
||||
/* redirect to canonical url */
|
||||
$wgOut->redirect( wfLocalUrl( $wgTitle->getPrefixedURL() ) );
|
||||
} else if ( Namespace::getSpecial() == $wgTitle->getNamespace() ) {
|
||||
wfSpecialPage();
|
||||
} else {
|
||||
if ( Namespace::getMedia() == $wgTitle->getNamespace() ) {
|
||||
$wgTitle = Title::makeTitle( Namespace::getImage(), $wgTitle->getDBkey() );
|
||||
}
|
||||
|
||||
switch( $wgTitle->getNamespace() ) {
|
||||
case 6:
|
||||
include_once( "ImagePage.php" );
|
||||
$wgArticle = new ImagePage( $wgTitle );
|
||||
break;
|
||||
default:
|
||||
$wgArticle = new Article( $wgTitle );
|
||||
}
|
||||
|
||||
wfQuery("BEGIN", DB_WRITE);
|
||||
switch( $action ) {
|
||||
case "view":
|
||||
case "watch":
|
||||
case "unwatch":
|
||||
case "delete":
|
||||
case "revert":
|
||||
case "rollback":
|
||||
case "protect":
|
||||
case "unprotect":
|
||||
$wgArticle->$action();
|
||||
break;
|
||||
case "print":
|
||||
$wgArticle->view();
|
||||
break;
|
||||
case "edit":
|
||||
case "submit":
|
||||
if( !$wgCommandLineMode && !isset( $_COOKIE[ini_get("session.name")] ) ) {
|
||||
User::SetupSession();
|
||||
}
|
||||
include_once( "EditPage.php" );
|
||||
$editor = new EditPage( $wgArticle );
|
||||
$editor->$action();
|
||||
break;
|
||||
case "history":
|
||||
include_once( "PageHistory.php" );
|
||||
$history = new PageHistory( $wgArticle );
|
||||
$history->history();
|
||||
break;
|
||||
default:
|
||||
$wgOut->errorpage( "nosuchaction", "nosuchactiontext" );
|
||||
}
|
||||
wfQuery("COMMIT", DB_WRITE);
|
||||
}
|
||||
|
||||
$wgOut->output();
|
||||
foreach ( $wgDeferredUpdateList as $up ) { $up->doUpdate(); }
|
||||
logProfilingData();
|
||||
wfDebug( "Request ended normally\n" );
|
||||
?>
|
||||
|
|
@ -48,8 +48,13 @@ print "Copying files...\n";
|
|||
|
||||
copyfile( ".", "LocalSettings.php", $IP );
|
||||
copyfile( ".", "Version.php", $IP );
|
||||
copyfileto( ".", "wiki.phtml", $IP, "wiki.$wgScriptExtension" );
|
||||
copyfileto( ".", "redirect.phtml", $IP, "redirect.$wgScriptExtension" );
|
||||
copyfile( ".", "index.php", $IP );
|
||||
copyfile( ".", "redirect.php", $IP );
|
||||
|
||||
# compatibility with older versions, can be removed in a year or so
|
||||
# (written in Feb 2004)
|
||||
copyfile( ".", "wiki.phtml", $IP );
|
||||
copyfile( ".", "redirect.phtml", $IP );
|
||||
|
||||
copydirectory( "./includes", $IP );
|
||||
copydirectory( "./stylesheets", $wgStyleSheetDirectory );
|
||||
|
|
|
|||
|
|
@ -591,7 +591,7 @@ continue to be displayed as if you were still logged in, until you clear
|
|||
your browser cache\n",
|
||||
|
||||
"welcomecreation" => "<h2>Welcome, $1!</h2><p>Your account has been created.
|
||||
Don't forget to personalize your wikipedia preferences.",
|
||||
Don't forget to change your wikipedia preferences.",
|
||||
|
||||
"loginpagetitle" => "User login",
|
||||
"yourname" => "Your user name",
|
||||
|
|
|
|||
|
|
@ -111,11 +111,16 @@ function initialiseMessages( $overwrite = false) {
|
|||
}
|
||||
print "Done\n";
|
||||
print "Writing...";
|
||||
<<<<<<< InitialiseMessages.inc
|
||||
print $sql;
|
||||
wfQuery( $sql, DB_WRITE, $fname );
|
||||
=======
|
||||
|
||||
if ( !$first ) {
|
||||
wfQuery( $sql, DB_WRITE, $fname );
|
||||
}
|
||||
|
||||
>>>>>>> 1.7
|
||||
print "Done\n";
|
||||
|
||||
$navText .= "</table>";
|
||||
|
|
|
|||
6
redirect.php
Normal file
6
redirect.php
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<?php
|
||||
include_once( "./LocalSettings.php" );
|
||||
global $wpDropdown, $wgArticlePath;
|
||||
$url = str_replace( "$1", $wpDropdown, $wgArticlePath );
|
||||
header( "Location: {$url}" );
|
||||
?>
|
||||
|
|
@ -1,6 +1,4 @@
|
|||
<?php
|
||||
include_once( "./LocalSettings.php" );
|
||||
global $wpDropdown, $wgArticlePath;
|
||||
$url = str_replace( "$1", $wpDropdown, $wgArticlePath );
|
||||
header( "Location: {$url}" );
|
||||
?>
|
||||
// stub file for compatibility with older versions
|
||||
include_once("./redirect.php");
|
||||
?>
|
||||
|
|
@ -72,11 +72,14 @@ exit();
|
|||
|
||||
function do_update_files() {
|
||||
global $IP, $wgStyleSheetDirectory, $wgUploadDirectory, $wgLanguageCode, $wgDebugLogFile;
|
||||
global $wgScriptExtension;
|
||||
print "Copying files... ";
|
||||
|
||||
copyfileto( ".", "wiki.phtml", $IP, "wiki.$wgScriptExtension" );
|
||||
copyfileto( ".", "redirect.phtml", $IP, "redirect.$wgScriptExtension" );
|
||||
copyfile( ".", "index.php", $IP );
|
||||
copyfile( ".", "redirect.php", $IP );
|
||||
# compatibility with older versions, can be removed in a year or so
|
||||
# (written in Feb 2004)
|
||||
copyfile( ".", "wiki.phtml", $IP );
|
||||
copyfile( ".", "redirect.phtml", $IP );
|
||||
|
||||
copydirectory( "./includes", $IP );
|
||||
copydirectory( "./stylesheets", $wgStyleSheetDirectory );
|
||||
|
|
|
|||
111
wiki.phtml
111
wiki.phtml
|
|
@ -1,109 +1,4 @@
|
|||
<?php
|
||||
# Main wiki script; see design.doc
|
||||
#
|
||||
$wgRequestTime = microtime();
|
||||
|
||||
unset( $IP );
|
||||
ini_set( "allow_url_fopen", 0 ); # For security...
|
||||
include_once( "./LocalSettings.php" );
|
||||
|
||||
# Windows requires ';' as separator, ':' for Unix
|
||||
$sep = strchr( $include_path = ini_get( "include_path" ), ";" ) ? ";" : ":";
|
||||
ini_set( "include_path", "$IP$sep$include_path" );
|
||||
|
||||
include_once( "Setup.php" );
|
||||
|
||||
wfProfileIn( "main-misc-setup" );
|
||||
OutputPage::setEncodings(); # Not really used yet
|
||||
|
||||
# Query string fields
|
||||
#
|
||||
global $action, $title, $search, $go, $target, $printable;
|
||||
global $returnto, $diff, $oldid, $curid;
|
||||
|
||||
# Placeholders in case of DB error
|
||||
$wgTitle = Title::newFromText( wfMsg( "badtitle" ) );
|
||||
$wgArticle = new Article($wgTitle);
|
||||
|
||||
$action = strtolower( trim( $action ) );
|
||||
if ( "" == $action ) { $action = "view"; }
|
||||
if ( "yes" == $printable ) { $wgOut->setPrintable(); }
|
||||
|
||||
if ( "" == $title && "delete" != $action ) {
|
||||
$wgTitle = Title::newFromText( wfMsg( "mainpage" ) );
|
||||
} elseif ( $curid ) {
|
||||
# URLs like this are generated by RC, because rc_title isn't always accurate
|
||||
$wgTitle = Title::newFromID( $curid );
|
||||
} else {
|
||||
$wgTitle = Title::newFromURL( $title );
|
||||
}
|
||||
wfProfileOut( "main-misc-setup" );
|
||||
|
||||
if ( "" != $search ) {
|
||||
if( isset($_REQUEST['fulltext']) ) {
|
||||
wfSearch( $search );
|
||||
} else {
|
||||
wfGo( $search );
|
||||
}
|
||||
} else if( !$wgTitle or $wgTitle->getInterwiki() != "" or $wgTitle->getDBkey() == "" ) {
|
||||
$wgTitle = Title::newFromText( wfMsg( "badtitle" ) );
|
||||
$wgOut->errorpage( "badtitle", "badtitletext" );
|
||||
} else if ( ( $action == "view" ) && $wgTitle->getPrefixedDBKey() != $title ) {
|
||||
/* redirect to canonical url */
|
||||
$wgOut->redirect( wfLocalUrl( $wgTitle->getPrefixedURL() ) );
|
||||
} else if ( Namespace::getSpecial() == $wgTitle->getNamespace() ) {
|
||||
wfSpecialPage();
|
||||
} else {
|
||||
if ( Namespace::getMedia() == $wgTitle->getNamespace() ) {
|
||||
$wgTitle = Title::makeTitle( Namespace::getImage(), $wgTitle->getDBkey() );
|
||||
}
|
||||
|
||||
switch( $wgTitle->getNamespace() ) {
|
||||
case 6:
|
||||
include_once( "ImagePage.php" );
|
||||
$wgArticle = new ImagePage( $wgTitle );
|
||||
break;
|
||||
default:
|
||||
$wgArticle = new Article( $wgTitle );
|
||||
}
|
||||
|
||||
wfQuery("BEGIN", DB_WRITE);
|
||||
switch( $action ) {
|
||||
case "view":
|
||||
case "watch":
|
||||
case "unwatch":
|
||||
case "delete":
|
||||
case "revert":
|
||||
case "rollback":
|
||||
case "protect":
|
||||
case "unprotect":
|
||||
$wgArticle->$action();
|
||||
break;
|
||||
case "print":
|
||||
$wgArticle->view();
|
||||
break;
|
||||
case "edit":
|
||||
case "submit":
|
||||
if( !$wgCommandLineMode && !isset( $_COOKIE[ini_get("session.name")] ) ) {
|
||||
User::SetupSession();
|
||||
}
|
||||
include_once( "EditPage.php" );
|
||||
$editor = new EditPage( $wgArticle );
|
||||
$editor->$action();
|
||||
break;
|
||||
case "history":
|
||||
include_once( "PageHistory.php" );
|
||||
$history = new PageHistory( $wgArticle );
|
||||
$history->history();
|
||||
break;
|
||||
default:
|
||||
$wgOut->errorpage( "nosuchaction", "nosuchactiontext" );
|
||||
}
|
||||
wfQuery("COMMIT", DB_WRITE);
|
||||
}
|
||||
|
||||
$wgOut->output();
|
||||
foreach ( $wgDeferredUpdateList as $up ) { $up->doUpdate(); }
|
||||
logProfilingData();
|
||||
wfDebug( "Request ended normally\n" );
|
||||
?>
|
||||
// stub file for compatibility with older versions
|
||||
include_once("./index.php");
|
||||
?>
|
||||
Loading…
Reference in a new issue