2015-02-06 33 views
0

好吧,所以我正在Silverstripe CMS開發一個站點,它在其中一個頁面上使用錨鏈接。事情是在Silverstripe中有一個正在進行的重寫,在你的鏈接中加入了斜槓。銀鏈條哈希鏈接重寫把不需要的斜槓在鏈接

所以在docs它解釋說,你可以把這個在你的YAML哈希之前禁用斜線:http://doc.silverstripe.org/en/developer_guides/templates/how_tos/disable_anchor_links/

我已經像這樣做(YAML驗證OK):

_config/app.yml :

SSViewer: rewrite_hash_links: false 

然後在我的模板文件,這是我如何建設有錨我的鏈接:

<a href="$ParentPage.Link#$URLSegment">Link</a> 

(注意,這個模板文件是一個數據對象,我不知道是否有任何裸露)

而且輸出鏈接是:

/CNC加工/製造#按訂單

,但應該是:

/CNC加工製作#按訂單

我所有的想法。任何指針?

+0

你可以讓自己的鏈接功能,並刪除尾部的斜槓? – munomono 2015-02-06 12:39:16

+0

好的建議,我試過了,它有相同的結果。無論如何不要擔心,我想我現在可以解決這個問題。感謝您的回覆 – 2015-02-07 14:59:49

回答

2

在你的數據對象的getLink()方法,你可以使用rtrim只是刪除了結尾的斜線:

public function getLink() { 
    //remove trailing slash from parent link 
    $parentLink = rtrim($this->ParentPage()->Link(), '/'); 
    return $parentLink . '#' . $this->URLSegment; 
} 

現在在你的模板只是數據對象的範圍運行:

<a href="$Link">Link</a> 

雖然我沒有注意在URL中使用尾部斜線的缺點。

HTH,wmk

+0

謝謝wmk!很好的回答 – 2015-02-11 14:31:29

+1

很高興我能幫助你。隨意「接受」答案;) – wmk 2015-02-11 21:32:05