之間發生加入「虛擬文件夾empoyee」我們的wiki時,我們有同樣的問題。我們希望biuld以下頁面結構:
Employee 1
Personal Data
Contract Data
Training
...
Employee 2
Personal Data
Contract Data
Training
...
Employee X
Personal Data
Contract Data
Training
...
我們髒,但非常有效的解決方法解決它:
Employee 1
Employee 1 - Personal Data
Employee 1 - Contract Data
Employee 1 - Training
...
Employee 2
Employee 2 - Personal Data
Employee 2 - Contract Data
Employee 2 - Training
...
Employee X
Employee X - Personal Data
Employee X - Contract Data
Employee X - Training
...
的,我們定義:首先我們通過添加特定的僱員前綴做出獨特的頁面名稱我們自己的「標籤」來標記,不應該出現在匯合前端頁面標題的一部分:
Employee 1
[hide]Employee 1 - [/hide]Personal Data
[hide]Employee 1 - [/hide]Contract Data
[hide]Employee 1 - [/hide]Training
...
Employee 2
[hide]Employee 2 - [/hide]Personal Data
[hide]Employee 2 - [/hide]Contract Data
[hide]Employee 2 - [/hide]Training
...
Employee X
[hide]Employee X - [/hide]Personal Data
[hide]Employee X - [/hide]Contract Data
[hide]Employee X - [/hide]Training
...
其餘股份由一些JavaScript魔法完成的,這爲e要顯示
<script>(function() {
var expr = /\[hide\].*?\[\/hide\]/g,
blacklist = ['textarea', 'form', 'pre', 'script', 'style'];
$(document)
.ajaxSuccess(hideTextParts)
.on('ready', hideTextParts);
function isChildOfBlacklistedTag(node) {
while(node = node.parentNode) {
if (node.nodeType === Node.ELEMENT_NODE && blacklist.indexOf(node.nodeName.toLowerCase()) > -1) {
return true;
}
}
return false;
}
function hideTextParts() {
var root = document,
walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, null, false),
node;
while (node = walker.nextNode()) {
console.info(node.parentNode);
if (expr.test(node.textContent) && !isChildOfBlacklistedTag(node)) {
node.textContent = node.textContent.replace(expr, " ");
}
};
}
})();
</script>
黑名單確保「標籤」是不是隱藏在您需要的:通過合流管理員>自定義HTML mbedded。例如,在頁面的編輯屏幕的標題字段以及空間管理的CSS編輯字段內。你可能想擴展到
你真的需要有相同的網頁名稱?鏈接可以有任何你想要的文本,具有獨特的頁面名稱不會是一個大問題。 – MNRSullivan
我會說是的。一個很好的例子就是要記錄客戶信息的區域。結構如下: 客戶名稱>協議 客戶名稱>聯繫信息 在這種情況下,只有一個頁面可以在整個客戶空間中名稱爲「協議」。 – Frazer
你能否舉出更多的例子來說明重名的地方? – Underverse