Создание встроенного шаблона Mediawiki - PullRequest
1 голос
/ 05 августа 2011

Можно ли создать страницу вики, где вы помечаете один фрагмент текста как заполнитель, который может быть помещен в другое место вики?

Допустим, у меня есть страница вики, содержащая простой список,Первый элемент в списке должен всегда отображаться на главной странице, но пользователь, выполняющий редактирование, не должен редактировать две страницы для этого, только одну страницу.

Страница списка:

Pineapples

{{SaveThisText|TodaysMeal|Dumplings}}

Beans

Oranges

Главная страница:

Today, we'll have {{GetSavedText|TodaysMeal}}

... На главной странице будет «Сегодня у нас будут пельмени»

Я знаю, что это можно сделать с помощью шаблонов, но я хочу их избежатьЯ хочу отредактировать шаблон, как если бы он был частью страницы.

Ответы [ 2 ]

0 голосов
/ 20 февраля 2012

Вы можете сделать это без написания произвольного PHP, см .:

http://www.mediawiki.org/wiki/Extension:Variables

0 голосов
/ 18 февраля 2012

Это определенно возможно, если вы напишите для него расширение MediaWiki.Это означает, что вы можете поместить хук на GetSavedText и SaveThisText, чтобы их поведение можно было настраивать.

Если у вас есть небольшая вики, вы можете просто циклически проходить по каждой странице с вхождением GetSavedTextпоиск {{SaveThisText|TodaysMeal|.Получить каждую страницу очень просто:

// get existing pages
$db = wfGetDB ( DB_MASTER );
$results = $db->resultObject ( $db->query(
    "select distinct page_title from {$wgDBprefix}page " )
);
$existing_pages = array();
while ( $r = $results->next() )
    $title = Title::newFromText( $r->page_title );
    $article = new Article ( $title );
    $content = $article->getContent();

Более эффективным подходом было бы зацепить обновление страницы.Если присутствует SaveThisText, вы можете обновить строку в таблице базы данных.

...