這兩天修改了一個網路上看到的 theme(其實也不是修改,就是抓了它的 css,然後使用 firefox 的 view formatted source 來觀察人家的網頁結構,然後三方下手(css, theme (ex, page.tpl.php), photoshop(自己設計個版型出來,方便自己生圖調整)),雖然還沒完工,不過感覺挺有趣的。
但是遇到了一個問題。礙於美觀,所以把放置內容的那個 div 的寬度設小一點,結果導致在管理界面時,有些元件的寬度(長度)會超過,而看起來很醜,或是有時根本會被別的 div 給擋到。
於是我在想,有什麼不錯的方法,可以生出一個版型來( page.tpl.php ?),使得一般使用者看到的版面和管理者進入後台(ex, ooxx/admin/blah blah...)看到的版面不同? 我記得 CivicSpace 的 theme 好像有做到這點,但沒有去看他們怎麼做到的(改 drupal core 與 theme 雙管齊下?),想說上來問問看,看大家有什麼點子 :)
我看了一下CivicSpace的t
我看了一下CivicSpace的theme檔案,似乎是在template.php裡有個civicspace_is_admin(),判斷所在網頁是不是管理介面,如果是的話,就在page.tpl.php裡顯示/隱藏某些部份。
嗯,所以 CivicSpace
嗯,所以 CivicSpace 新增的函式裏頭,至少有這個 civicspace_is_admin() ^>^
剛剛看了一下 ~/themes/engines/phptemplate/phptemplate.engine,並沒有看出來它怎麼把 function 提供給 web designer 的。不過注意到它裏頭傳遞變數的方式,於是在猜想,有沒有一種方式可以新增一個 admin 變數給 theme,或是直接在 engine 層就把原來要傳給 page.tpl.php 的流程,轉傳到別的檔去(ex, admin_page.tpl.php),結果在官方網頁找到使用後者的方法。
Creating a separate admin theme
實在太棒了 :D
挺好的,這樣後台就
挺好的,這樣後台就可以用很簡單的畫面來呈現了
不過其實用兩個theme,效率不一定會高耶
理論上用同樣一個theme應該會比較高
我想弄成兩個
我想弄成兩個 theme(是這樣說的嗎? 我指的是一個 page.tpl.php 一個 admin_page.tpl.php),的確會讓工作多了不少,像是 css 是否共用,如果到時有一邊更動,另一邊是否要跟著更改之類的。
我目前要處理的,只是把原來的 theme 的 layout 改一下,好讓管理者能用盡量大的畫面看到他需要更動的那些設定。
這樣說來的話,我的 case 使用類似 civicspace_is_admin() 或一個變數之類的來得比較好的樣子,等晚上回去想清楚了再說。
嗯,我的說法有點錯
嗯,我的說法有點錯誤,應該說多一個template
我想有裝php optimizer類似的東西,應該會沒有感覺
畢竟之後常用的code都存在記憶體裡了,admin又不是大量存取頁面
只是覺得,要換admin頁面好像也不需要換template,只需要用不同的css檔案就好。把這樣的工作用一個變數取代,然後讓client端去cache不同的css,應該是比較有效率的方式。
話說,要辨別是否要換成admin的介面,只要看
(arg(0) == 'admin') ?
應該就合用了吧?嗯所以你覺得那個
嗯
所以你覺得那個 (arg(0) == 'admin') ? 要如何在 template 裏頭得知?
現在非常的熱血,想說一知道方法就來試一下
自己增加一個admin.css
自己增加一個admin.css
在page.tpl.php增加幾行:
太不巧了,正想試時
太不巧了,正想試時,實驗室的那台機器又掛了......
已經有現成的module啦
http://drupal.org/project/manage-theme
http://drupal.org/project/missing-module
http://drupal.org/project/manage
把上面三個裝起來就OK了
在4.7.2測過,目前運作良好!
awesome!!! 你是 ethan
awesome!!!
你是 ethan 對吧 XD