2017-10-06 39 views
0

我正在運行一個小維基,並且我們的用戶希望他們發現的界面更容易混淆。抱怨是,如果鏈接是「大新聞」或「大新聞」或其他大小寫排列,那麼標題爲「Big_news」的頁面會顯示爲紅色鏈接,並且他們希望這些頁面顯示爲正常顏色鏈接如果頁面存在。當用戶點擊鏈接時,正確顯示相應的頁面,但最好事先看到頁面已經存在。mediawiki - 使鏈接評估不區分大小寫

我試過實施的解決方案,例如hereherehere,但它們不起作用 - 鏈接仍然顯示爲頁面上的紅色鏈接。 [的確,我認爲有些文章已經過時了; mediawiki 1.27似乎沒有提到他們的表。]

任何想法我可以去做這個?

回答

0

您可以勾選HtmlPageLinkRendererBegin並使用鏈接目標運行數據庫查詢以查找頁面名稱的任何不區分大小寫的匹配項(在頁面標題上,它只能對內部鏈接執行此操作),以及然後在有匹配的情況下替換目標。

0

感謝提示,@Sam Wilson。看起來像一個有趣的功能,但除非我想我的猜測,我不得不查詢數據庫中的每一個頁面鏈接 - 正確嗎?如果是這樣,我認爲表現會受到影響。無論如何,這個鉤子似乎不適合我[主要是因爲我對mediawiki的不熟悉讓我撓了腦袋......]。我想出的解決方案如下:

1-將變量$wgLinksIgnoreCase添加到您的LocalSettings.php文件中。如果您希望將鏈接顯示映射爲不區分大小寫,請將其設置爲true

2-修改文件includes/parser/LinkHolderArray.php如下[DIFF準確的維基百科版本1.29] -

283a284 
>    global $wgLinksIgnoreCase; 
370a373,376 
>    if (!empty($wgLinksIgnoreCase)) { 
>     $mapper = array_combine(array_keys($colours), array_keys($colours)); 
>     $mapper = array_change_key_case($mapper); 
>    } 
373a380,381 
>    if (!empty($wgLinksIgnoreCase) && isset($mapper[strtolower($pdbk)])) 
>     $pdbk = $mapper[strtolower($pdbk)]; 

正如我所說,我不是很熟悉的軟件,因此,如果任何人誰熟悉與它找到一個更優雅的解決方案,隨時chong英寸

+0

LinkCache用於避免重複的數據庫查找; LinkBatch用於批量查找數據庫。但是,我期望幾乎所有的東西(除了API可能)都依賴Title中的標題規範化,所以也許你只能改變它。 – Tgr

0

你可以看看如何使用$wgCapitalLinks。很可能,所有小寫字幕標題都需要在代碼需要根據該設置進行分支的相同位置進行特殊設置。