Hey all,
I'm trying to use MediaWiki in a pretty non-standard way, and I'm hoping
someone can give me a definitely answer about what works / wont work:
The site is a collection of a few different open-source document, chat,
and database tools. As such, it has it's own PHP code that drives the
site, and includes MediaWiki and other systems to generate parts of
pages where required.
As a simple example, I'm trying to do something like this:
function renderWiki($title)
{
$_R = $_REQUEST; $_G = $_GET; $_P = $_POST;
$_REQUEST = array(); $_POST = array();
$_GET = array( 'action' => 'render', 'title' => $title
);
chdir('wiki');
ob_start();
require('index.php'); // run MediaWiki here
$output = ob_get_contents();
ob_end_clean();
$_REQUEST = $_R; $_GET = $_G; $_POST = $_P;
chdir('..');
return($output);
}
The first result I get is something like this:
require(/includes/WebRequest.php) [function.require
<http://drmvt.anjero.com/function.require>]: failed to open stream: No
such file or directory in
*/storage/websites/test/docs/includes/AutoLoader.php* on line *362
*I played around a bit, and found out that by making $IP global, either
in my function or in LocalSettings, I'd get a bit further, but then hit
this error:
*Fatal error*: Call to a member function incr() on a non-object in
*/storage/websites/drmvt/docs/includes/GlobalFunctions.php* on line *1679
*My hypothesis is that MediaWiki relies on many variables being in the
global scope, due to their being defined outside of any MW functions
(for example, anything defined by LocalSettings). Since I'm running MW
from inside my own function, variables not explicitly defined as global
inherit my function's variable scope. Thus later references to those
same variables, in subroutines where they are explicitly made global,
actually reference a different (and empty) variable scope.
1) Does this theory sound correct?
2) Assuming I need to use functions in my site's framework, what's the
best way to make this work?
Thanks,
Andy
Show replies by date