index.php
来自「php 开发的内容管理系统」· PHP 代码 · 共 1,666 行 · 第 1/4 页
PHP
1,666 行
$enableemail = 'true'; $enableuseremail = ( $conf->Emailuser == 'emailuser_enabled' ) ? 'true' : 'false' ; $eauthent = ( $conf->Eauthent == 'eauthent_enabled' ) ? 'true' : 'false' ; switch ( $conf->Enotif ) { case 'enotif_usertalk': $enotifusertalk = 'true'; $enotifwatchlist = 'false'; break; case 'enotif_allpages': $enotifusertalk = 'true'; $enotifwatchlist = 'true'; break; default: $enotifusertalk = 'false'; $enotifwatchlist = 'false'; } } else { $enableuseremail = 'false'; $enableemail = 'false'; $eauthent = 'false'; $enotifusertalk = 'false'; $enotifwatchlist = 'false'; } $file = @fopen( "/dev/urandom", "r" ); if ( $file ) { $secretKey = bin2hex( fread( $file, 32 ) ); fclose( $file ); } else { $secretKey = ""; for ( $i=0; $i<8; $i++ ) { $secretKey .= dechex(mt_rand(0, 0x7fffffff)); } print "<li>Warning: \$wgSecretKey key is insecure, generated with mt_rand(). Consider changing it manually.</li>\n"; } # Add slashes to strings for double quoting $slconf = array_map( "escapePhpString", get_object_vars( $conf ) ); if( $conf->License == 'gfdl' ) { # Needs literal string interpolation for the current style path $slconf['RightsIcon'] = $conf->RightsIcon; } $localsettings = "# This file was automatically generated by the MediaWiki installer.# If you make manual changes, please keep track in case you need to# recreate them later.## See includes/DefaultSettings.php for all configurable settings# and their default values, but don't forget to make changes in _this_# file, not there.# If you customize your file layout, set \$IP to the directory that contains# the other MediaWiki files. It will be used as a base to locate files.if( defined( 'MW_INSTALL_PATH' ) ) { \$IP = MW_INSTALL_PATH;} else { \$IP = dirname( __FILE__ );}\$path = array( \$IP, \"\$IP/includes\", \"\$IP/languages\" );set_include_path( implode( PATH_SEPARATOR, \$path ) . PATH_SEPARATOR . get_include_path() );require_once( \"includes/DefaultSettings.php\" );# If PHP's memory limit is very low, some operations may fail." . ($conf->raiseMemory ? '' : '# ' ) . "ini_set( 'memory_limit', '20M' );" . "if ( \$wgCommandLineMode ) { if ( isset( \$_SERVER ) && array_key_exists( 'REQUEST_METHOD', \$_SERVER ) ) { die( \"This script must be run from the command line\\n\" ); }} elseif ( empty( \$wgNoOutputBuffer ) ) { ## Compress output if the browser supports it {$zlib}if( !ini_get( 'zlib.output_compression' ) ) @ob_start( 'ob_gzhandler' );}\$wgSitename = \"{$slconf['Sitename']}\";\$wgScriptPath = \"{$slconf['ScriptPath']}\";\$wgScript = \"\$wgScriptPath/index.php\";\$wgRedirectScript = \"\$wgScriptPath/redirect.php\";## For more information on customizing the URLs please see:## http://meta.wikimedia.org/wiki/Eliminating_index.php_from_the_url## If using PHP as a CGI module, the ?title= style usually must be used.{$pretty}\$wgArticlePath = \"\$wgScript/\$1\";{$ugly}\$wgArticlePath = \"\$wgScript?title=\$1\";\$wgStylePath = \"\$wgScriptPath/skins\";\$wgStyleDirectory = \"\$IP/skins\";\$wgLogo = \"\$wgStylePath/common/images/wiki.png\";\$wgUploadPath = \"\$wgScriptPath/images\";\$wgUploadDirectory = \"\$IP/images\";\$wgEnableEmail = $enableemail;\$wgEnableUserEmail = $enableuseremail;\$wgEmergencyContact = \"{$slconf['EmergencyContact']}\";\$wgPasswordSender = \"{$slconf['PasswordSender']}\";## For a detailed description of the following switches see## http://meta.wikimedia.org/Enotif and http://meta.wikimedia.org/Eauthent## There are many more options for fine tuning available see## /includes/DefaultSettings.php## UPO means: this is also a user preference option\$wgEnotifUserTalk = $enotifusertalk; # UPO\$wgEnotifWatchlist = $enotifwatchlist; # UPO\$wgEmailAuthentication = $eauthent;\$wgDBserver = \"{$slconf['DBserver']}\";\$wgDBname = \"{$slconf['DBname']}\";\$wgDBuser = \"{$slconf['DBuser']}\";\$wgDBpassword = \"{$slconf['DBpassword']}\";\$wgDBprefix = \"{$slconf['DBprefix']}\";\$wgDBtype = \"{$slconf['DBtype']}\";\$wgDBport = \"{$slconf['DBport']}\";# Experimental charset support for MySQL 4.1/5.0.\$wgDBmysql5 = {$conf->DBmysql5};## Shared memory settings\$wgMainCacheType = $cacheType;\$wgMemCachedServers = $mcservers;## To enable image uploads, make sure the 'images' directory## is writable, then set this to true:\$wgEnableUploads = false;\$wgUseImageResize = {$conf->UseImageResize};{$magic}\$wgUseImageMagick = true;{$magic}\$wgImageMagickConvertCommand = \"{$convert}\";## If you want to use image uploads under safe mode,## create the directories images/archive, images/thumb and## images/temp, and make them all writable. Then uncomment## this, if it's not already uncommented:{$hashedUploads}\$wgHashedUploadDirectory = false;## If you have the appropriate support software installed## you can enable inline LaTeX equations:\$wgUseTeX = false;\$wgMathPath = \"{\$wgUploadPath}/math\";\$wgMathDirectory = \"{\$wgUploadDirectory}/math\";\$wgTmpDirectory = \"{\$wgUploadDirectory}/tmp\";\$wgLocalInterwiki = \$wgSitename;\$wgLanguageCode = \"{$slconf['LanguageCode']}\";\$wgProxyKey = \"$secretKey\";## Default skin: you can change the default skin. Use the internal symbolic## names, ie 'standard', 'nostalgia', 'cologneblue', 'monobook':\$wgDefaultSkin = 'monobook';## For attaching licensing metadata to pages, and displaying an## appropriate copyright notice / icon. GNU Free Documentation## License and Creative Commons licenses are supported so far.{$rights}\$wgEnableCreativeCommonsRdf = true;\$wgRightsPage = \"\"; # Set to the title of a wiki page that describes your license/copyright\$wgRightsUrl = \"{$slconf['RightsUrl']}\";\$wgRightsText = \"{$slconf['RightsText']}\";\$wgRightsIcon = \"{$slconf['RightsIcon']}\";# \$wgRightsCode = \"{$slconf['RightsCode']}\"; # Not yet used\$wgDiff3 = \"{$slconf['diff3']}\";# When you make changes to this configuration file, this will make# sure that cached pages are cleared.\$configdate = gmdate( 'YmdHis', @filemtime( __FILE__ ) );\$wgCacheEpoch = max( \$wgCacheEpoch, \$configdate );"; // Keep things in Unix line endings internally; // the system will write out as local text type. return str_replace( "\r\n", "\n", $localsettings );}function dieout( $text ) { die( $text . "\n\n</body>\n</html>" );}function importVar( &$var, $name, $default = "" ) { if( isset( $var[$name] ) ) { $retval = $var[$name]; if ( get_magic_quotes_gpc() ) { $retval = stripslashes( $retval ); } } else { $retval = $default; } return $retval;}function importPost( $name, $default = "" ) { return importVar( $_POST, $name, $default );}function importRequest( $name, $default = "" ) { return importVar( $_REQUEST, $name, $default );}$radioCount = 0;function aField( &$conf, $field, $text, $type = "text", $value = "", $onclick = '' ) { global $radioCount; if( $type != "" ) { $xtype = "type=\"$type\""; } else { $xtype = ""; } $id = $field; $nolabel = ($type == "radio") || ($type == "hidden"); if ($type == 'radio') $id .= $radioCount++; if( $nolabel ) { echo "\t\t<label>"; } else { echo "\t\t<label class='column' for=\"$id\">$text</label>\n"; } if( $type == "radio" && $value == $conf->$field ) { $checked = "checked='checked'"; } else { $checked = ""; } echo "\t\t<input $xtype name=\"$field\" id=\"$id\" class=\"iput-$type\" $checked "; if ($onclick) { echo " onclick='togglearea(\"$value\")' " ; } echo "value=\""; if( $type == "radio" ) { echo htmlspecialchars( $value ); } else { echo htmlspecialchars( $conf->$field ); } echo "\" />\n"; if( $nolabel ) { echo " $text</label>\n"; } global $errs; if(isset($errs[$field])) echo "<span class='error'>" . $errs[$field] . "</span>\n";}function getLanguageList() { global $wgLanguageNames; if( !isset( $wgLanguageNames ) ) { require_once( "languages/Names.php" ); } $codes = array(); $d = opendir( "../languages" ); /* In case we are called from the root directory */ if (!$d) $d = opendir( "languages"); while( false !== ($f = readdir( $d ) ) ) { $m = array(); if( preg_match( '/Language([A-Z][a-z_]+)\.php$/', $f, $m ) ) { $code = str_replace( '_', '-', strtolower( $m[1] ) ); if( isset( $wgLanguageNames[$code] ) ) { $name = $code . ' - ' . $wgLanguageNames[$code]; } else { $name = $code; } $codes[$code] = $name; } } closedir( $d ); ksort( $codes ); return $codes;}#Check for location of an executable# @param string $loc single location to check# @param array $names filenames to check for.# @param mixed $versioninfo array of details to use when checking version, use false for no version checkingfunction locate_executable($loc, $names, $versioninfo = false) { if (!is_array($names)) $names = array($names); foreach ($names as $name) { $command = "$loc".DIRECTORY_SEPARATOR."$name"; if (file_exists($command)) { if (!$versioninfo) return $command; $file = str_replace('$1', $command, $versioninfo[0]); if (strstr(`$file`, $versioninfo[1]) !== false) return $command; } } return false;}# Test a memcached serverfunction testMemcachedServer( $server ) { $hostport = explode(":", $server); $errstr = false; $fp = false; if ( !function_exists( 'fsockopen' ) ) { $errstr = "Can't connect to memcached, fsockopen() not present"; } if ( !$errstr && count( $hostport ) != 2 ) { $errstr = 'Please specify host and port'; var_dump( $hostport ); } if ( !$errstr ) { list( $host, $port ) = $hostport; $errno = 0; $fsockerr = ''; $fp = @fsockopen( $host, $port, $errno, $fsockerr, 1.0 ); if ( $fp === false ) { $errstr = "Cannot connect to memcached on $host:$port : $fsockerr"; } } if ( !$errstr ) { $command = "version\r\n"; $bytes = fwrite( $fp, $command ); if ( $bytes != strlen( $command ) ) { $errstr = "Cannot write to memcached socket on $host:$port"; } } if ( !$errstr ) { $expected = "VERSION "; $response = fread( $fp, strlen( $expected ) ); if ( $response != $expected ) { $errstr = "Didn't get correct memcached response from $host:$port"; } } if ( $fp ) { fclose( $fp ); } if ( !$errstr ) { echo "<li>Connected to memcached on $host:$port successfully"; } return $errstr;}function database_picker($conf) { global $ourdb; print "\n"; foreach(array_keys($ourdb) as $db) { if ($ourdb[$db]['havedriver']) { print "<li>"; aField( $conf, "DBtype", $ourdb[$db]['fullname'], 'radio', $db, 'onclick'); print "</li>\n"; } } print "\n";}function database_switcher($db) { global $ourdb; $color = $ourdb[$db]['bgcolor']; $full = $ourdb[$db]['fullname']; print "<div id='$db' style='display:none; background: $color'>\n"; print "<h3>$full specific options:</h3>\n";}?> <div class="license"> <hr> <p>This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.</p> <p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.</p> <p>You should have received <a href="../COPYING">a copy of the GNU General Public License</a> along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. or <a href="http://www.gnu.org/copyleft/gpl.html">read it online</a></p> </div></div></div></div><div id="column-one"> <div class="portlet" id="p-logo"> <a style="background-image: url(../skins/common/images/mediawiki.png);" href="http://www.mediawiki.org/" title="Main Page"></a> </div> <script type="text/javascript"> if (window.isMSIE55) fixalpha(); </script> <div class='portlet'><div class='pBody'> <ul> <li><strong><a href="http://www.mediawiki.org/">MediaWiki home</a></strong></li> <li><a href="../README">Readme</a></li> <li><a href="../RELEASE-NOTES">Release notes</a></li> <li><a href="../docs/">Documentation</a></li> <li><a href="http://meta.wikipedia.org/wiki/MediaWiki_User's_Guide">User's Guide</a></li> <li><a href="http://meta.wikimedia.org/wiki/MediaWiki_FAQ">FAQ</a></li> </ul> <p style="font-size:90%;margin-top:1em">MediaWiki is Copyright © 2001-2006 by Magnus Manske, Brion Vibber, Lee Daniel Crocker, Tim Starling, Erik Möller, Gabriel Wicke and others.</p> </div></div></div></div></body></html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?