User:Sent~metawiki/Bot:MediaWiki
I still have to translate this page from Dutch to English. So, please be patient.
Here's a quick translation::
Bot:MediaWiki are a serial hacks on the standard installation of MediaWiki
Bone:MediaWiki script
editBot_MediaWiki-handler.php
edit<?php ${"bot:MediaWiki-Root "} ="/wiki /; ${"bot:mediaWiki noredirect} = TRUE; require_once(dirname(__FILE __)./ Bot_MediaWiki.lib.php); # $$wgScript>= ${"bot:MediaWiki"}["wgScript "] ="/wiki; # $$wgRedirectScript>= ${"bot:MediaWiki"}["wgRedirectScript ] = ${"bot:MediaWiki-url}./ redirect.php; # $$wgStylePath>= ${"bot:MediaWiki"}["wgStylePath ] = ${"bot:MediaWiki-url}."/skins"; bot_MediaWiki(${"bot:MediaWiki}); require_once(dirname(__FILE __).${"bot:MediaWiki-Nav2WebRoot}.${"bot:MediaWiki-url}./ index.php); ?>
In this file are possible the variables you where MediaWiki
work on adapt. In the here above example also also the variable that stands [ [ User:Sent/bone:MediaWiki (nl)|Bot:MediaWiki will will replace ]]. For example $wgScript
it are replaced by
defining ${"bot:MediaWiki"}["wgScript"]
. For this is possible you choose from all variables which in ' '
LocalSettings.php and ' ' DefaultSettings.php prevent .
Bot_MediaWiki.lib.php
edit<?php ${"bot:MediaWiki-url "} ="/.private/mediawiki-1.4.7; ${"bot:MediaWiki-Nav2WebRoot "} ="/..; ${"bot:MediaWiki} = array (); # ${"bot:MediaWiki-search "} = $_server["redirect_script_url "]; # ${"bot:MediaWiki-search "} = $_server["script_url "]; # ${"bot:MediaWiki-search "} = $_server["redirect_url "]; ${"bot:MediaWiki-search "} = $_server["request_uri "]; function check_pathinfo(){ global ${"bot:MediaWiki-search}, ${"bot:MediaWiki-Root}; return (ereg("^(.${"bot:MediaWiki-Root}.")(.*) $", ${"bot:MediaWiki-search}, #$$blaat>) && strlen($blaat[2 ]) > = 1); } function get_pathinfo(){ global ${"bot:MediaWiki-search}, ${"bot:MediaWiki-Root}; # $$path>= ereg_replace("^(.${"bot:MediaWiki-Root}.")", "", ${"bot:MediaWiki-search}); return strip_GET( (strlen($path) > = 1? #$$path>: get_default_pathinfo()) ); } function get_default_pathinfo(){ return ' head page '; } function strip_get($str){ if(ereg("^([^?]+)[?](.*) $", #$$str>, # $$a)){$$#2> # $$old_str>= #$$str>; global $_get, $_request; list($trash, #$$str>, #$$g>) = #$$a>; # $$g_ar>= explode('&, #$$g>); foreach($g_ar ash # $$i=>$full_var){$$#7> if(ereg("^([^=]+)=(.*) $", #$$full_var>, #$$b>)) { $_get[$b[1 ]] = # $$b[2>]; $_request[$b[1 ]] = # $$b[2>]; global ${$b[1 ]}; # $$b[1>] = # $$b[2>]; } } } return #$$str>; } function bot_MediaWiki(#$$x=NULL>) { # $$type_list>= array( ' pdf ' = > ' application/pdf ', ' poison ' = > ' image/poison ', ' jpg ' = > ' image/jpeg ', ' png ' = > ' image/png ', ' ico ' = > ' image/x-icon ', ' tgz ' = > ' application/x-tar ', ' gz ' = > ' application/x-tar ', ' htm ' = > ' text/html ', ' html ' = > ' text/html ', ); global ${"bot:MediaWiki-Nav2WebRoot}, ${"bot:MediaWiki-Root}, ${"bot:MediaWiki-url}; # $$file>= dirname(__FILE __).${"bot:MediaWiki-Nav2WebRoot}.${"bot:MediaWiki-Root}.get_pathinfo (); if(file_exists ($file)){//File Excluded from Wiki execution # $$ext>= substr (get_pathinfo (), strrpos (get_pathinfo ().) + 1); if($ext == php'){ require_once ($file); } else{ header('Content type: '.(array_key_exists($ext, $type_list)? # $$type_list[$ext>]: ' text/plain ')); print file_get_contents ($file); } exit; } } # $$title>= $_get['title ' ] = $_request['title ' ] = get_pathinfo (); $_server['path_info ' ] = '/.get_pathinfo (); ?>
Explanation bot_MediaWiki ()
editThis function supported the possibility for files within the directory where [ [ User:Sent/bone:MediaWiki (nl)|Bot:MediaWiki ]] on do not twist to let carry out by [ [ MediaWiki ]]. Thus it is possible for within the map images e.d. to take.
' ' for a very protect installation:
- Install [ [ MediaWiki ]] in not by means of the web benaderbare a
map. (b.v. /var/www/hidden/mediawiki)
- Fodder [ [ the User:Sent/bone:MediaWiki (nl)|Bot:mediaWiki]] directory the following from:
ln - s - d/var/www/hidden/mediawiki/skins ln - s - d/var/www/hidden/mediawiki/images
- Joint ' ' the bot_MediaWiki handler .php the next rule:
${"bot:MediaWiki"}["wgScriptPath ] = ${"bot:MediaWiki"}["wgScript"];
- Configure ' ' the Bot_MediaWiki.lib.php with
${"bot:MediaWiki-url "} ="/../ hidden/mediawiki";
For the use of the map ' ' '/wiki and implementation by means of ' ' ' Bot_MediaWiki-wiki .php :
AliasMatch ^/wiki(.*)/var/www/html/Bot_MediaWiki-wiki.php/$1
' ' free2xs/Bot_MediaWiki.php
<?php / * type of 1: string | type of 2: array | type of 3: boolean | type of 4: object | type of 5: | collect type of 32: = boolean:false OR array */ ${"bot:MediaWiki-keys} = array( # DefaultSettings.php: ' wgVersion ' = > 1, ' wgMetaNamespace ' = > 3, ' wgUsePathInfo ' = > 3, ' wgUseSharedUploads ' = > 3, ' wgSharedUploadPath ' = > 1, ' wgSharedUploadDirectory ' = > 1, ' wgHashedSharedUploadDirectory ' = > 3, ' wgSharedUploadDBname ' = > 1, ' wgSharedLatin1 ' = > 3, ' wgSMTP ' = > 32. ' wgDBschema ' = > 1, ' wgSharedDB ' = > 1, ' wgDBservers ' = > 32. ' wgMasterWaitTimeout ' = > 5, ' wgDBClusterTimeout ' = > 5, ' wgDBminWordLen ' = > 1, ' wgDBtransaction ' = > 1, ' wgDBerrorlog ' = > 1, ' wgSqlLogFile ' = > 1, ' wgDBtransactions ' = > 1, ' wgDBmysql4 ' = > 3, ' wgSqlTimeout ' = > 5, ' wgLocalDatabases ' = > 2, ' wgMemCacheDebug ' = > 1, ' wgMemCachedServers ' = > 2, ' wgMemCachedDebug ' = > 1, ' wgLinkCacheMemcached ' = > 1, ' wgMimeType ' = > 1, ' wgDocType ' = > 1, ' wgDTD ' = > 1, ' wgUseDynamicDates ' = > 3, ' wgAmericanDates ' = > 1, ' wgTranslateNumerals ' = > 1, ' wgNavigationLinks ' = > 2, ' wgExtraNamespaces ' = > 32. ' wgRateLimits ' = > 2, ' wgDisabledActions ' = > 2, # LocalSettings.php: ' wgScript ' = > 1, ' wgRedirectScript ' = > 1, ' wgSitename ' = > 1, ' wgScriptPath ' = > 1, ' wgRenderScript ' = > 1, ' wgArticlePath ' = > 1, ' wgStylePath ' = > 1, ' wgStyleDirectory ' = > 1, ' wgLogo ' = > 1, ' wgUploadPath ' = > 1, ' wgUploadDirectory ' = > 1, ' wgEmergencyContact ' = > 1, ' wgPasswordSender ' = > 1, ' wgDBserver ' = > 1, ' wgDBname ' = > 1, ' wgDBuser ' = > 1, ' wgDBpassword ' = > 1, ' wgDBprefix ' = > 1, ' wgAllowSysopQueries ' = > 3, ' wgDBsqluser ' = > 1, ' wgDBsqlpassword ' = > 1, ' wgUseMemCached ' = > 3, ' wgMemCachedServers ' = > 2, ' wgUseTurckShm ' = > 3, ' wgDisableUploads ' = > 3, ' wgUseImageResize ' = > 3, ' wgUseImageMagick ' = > 3, ' wgImageMagickConvertCommand ' = > 1, ' wgUseTeX ' = > 3, ' wgMathPath ' = > 1, ' wgMathDirectory ' = > 1, ' wgTmpDirectory ' = > 1, ' wgLocalInterwiki ' = > 1, ' wgLanguageCode ' = > 1, ' wgUseLatin1 ' = > 3, ' wgProxyKey ' = > 1, ' wgDefaultSkin ' = > 1, ' wgEnableCreativeCommonsRdf ' = > 3, ' wgRightsPage ' = > 1, ' wgRightsUrl ' = > 1, ' wgRightsText ' = > 1, ' wgRightsIcon ' = > 1, ' wgRightsCode ' = > 1 ); if(is_array(${"bot:MediaWiki"})){ foreach(${"bot:MediaWiki} ash # $$var=>$value){$$#2> if(array_key_exists($var, ${"bot:MediaWiki-keys"})){ # $$var>= #$$value>; / * */echo <!-- bone:MediaWiki SETS.#$$var>.' TO '.#$$value>.' -- >'."\n"; } else{ / * */echo <!-- bone:MediaWiki SUPPORTS NOT.#$$var>.' -- >'."\n"; } } } foreach(${"bot:MediaWiki-keys} ash # $$key=>$type){$$#2> switch($type){ case 1: # $$i>= 0; while(ereg("[\$ ]", # $$key)){>//strpos($$key, "$")!= FALSE # $$i>++; # $$str>= "\$$key = \".#$$key>."\";; / * */echo <!-- ".#$$str>; eval ($str); / * */echo "/".#$$key>."-- >\n"; if($i>=2) break; } / * */else{echo <!-- bone:MediaWiki says; NO \ $ FOUND in # $$key>(".#$$key>.") -- >\n"; } break; case 2: if(!is_array($$key)) # $$key>= array (); break; case 3: switch($key){ case ' wgUseTurckShm ': if($$key) # $$key>= (function_exists(' mmcache_get ') && php_sapi_name () == ' apache '); break; case ' wgUsePathInfo ': if($$key) # $$key>= (strpos(php_sapi_name (), ' cgi ') === false); break; default: # $$key>= (# $$key>== TRUE); } break; default: / * */echo <!-- bone:MediaWiki says; THERE ARE NO METHOD FOR.#$$key>.(type:'.#$$type>.') -- >'."\n"; } } if(${"bot:MediaWiki-debug} == TRUE){ echo <pre style="background: # DDDDDD">; foreach(${"bot:MediaWiki-keys} ash # $$key=>$type){$$#2> switch($type){ case 3: echo #$$key>.' = <i>'.(#$$key>? ' true ': ' false ')."</i>\n"; break; default: echo #$$key>.' = '.#$$key>."\n"; break; } } echo '
';
} ?>
In the above ${"bot:mediaWiki keys"}
to become not yet all variables which
can be mentioned to fit. When you want adapt something and is present not yet in this list,
joint it then.
- Make of b.v.
$wgArticlePath = #$$wgScript/$1";
>; the
following $wgArticlePath =
$$wgScript/$1';
>;. In ' ' LocalSettings.php and ' ' DefaultSettings.php .
- Joint
include("extensions/free2xs/Bot_MediaWiki.php");
as first (!) extentie ' ' LocalSettings.php . - When [ [ MediaWiki ]] no longer work because index.php several php-bestanden cannot charge: let start the different
require_once
s with
dirname(__FILE __).'/'.
.
Extra possibility
editOnly when [ [ MediaWiki ]] are installed on a location which is by means of the server to reach!
' ' Frame_MediaWiki.php :
<?php ${"bot:MediaWiki-Root "} ="/wiki /; require_once(dirname(__FILE __)./ Bot_MediaWiki.lib.php); ?> <html xml:lang="nl lang="nl"> <head> <title>Karma Wiki</title> </head> <frameset cols = "*" rows = "*" border="1" frameborder="1" framespacing="1" name="mainFrameset" id="mainFrameset"> <frame src="<?php echo ${"bot:MediaWiki-url}./ index.php/.get_pathinfo (); ?> name="wiki" frameborder="0" id="wiki/> <noframes> <body bgcolor="#FFFFFF"> <p>Deze page gebruit frames and your browser do not manage this. Click <a href="<?php echo ${"bot:MediaWiki-url}./ index.php/.get_pathinfo (); ?>">hier</a> when you nevertheless see content the will.</p> </body> </noframes> </frameset> </noscript> </html>
To the talk must get the possibility still a couple small adaptations be done MediaWiki .
- ' ' skins/common/wikibits.j change
if(window.top!= window) window.top.location = window.location;
toif(window.top!= window) parent.document.title = this.document.title;
.