Как заменить содержимое внутри пользовательского тега в MediaWiki перед сохранением в базу данных? - PullRequest
1 голос
/ 28 марта 2011

Прежде всего, у меня настроены MW 1.16 и 1.17 с PHP 5.3.5, MySQL 5.5.8 и Apache 2.2.17.

Я написал простую функцию $ wgExtensionFunction, которая сейчас ничего не делает.

$wgExtensionFunctions[] = "wfTestExtension";

function wfTestExtension() { global $wgParser;
$wgParser->setHook("myTag", "renderTest");
}

function renderTest($input) {
   return $input;
}

Что я хочу сделать, так это то, что если я наберу <myTag>Blah blah blah</myTag> в форме добавления или редактирования, я хочу иметь возможность изменять содержимое внутри myTag ПЕРЕД сохранением его в базу данных. Какой механизм я должен использовать для этого? Я предполагаю крючки? Например, при использовании ловушки ArticleSave переменная $ text уже вычеркнула <myTag>, поэтому нет никакого способа попытаться проанализировать строку и выяснить, что было изначально в <myTag>

Я часами пытался найти что-то в Google, но я почти сдался. Любой совет будет высоко ценится.

Приветствия.

Ответы [ 2 ]

0 голосов
/ 28 марта 2011

Это еще одно «возможно», но вы можете попробовать использовать комбинацию шаблона и команду {{subst:}} (см. transclusion ).

(См. Также Вики и Википедия )

0 голосов
/ 28 марта 2011

Может быть http://www.mediawiki.org/wiki/Manual:Hooks/ParserBeforeStrip будет работать:

«Используется для обработки необработанного вики-кода перед применением какой-либо внутренней обработки»

...