2009-12-02 70 views
6

我有一個內容類型的餐廳。對於每家餐廳,我想記錄他們的菜單。Drupal內容類型(餐廳)設計

的樣本數據是這樣的:

飲料

  • 可樂                                                $ 4.99
  • 礦泉水                    $ 2.99

雞尾酒

  • 藍礁湖                          $ 9.99加入

    (X,其中Y等相結合)

  • 紅藍寶石                      $ 9.99加入

    (另一個X與胡說混合)

麪食

  • 經典of博洛尼亞      $ 13.69

    (Pasta的選擇與我們自制的特色混合博洛尼亞醬)


正如你所看到的,菜單由幾個部分組成:類別,菜單名稱,描述,價格。如果我們也可以重新安排類別(一些餐館可能更喜歡他們的飲料在他們的主菜前顯示,而其他餐廳喜歡相反),那也是很棒的。

  1. 你會如何推薦內容類型設計?
  2. 如果是使用節點引用,是否有任何簡單的方法/模塊允許我直接從餐廳編輯窗體編輯菜單? (也許對某些菜單選項卡其它附加)

回答

3

我會做的話,大概是這樣的方式:
注意,我已經習慣了開發Drupal的,所以我就可以做很多的這些事情很快,因爲我最近做了類似的事情。這可能不是您的最佳選擇。

  1. 在模塊中,我會爲此,餐廳和menu_item創建兩種內容類型。
  2. 餐館可能只是標題和我會用於菜單項類型的另一個字段。我不知道該怎麼做,這取決於項目的未來。我可能會選擇不設置餐廳內容類型或不做任何特別的事情,並且僅爲菜單項類型的排序創建一個表。
  3. 大部分的菜單項內容類型都可以通過CCK完成,但我可能會爲他們的訂購創建一個表和自定義字段(這是我做了幾次,所以我有一些片段讓js可以拖動訂購系統,比如CCK爲訂購字段所做的)。我也可以選擇自己處理價格,如果我需要更好的控制在不同的情況下,比如做交換計算等。
  4. 對於我使用分類的分類(使用分類標準會給出很多額外的獎金,如SEO) 。
  5. 我會使用節點引用將菜單項綁定到他們需要的任何菜單。
  6. 其餘菜單項字段只是CCK可以很好處理的文本字段。
  7. 我會使用node_api來獲取餐館節點的菜單項,所以在主題化的情況下,餐館節點視圖將成爲菜單的顯示(如果這是主要功能,否則我會爲菜單並在節點視圖上保留餐廳的詳細信息)。
  8. 隨着一些form_alter我會創建一個訂購系統,連接到我選擇用於訂購類別的任何系統。
  9. 我可能會讓管理員能夠更改節點顯示中菜單項自身的排序,或者爲其創建一個標籤。取決於客戶想要什麼。

這是一個有點開發沉重,因爲很多這些東西都需要編碼。你可以使用cck和views來走很遠的路,但我寧願爲此創建一個模塊。原因是,如果客戶希望在半年內改變或者增加了一些功能,我可能會很難實現它。與cck和視圖集成可能會非常棘手和耗時,所以現在使用一點額外的時間會使它更加靈活和可擴展。我也做了不同的事情,有一些共同的理由,所以我將能夠C/P很多代碼,我知道很好,只是調整它在這裏和那裏的一些這些東西。這也是我走這條路線的部分原因,因爲單獨使用cck和views並不會爲我節省很多時間

+0

我喜歡這個建議,儘管我不會去追求它,除非項目的其他部分明確地需要將菜單的不同部分分開(但這是一個開發哲學的問題,所以我不會爲此而低估)解決方案si以任何方式不好!)。我特別喜歡第4點,因爲它是真正的分類學帶來了幾個設計優勢 - 除了googletorp已經提到的SEO點)。 – mac 2009-12-03 12:41:54

+0

@mac採取的路線取決於項目。我的一些項目的定義非常明確,在這種情況下,我會知道是否需要所有這些,或者我會使用更少的代碼更簡單些。但如果這是一個隨着時間的推移將會在不同地區延伸的網站,我寧願讓事情更受控制。但正如你所說,這是一個發展哲學問題。我偏愛這種策略的一個原因,也可能是我在過去的一兩個月裏一直在做的工作,這些工作還沒有用Drupal :) – googletorp 2009-12-03 13:06:48

4

RESTAURANT內容類型。企業名稱,公司地址,電話,傳真,網站,電子郵件,即時消息,Twitter,企業主,業務聯繫人(如經理),餐廳描述,徽標和谷歌地圖位置鏈接(或實現位置和gmap模塊)等字段。也許使用五星級模塊來啓用餐廳的用戶評級。

