2016-04-14 44 views
1

在MediaWiki 1.26.2中,如何獲取頁面標題的一部分以在#ifexist語句中使用它?如何獲取MediaWiki頁面標題的一部分?

我需要鏈接到MediaWiki中不同但相關的文章,提醒用戶頁面是否存在或不存在。爲此,我做了以下操作:

我有一個名爲ARTICLE_NAME的頁面。與之相關的是一個名爲Notes:ARTICLE_NAME的頁面。 「注意:」不是一個命名空間,而是一個字符串,如ARTICLE_NAME。由於策略限制,我無法爲Notes創建名稱空間。

在ARTICLE_NAME頁面,下面的代碼去檢查是否存在於Notes:

{{#ifexist: Notes:{{PAGENAME}} | {{alert_box}} | } 

所以,如果ARTICLE_NAME有相關Notes:ARTICLE_NAME頁面我得到一個不錯的自定義警告框突出的事實,並鏈接到它。

當我嘗試反轉時,我的問題就開始了。在Notes:ARTICLE_NAME頁面中,如果有一個名爲ARTICLE_NAME的頁面,則需要註釋才能顯示警告框。該代碼

{{#ifexist: {{PAGENAME}} | {{alert_box}} | } 

不執行任何操作,因爲{{PAGENAME}}帶來Notes:ARTICLE_NAME預期。

我怎樣才能得到「注意事項:」之後的任何內容,用{{PAGENAME}}來代替#ifexist代碼?

回答

0

所以碴周圍後,我找到了一種方法:從頁面名中刪除Notes:然後把它靠在#ifexist

{{#replace: {{PAGENAME}}|Notes:|}} 

這樣它就可以將Notes:替換爲無。我做了一個名爲ARTICLE_TITLE的魔術字,所以去筆記的代碼是這樣的:

{{#ifexist: :{{ARTICLE_TITLE}} | {{Alert_box}} | }} 
0

它通過結合#pos#ifeq工作。

例子:

{{#ifeq:{{#pos:text1|text2}}| |text1 does not contain text2|text1 contains text2}} 
+0

嗨,感謝您的回覆。我花了一段時間用你的代碼嘗試它,但找不到一種方法使它工作。但是,我通過使用替換並從pagename中刪除Notes:位來替代解決方案。不管怎麼說,還是要謝謝你! –