Ich bekomme Probleme beim Zugriff auf globale Variablen, wenn ich einen AJAX-Aufruf an eine PHP-Funktion im MediaWiki-Framework.Zugriff auf globale PHP-Variable in jQuery.ajax Aufruf in MediaWiki
Meine jQuery AJAX-Aufruf sieht wie folgt aus:
jQuery.ajax({
url: 'GeneralFunctions.php',
type: 'GET',
dataType: 'json',
data: {
text: anchorText
},
success: function (data) {
alert("data: " + data);
}
});
Meine GeneralFunctions.php Datei sieht wie folgt aus:
<?php
if (isset($_GET['text'])) {
jsonInlineParse((string) $_GET['text']);
}
function jsonInlineParse($wikiText)
{
global $wgOut;
$return = $wgOut->parseInline($wikiText); //fails here
echo json_encode($return);
}
?>
Wenn ich die jQuery Aufruf durch ein Click-Ereignis betreibe ich so weit wie die Funktion parseInline(). Die globale Variable wird nie in dem Bereich definiert, und ich bekomme die Fehlermeldung:
Fatal error: Call auf eine Elementfunktion parseInline() auf einem Nicht-Objekt in /path/to/file/GeneralFunctions.php on line
ich bin nicht sicher, wie den Parse-Anruf zu tätigen und die globale Variable definieren, wenn der AJAX-Aufruf gemacht wird?
UPDATE
$ wgOut ist das Outputpage Objekt mit MediaWiki verbunden. Es enthält den gesamten HTML-Code der Seite und wird im gesamten MediaWiki-Framework verwendet, um Inhalte zu einer Seite oder einem Artikel hinzuzufügen. Es wird auf der Serverseite verwendet, um angepasste Ausgaben für Wiki-Artikel zu erstellen. Ich benutze es, um Formulare zu erstellen oder HTML auf vielen unserer Wikis hinzuzufügen.
Mehr Infos hier: http://www.mediawiki.org/wiki/Manual: $ wgOut
UPDATE 2
@Juhana änderte ich meine Funktion wie folgt aussehen, die nach wie vor in den gleichen Fehler führt. Jedes Echo gibt "NULL" aus.
<?php
function jsonInlineParse($wikiText)
{
include_once '/path/to/file/includes/OutputPage.php';
include_once '/path/to/file/includes/parser/Parser.php';
echo var_dump($wgOut);
global $wgOut;
echo var_dump($wgOut);
$return = $wgOut->parseInline($wikiText);
echo $return;
echo json_encode($return);
}
?>
Also was genau ist '$ wgOut'? –
Welche Art von Objekt? Zeige uns mehr Code. – Pete
poste die Ausgabe von var_dump ($ wgOut); –