
正常的 CCK 欄位只有由上而下的排列方式,並且只能透過 「管理」 › 「內容管理」 › 「內容類型」 › 內容類型名稱 >「管理欄位」裡來編排,如果要來個乾坤大挪移的話,就做不到了,現在,經由在 template.php 檔裡,加入 " phptemplate_xxxxx_node_form()" 的函數,就可以利用 xxxxx_form.tpl.php 來任意安排 CCK 的欄位了,今天就是要來說怎麼排這個 tpl.php 檔哩 !!
完成 Part I 的步驟之後,依阿舍的 bookreview 表單來講,現在就有 $isbn 和 $published_date 二個欄位變數可以在阿舍的 bookreview_form.tpl.php 裡用,再加上原來就有的 $tilte 和 $body 欄位,阿舍就把它排成下面這樣。
<?php <div id="br_field_title"><?php print $title; ?></div> <div id="br_field_pddate"><?php print $published_date; ?></div> <div id="br_field_isbn"><?php print $isbn; ?></div> <div id="br_field_body"><?php print $body; ?></div>
在阿舍原來的 bookreview 表單裡,這個 ISBN 欄位是在 Published_Date 欄位的上面,現在阿舍把它調換之後,原來在 「管理」 › 「內容管理」 › 「內容類型」 › 內容類型名稱 >「管理欄位」設定的順序就會沒有用了。
在這裡,各位大德要記得把每一個欄位都用一個 div 標籤包起來,並且要給它一個 ID,這樣做的目的是為了方便用 CSS 來各別調整每一個欄位的樣式,例如,各位大德常看到的問題,就是如何把兩個 CCK 欄位並排起來,變成放在同一行,而各位大德最常看到的解決方法,便是利用這兩個欄位的 ID 配合 CSS 來做像下面這樣的設定。
#br_field_pddate, br_field_isbn {
float: left;
}
這樣設定之後,這兩個欄位就會列在同一行,然後就粘在一起了....=____=!!
不過,既然已經可透過 bookreview_form.tpl.php 來完全控制欄位的擺設,所以,如果各位大德想要將一個或是多個欄位排作一排,阿舍會建議各位大德改用 Table 標籤來處理會比較好看、好管理,記得阿舍以前在排欄位時,也都是用 Table 來排的,不錯用的,以下就是阿舍的 bookreview_form.tpl.php 的內容。
<?php <table> <tr> <td colspan="2"> <?php print $title; ?> </td> </tr> <tr> <td> <?php print $isbn; ?> </td> <td> <?php print $published_date; ?> </td> </tr> <tr> <td colspan="2"> <?php print $body; ?> </td> </tr> </table>
看來這個是比用 CSS 的程式碼來的長很多,但是彈性會大很多,就算一行要給他排 5 個欄位也是沒問題的,如果各位大德還想用 CSS 來做進一步的控制,那麼也是一樣的,可以為欄位加入 div 標籤和 ID 屬性,方便來控制。
CCK 欄位的預設長度是 60 個字,在有一些版型下,是沒有足夠的寛度來擺二個欄位在一列的,所以就得用 CSS 來設定度每一個欄位的寛度,Drupal 會幫每個 CCK 欄位位產生一個 ID ,各位大德可以從網頁的原始碼中查的到,以阿舍的兩個欄位為例,設定方法如下:
#edit-field-published-date-0-value {
color:#00fffd;
width: 50px;
}
#edit-field-isbn-0-value {
width: 50px;
}
更改欄位寛度的方法還有一種,就是直接用 $form[欄位名稱]['#size'] = xx 的方式,不過,這個不能用在 template.php 檔裡,要寫成一個模組才行,所以,就暫時不提了,有點給它複雜的哩 !!...
剛開始的時候還覺得有點難,結果是中間有一段的時間是搞錯方向,結果就花了不少的時間,後來才又找回正確的方向,現在搞懂之後,才覺得是和概念有關的問題哩 !! 瞭解了,就不難了.....-____-!!。
- 瀏覽次數: 2176
Hello 花水木 兄,
阿舍剛剛看了一下,在 DruaplTaiwan.org 上已經有解答, 阿舍就跳過了囉 !!.....。
阿舍...
阿舍的 Drupal 架站經驗談
http://drupal.soa.tw


送出按鈕好像被忽略了 :P
我碰到一些問題, 可以幫我看看嗎?
http://drupaltaiwan.org/forum/20081028/2705