Attachment | Size |
---|---|
views-tab1.gif | 10.18 KB |
上圖顯示了一個經過修改的 user page 的 tabs
tabs 其實來自一個 hook(), menu_local_tasks()
用 theme developer 指一下便可以看到
但這次介紹的並不是要修改這個 hook 的 theme template
而是使用 views, 新增一個tab 到這個地方
在上圖的例子,
一個 url 為 [root]/user 的 頁面,
要在 views 建立一個的 tab,
- 建立一個 page views
- 正常的輸入所需的資料 (sort, filter.....)
- page 的 path 要設定為 user/%/[joe] ([joe]為任何值)
- 在 page 的參數選項之中, 有一個 menu 的選項, 選 provide as menu tab
唯一有點難度的是設定 path
設定錯誤會令 tab 不在所需的頁面中出現
例子中, 因為user 頁 (即user profile 頁) 的正確 url 為 user/[uid]
你可以看到 edit tab 的 url 為 user/[uid]/edit
track 的 url 是 user/[uid]/track
所以, 在user 頁 輸出一個 tab 的正確 url 為 user/%/[joe]
% 是 [uid] 的萬用符
又例如, 現在的首頁的 url 為 frontpage
要提供一個首頁 tab, 便要將首頁的 url 改為 frontpage/[1]
首頁的 menu 是 default menu tab
tab 的 url 為 frontpage/[2], menu 為 menu tab
只要改變 tab 的weight 便可以控制 tab 的前後次序了
更多關於tabs:
在 drupal 的世界, tabs 的功能很多
它擔當了 "提供右鍵功能表" 的角式, 或者, "進階", "其他" 等等
從模組的角度, tabs 都是 menu 的一員, (註1)
但如果你並不是一個開發者
那你並不需要理解複雜的 menu 系統
只要懂得如何透過 views 使用它
正如你不需要輸入一句代碼便可以使用 Drupal 建立一個網站一樣
註1:
在 Drupal6+ 要清空緩存才會反映 menu 作出的修改
不過由於以上的例子是透過 views 設定, 而 views 已經替用戶清空