Translate


訂閱服務...

線上使用者

目前共有 0 位註冊使用者3 位訪客 在線上。

新會員

  • Mfeeluse
  • chris
  • kendrickpittmaneq
  • pigpighhkk
  • lissa

書籍推薦

重新編排 CCK 表單 ( CCK Input Form ) - Part II ( 完.)

Arthur Yu 的照片
Average: 5 (1 vote)

正常的 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 檔裡,要寫成一個模組才行,所以,就暫時不提了,有點給它複雜的哩 !!...

剛開始的時候還覺得有點難,結果是中間有一段的時間是搞錯方向,結果就花了不少的時間,後來才又找回正確的方向,現在搞懂之後,才覺得是和概念有關的問題哩 !! 瞭解了,就不難了.....-____-!!。

花水木 (未確認)
送出按鈕

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

Arthur Yu
Arthur Yu 的照片
User offline. Last seen 1 小時 28 分鐘 ago. Offline
Joined: 12/17/2007
Hello 花水木

Hello 花水木 兄,

阿舍剛剛看了一下,在 DruaplTaiwan.org 上已經有解答, 阿舍就跳過了囉 !!.....。

阿舍...
阿舍的 Drupal 架站經驗談
http://drupal.soa.tw

供參囉 !!

阿舍...
阿舍的 Drupal 架站經驗談
http://drupal.soa.tw

發表新回應

此欄位內容將保密,不會公開顯示出來。
  • 自動將網址與電子郵件位址轉變為連結。
  • 可使用的 HTML 標籤:<a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • 自動斷行和分段。

更多關於格式化選項的資訊

Mollom CAPTCHA (play audio CAPTCHA)
Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated.

Google 廣告 Cookie 和隱私權政策
當您造訪我們的網站時,我們會透過第三方廣告公司來放送廣告。這些公司可能會使用您在本網站和其他網站上的相關瀏覽資訊 (不含姓名、地址、電子郵件地址和電話號碼),以便提供閣下感興趣之產品和服務的廣告。如果您想要瞭解此作法的詳情,以及如何選擇不讓前述公司使用您的資訊,請按這裡

Drupal 7 預計釋出日期

最早為 2010/08/30
最晚為 2010/10/14
目前版本 Drupal 7.0-alpha6
待處理的 "嚴重問題" 還有 41 個...

詳細內容請參考這裡

*註 : 以上日期是依據目前解決被列為 "嚴重問題" 的處理時間所做的線性和對數預測...,至於有那些問題,請參考這裡

BloggerAds

Drupal 新聞

阿舍的 Plurk

誰正在看什麼...