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:
Erik Moeller 2004-02-28 03:04:02 +00:00
parent 8c5cecc577
commit 1dea93f758
12 changed files with 152 additions and 130 deletions

View file

@ -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

View file

@ -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 ===

View file

@ -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).

View file

@ -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
View 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" );
?>

View file

@ -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 );

View file

@ -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",

View file

@ -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
View file

@ -0,0 +1,6 @@
<?php
include_once( "./LocalSettings.php" );
global $wpDropdown, $wgArticlePath;
$url = str_replace( "$1", $wpDropdown, $wgArticlePath );
header( "Location: {$url}" );
?>

View file

@ -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");
?>

View file

@ -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 );

View file

@ -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");
?>