您在這裡

自訂模組的顯示頁面問題

各位站上的高手們,小弟又來請教了。

繼上次資料庫建立的問題(未設定node_module.install)排除後,馬上就衍生的新問題,現在型別已經可以順利的建立在資料庫上面,在上星期的確給小弟打了一劑強心針,就好像國父出生之於建立民國一樣,但要走的路現在才開始,而在下要問的問題可能在站上的許多高手看來是些功課做的不夠而發問的問題,但對一邊開著線上英漢字典一邊看Drupal官方的Hook的英文苦手來講在線上發問已經最後的求助管道了,假設有問出不夠水準的問題也請各位多多包涵。

問題1:
目前目標是建立一個以gmap為圖資的地點系統,在初步的欄位都已經在上次問題排除後建立起來,但是不知道開如何瀏覽,是必須像是裡Jimmy所提供講義裡建立一個page的函數才行嗎?

問題2:
假設需要建立,那為何在小弟Drupal主選單的Create content會有可以新增該自訂類型的模組,是因為有預設的新增頁面嗎?如果Create有預設介面,那View以及Edit Node有嗎?

問題3:
在模仿Jimmy建立一個update的page後,欲利用hook_menu裡'callback arguments'傳遞'$node'好像無法(程式碼附件1)接收,會出現錯誤訊息
warning: Missing argument 1 for act_node_update() in /var/www/html/drupal/modules/act_node/act_node.module on line 220.
是因為沒辦法直接傳整個$node嗎?還是update不能直接開啟在hook_menu裡$items[]所設定的path?

附件程式碼1:
function act_node_update($node) {
// if this is a new node or we're adding a new revision,
  if ($node->revision) {
   act_node_insert($node);
  }
  else {
    db_query("UPDATE {act_node} SET place = '%s', country = %d, address='%s', gps_e=%d, gps_n=%d
WHERE vid = %d", $node->place, $node->country, $node->address, $node->gps_e, $node->gps_n, $node->vid);
  }
}

PS:由於整個程式碼加上註解以及測試的BLOCK之後有約290行,避免影響版面,故無附上,如有需要完整程式碼,煩請留言,小弟在把他POST出來

首先感謝您的回覆
對一個新手來講真的很有用^^

沒有去嘗試使用CCK是因為之前在其他網站看到說明如果要自行建立類型只能自行建立模組而一頭栽進去模組的建立。
我再試試看用CCK,謝謝。

在下嘗試使用CCK製作後終於明白之前在其他網站說的意思了,
也做了以下假設,不知道是對還是錯,還請站上高手指教:

因為CCK建立內容的都是已經制定好的"物件",結合所設定的物件後產生專有的CCK"結構",
而要CCK裡面包含一個CCK結構就不行,除非已經把這個結構設定成CCK可用的物件,
所以如果要在CCK內包含一個非預設的結構,就必須自建新內容類型的模組。

舉例來講,目的是要建立一個最少包含地址與敘述的內容類型,
在建立的過程中,可以建立一個CCK宣告一個欄位是文字輸入(FIELD) 當作敘述,
但是要直接增加一個住址的相關欄位(包含Country.City.ZIP.Address)就不行,
就算已經建立一個地址的附屬CCK類型A,
也沒辦法在建立主要地點內容CCK類型B的時候引入使用A成為其中一個欄位(或稱為相關欄位組合較恰當),
所以就必須建立一個專屬的新內容類型"模組",以達到預期的效果。

不知道以上的概念有沒有瑕疵?或是有更好的方法可以解決自建內容類型的問題?