У меня возникают проблемы с доступом к глобальным переменным, когда я выполняю AJAX-вызов функции php в среде MediaWiki.
Мой JJuery-вызов AJAX выглядит следующим образом:
jQuery.ajax({
url: 'GeneralFunctions.php',
type: 'GET',
dataType: 'json',
data: {
text: anchorText
},
success: function (data) {
alert("data: " + data);
}
});
Мой файл GeneralFunctions.php выглядит следующим образом:
<?php
if (isset($_GET['text'])) {
jsonInlineParse((string) $_GET['text']);
}
function jsonInlineParse($wikiText)
{
global $wgOut;
$return = $wgOut->parseInline($wikiText); //fails here
echo json_encode($return);
}
?>
Когда я запускаю вызов jQuery через событие щелчка, я доходю до функции parseInline ().Глобальная переменная никогда не определяется в области видимости, и я получаю сообщение об ошибке:
Неустранимая ошибка : вызов функции-члена parseInline () для необъекта в /path/to/file/GeneralFunctions.php в строке 54
Я не уверен, как сделать вызов синтаксического анализа и определить глобальную переменную, когда AJAXвыполнен вызов?
UPDATE
$ wgOut - это объект OutputPage, связанный с MediaWiki.Он содержит весь HTML-код страницы и используется во всей среде MediaWiki для добавления контента на страницу или статью.Он используется на стороне сервера для создания персонализированного вывода для статей вики.Я использую его для создания форм или добавления HTML во многих наших вики.
Подробнее здесь: http://www.mediawiki.org/wiki/Manual:$wgOut
ОБНОВЛЕНИЕ 2
@ Джухана Я изменил свою функцию, чтобы посмотретькак это, что приводит к той же ошибке, что и раньше.Каждый эхо-сигнал выводит «NULL».
<?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);
}
?>