====== 命名空間的樣板 ====== 或許您會希望在特定的**命名空間**底下建立新頁面時,能出現預設的內容格式,例如在**address**這個命名空間下建立新頁面時,會自動帶出預先做好的通訊錄表格,您只需依表格填寫內容,這就是所謂的命名空間樣板(namespace templates)。 建立新頁面時,[[DokuWiki]]會先查詢對應的樣板檔案,並將內容顯示於編輯視窺內。所以樣板檔為.txt檔,並含有wiki格式標記。 ===== 樣板檔 ===== 樣板檔有兩種: * ''_template.txt'',可套用於目前所在的命名空間。 * ''%%__%%template.txt''(雙下底線),可套用於目前所在的命名空間,及所有子命名空間。 建立樣板檔的方法: * 使用wiki在在適當的命名空間之下,建立含有樣板內容的頁面。 * 使用FTP或WebDAV,複製一份上述的檔案,並更改檔名為_template.txt或__template.txt。 * 在wiki中刪除原始頁面。 ===== 語法 ===== 樣板檔的內容[[syntax|語法]]與一般頁面相同。 ==== 可用變數 ==== 在樣板檔內使用下列變數,可使頁面擁有動態內容: ^ @ID@ | 完整的頁面 ID | ^ @NS@ | 頁面的 namespace | ^ @PAGE@ | 頁面名稱 (不含命名空間,且下底線會被置換為空白) | ^ @!PAGE@ | 同上,但第一個字母為大寫 | ^ @!!PAGE@ | 同上,但每個字的第一個字母為大寫 | ^ @!PAGE!@ | 同上,但所有字母均為大寫 | ^ @FILE@ | 頁面名稱(不含命名空間,且下底線維持原樣) | ^ @!FILE@ | 同上,但第一個字母為大寫 | ^ @!FILE!@ | 同上,但所有字母均為大寫 | ^ @USER@ | 建立這頁面的使用者帳號 | ^ @NAME@ | 建立這頁面的使用者名稱 | ^ @MAIL@ | 建立這頁面的使用者 E-Mail | ^ @DATE@ | 開始建立、編輯頁面的日期和時間 | 此外,您可利用[[phpfn>strftime]]加入各種格式的時間資訊。如果您要在樣板內容中使用 % 字元,務必要用重覆鍵入兩個才會正常顯示。 ===== 編輯樣板 ===== 您無法在DokuWiki中直接編輯樣板內容,除非您有權限可以直接編輯DokuWiki目錄下的檔案(通常是系統管理者)。但有兩個小技巧可以達成此目的,其一涉及檔案的鏈結,另一個涉及程式碼的修改。 ==== 經由檔案鍵結樣板 ==== 此方法可以將樣板檔儲存在特別的命名空間中,再以鏈結來取用該樣板。您也可以不建立鏈結,使該樣板成為不可編輯的樣板。 - 建立一個名為“templates”的命名空間(或類似名稱)。 - 在上述命名空間中,建立一個頁面整理所有的樣板檔。 - 接著在其他命名空間中,建立 _template.txt,並將它做成hard link ((soft link 似乎無法正常運作))指向正確的樣板檔案(如上述,位於“templates”之下)。現在您可以直接用wiki編輯器來編輯樣板了。 若要使用soft link,可參考[[:namespace_templates#Editable templates through symbolic links|英文頁面]]其他網友的經驗分享。 ==== 讓所有的使用者都可編輯樣板 ==== 此方法可以讓所有的使用者根據其權限修改樣板檔。 - 檢視 inc/common.php,約817行附近((2009-02-14版為811至812行)),將預設樣板檔名變更為 template.txt(或aaa_template.txt之類)。 - 現在,擁有命名空間寫入權限的使用者,都可以在該命名空間內建立名為“template”的頁面,該頁面亦將成為樣板。 * 說明:此方法的好處是,編輯後的樣板馬上可以套用。 ==== 使用者群組的支援 ==== 請參考[[:namespace_templates#@GROUPS@ support|英文頁面]]。 ====== 建議事項 ====== * 在config中設定樣檔的預設名稱,或許可以避免在系統升級之後common.php檔被刷新而弄亂了設定,並使用用ACL設定來限制樣板檔的存取權限。