是否可以创建一个wiki页面,在其中将单个文本标记为占位符,可以将其放在Wiki上的任何其他位置?
假设我有一个包含简单列表的Wiki页面。列表中的第一项必须始终显示在主页面中,但编辑用户不应为此编辑两页,只需编辑一页。
列表页面:
Pineapples
{{SaveThisText|TodaysMeal|Dumplings}}
Beans
Oranges
主页:
Today, we'll have {{GetSavedText|TodaysMeal}}
...主页将导致“今天,我们将有饺子”
我知道可以使用模板执行此操作,但我想避免使用模板,我想编辑模板,就像它是页面的一部分一样。
答案 0 :(得分:0)
如果你为它编写MediaWiki扩展名,这绝对是可能的。这意味着您可以在GetSavedText
和SaveThisText
上放置一个钩子,以便可以自定义其行为。
如果您有一个小型wiki,则可以在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
,则可以更新数据库表中的一行。
答案 1 :(得分:0)
您可以在不编写任何自定义PHP的情况下执行此操作,请参阅: