2011-08-05 28 views
1

wikiのどこにでも置くことができるプレースホルダとして単一のテキストをマークするwikiページを作成できますか?MediaWikiのインラインテンプレートの作成

単純なリストを含むwikiページがあるとします。リストの最初の項目は常にメインページに表示する必要がありますが、編集ユーザーは2ページを編集する必要はありません。

リストページ:

Pineapples 

{{SaveThisText|TodaysMeal|Dumplings}} 

Beans 

Oranges 

メインページ:

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

...メインページはになります

を "今日、我々は餃子を持っているよ" 私はそれことを知っていますテンプレートを使用してこれを行うことは可能ですが、私はそれらを避けたい、私はそれがページの一部であるようにテンプレートを編集したい。

答えて

0

あなたが見る、任意のカスタムPHPを記述することなく、これを行うことができます。

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

+0

は私が必要とする正確に何のように思える、私はそれを試してみましょう:) – Mirek

0

これはMediaWiki拡張機能を作成する場合には可能です。これは、GetSavedTextSaveThisTextにフックを付けることができ、その動作をカスタマイズできるようになることを意味します。

小さなウィキがある場合は、出現のあるページすべてを、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が存在する場合は、データベーステーブルの行を更新できます。

関連する問題