食物層次分類法(爲此需要模塊)。食物類別是飲料(含酒精,不含酒精等),湯,沙拉,早餐,午餐,晚餐,甜點,主菜,三明治,海鮮等。

食物內容類型。節點參考字段的餐館名稱字段,以便他們的菜單被建成並正常組織,食品hiearchical分類選擇,食品標題(McRib,彌天大謊,Bloomin洋蔥等),價格,準備選項(中,做得好的,等),食物圖像以及可以與這道菜結合的添加物應該是選擇列表選項還是節點對其他食物內容類型的引用(沾滿土豆或烤土豆的那種?)

關於圖像,請使用imagecache來生成幾個不同的有用的大小的所有圖片,所以你可以微縮縮略圖,中等大小的圖像,和全尺寸華麗的菜餚圖片。

在CSS顯示頗像menau。看看像Chilis.com這樣的國家餐館網站,看看他們是如何做到的。提供各餐廳,和餐廳暴露過濾器視圖中的食品分類術語的菜單鏈接,因此用戶可以很容易地找到類型,地點,星級等餐館

聽起來像一個有趣的項目。我希望看到您完成後發佈的案例研究。

+0

有人標記了這個-1?沒有用? 任何想法爲什麼?我認爲這很有用,我提供了一個解決方案來回答他們問題的所有部分。 也許我錯過了什麼?請告訴我我做錯了什麼? 我認爲接受答案的人應該被迫解釋爲什麼他們這樣做,提供建設性的反饋,爲什麼給出的答案是沒有幫助的。 否則,它必定是一個醜陋的回答者之間的競爭意識,就像亞馬遜的作家在審查競爭對手的書籍時一樣,讓自己看起來更好。 有沒有一個wiki來討論這個問題? – 2009-12-07 20:20:40

+0

有http://meta.stackoverflow.com來討論這類問題。是的,目前已經有一個討論正在進行中,但目前的結果似乎是:不,系統是好的。我的解決方案也被低估了,因爲有人不喜歡它的方法,雖然 - 和你一樣 - 從技術上講絕對是合理的:我認爲在不同風格/方法/哲學方面有時會得到低估是正常的。如果答案中有真實的錯誤/錯誤信息 - 但是 - 有人會在一分鐘內讓你知道! ;) – mac 2009-12-08 21:53:54

+0

偉大的解決方案!我喜歡它很多:) +1 – giorgio79 2012-03-30 14:15:00

1

我不得不這樣做與此非常相似的東西。我用面板,視圖和cck解決了它。 我創建了一個節點類型'restaurant'和一個節點類型'menu_item'。 menu_item分類法是通過使用特定詞彙表來設置的。 我使用的面板來顯示路徑餐廳名/菜單中的菜單,然後視圖+ CCK顯示在菜單中的項目 (ⅰ用於節點referrences項鍊接到餐館)。然後我按分類學術語字段對視圖進行分組。

1

我不得不這樣做可能會是如下的第一個想法:

  • 食品內容類型有:姓名(名稱),描述(身體)和價格
  • 餐廳內容類型與多種食物節點-reference領域
  • 詞彙相關聯的食品與飲料一樣,雞尾酒,意大利麪食,術語.. (我敢肯定有,讓你定義分類術語權重模塊)

這樣,您可以存儲您的數據。

對於顯示部分,你可以使用:

  1. (更好的方法)的自定義節點restaurant.tpl.php,創造出由分類項歸類食品格式化的頁面(我敢肯定你必須通過模板變量直接訪問引用的節點..我要測試,讓你知道)
  2. (可以通過管理面板來完成)在放置在「內容」區域塊顯示引用的觀點節點,按照「食品類別」詞彙表上的分類術語進行分組,格式化爲表格。您可以通過使用參數來獲取當前節點的nid(用於過濾)。

我推薦第一個選擇,因爲它更符合標準,執行速度更快,可避免一些可能來自視圖+塊的問題。

+0

(可能最好的方法是編寫一個節點模塊,通過創建一個多值的AHAH表單,包含category/title/price/description,但我想這不是您尋找的一種解決方案..) – redShadow 2010-04-01 15:47:40

+0

..並且通過使用節點引用,您也可以享受共享食物定義的優勢(例如,如果紅葡萄酒的價格發生變化,您可以自動更新所有菜單,不只是一個..)。 – redShadow 2010-04-01 15:49:14