Drupal内容类型(餐厅)设计

时间:2009-12-02 20:26:32

标签: drupal drupal-6 cck

我有一个内容类型的餐厅。对于每家餐馆,我都想记录他们的菜单。

示例数据如下所示:

饮料

  • 可乐4.99美元
  • 矿泉水$ 2.99

鸡尾酒

  • Blue Lagoon $ 9.99

    (X与Y等结合)

  • 红色蓝宝石$ 9.99

    (另一个X混合了等等)

面食

  • Classic Bolognaise $ 13.69

    (您选择的意大利面与我们的自制特色bolognaise酱混合)


如您所见,菜单包含几个组件:类别,菜单名称,描述,价格。如果我们也可以重新安排类别(一些餐馆可能更喜欢他们的饮料在他们的主菜之前展示,而其他人更喜欢相反的情况),这也会很棒。

  1. 您如何推荐内容类型设计?
  2. 如果要使用节点参考,是否有任何简单的方法/模块允许我直接从餐馆编辑表单编辑菜单? (也许是菜单的一些额外选项卡)

4 个答案:

答案 0 :(得分:4)

RESTAURANT内容类型。商家名称,公司地址,电话,传真,网站,电子邮件,即时通讯,推特,企业主,业务联系人(如经理),餐馆描述,徽标和谷歌地图位置链接(或实施位置和gmap模块)等字段。也许使用五星级模块来启用餐馆的用户评级。

食品分层分类(需要模块)。食品类别包括饮料(含酒精,不含酒精等),汤,沙拉,早餐,午餐,晚餐,甜点,主菜,三明治,海鲜等。

食物内容类型。节点参考的字段字段为RESTAURANT名称,因此他们的菜单正确构建和组织,FOOD分级选择,食品标题(McRib,Whopper,Bloomin洋葱等),价格,准备选项(中等,做得好等) ),食物图像和可以与这道菜结合的附加物应该是选择列表选项或节点参考其他食物内容类型(捣碎或烤土豆?)

关于图像,使用图像缓存生成所有图片的几种不同的有用尺寸,因此您可以使用微小的缩略图,中等大小的图像和完整大小的华丽照片。

在CSS上显示看起来有点像男人。看看像Chilis.com这样的国家餐厅网站,了解他们是如何做到这一点的。提供每个餐厅的食品分类条款的菜单链接,以及带有外露过滤器的餐厅视图,以便用户可以按类型,位置,星级等轻松找到餐馆。

听起来像一个有趣的项目。我想在你完成时看一个案例研究。

答案 1 :(得分:3)

我这样做的方式可能是这样的:
注意,我习惯开发Drupal,所以我可以很快地完成很多这些事情,因为我最近做了类似的事情。这可能不是您的最佳选择。

  1. 在模块中,我将为此创建两个内容类型,restaurant和menu_item。
  2. 餐厅可能只是标题和我将用于菜单项类型的另一个字段。我不确定我会怎么做,这取决于项目的未来会是什么。我可能会选择不制作餐厅内容类型或不做任何特殊的事情,并创建一个仅用于订购菜单项类型的表。
  3. 大部分菜单项内容类型都可以通过CCK完成,但我可能会为他们的订单创建一个表和自定义字段(这是我已经做过几次的事情,所以我有一些片段用于制作js可拖动的订购系统,就像CCK为订购字段所做的那样)。如果我在不同的情况下需要更好的控制,比如进行交换计算等,我也可以选择自己处理价格。
  4. 对于类别,我使用分类法(使用分类法提供了许多额外的奖金,如SEO)。
  5. 我使用节点引用将菜单项绑定到它们需要的任何菜单。
  6. 其余的菜单项字段只是CCK可以很好地处理的文本字段。
  7. 我会使用node_api来获取餐厅节点的菜单项,因此,使用主题,餐厅节点视图将显示菜单(如果这是主要功能,否则我会为菜单并在节点视图中保留餐厅详细信息。)
  8. 通过一些form_alter,我会创建一个订购系统,该系统与我选择的用于订购类别的系统相连接。
  9. 我可能会让管理员能够在节点显示中更改菜单项本身的顺序,或为其创建一个选项卡。取决于客户想要的东西。
  10. 这有点开发人员,因为很多这些东西都需要编码。你可以使用cck和视图走很远的路,但我宁愿为此创建一个模块。原因是,如果客户希望在半年内更改或附加其他功能,我可能会很难实现它。与cck和视图集成可能非常棘手且耗时,因此现在使用一点额外时间会使其更加灵活和可扩展。我也做了一些有共同点的不同的东西,所以我能够C / P很多代码,我很清楚,只是在这里和那里调整它的一些东西。这也是我走这条路的部分原因,因为单独使用cck和观点不会为我节省那么多时间

答案 2 :(得分:1)

我必须做一些与此非常相似的事情。我用面板,视图和cck解决了它。 我创建了一个节点类型'restaurant'和一个节点类型'menu_item'。 menu_item分类法是使用特定词汇表设置的。 我使用面板显示路径restaurant-name / menu的菜单,然后查看+ cck来显示 菜单中的项目(我使用节点引用将项目链接到餐馆)。然后我按分类法对视图进行分组:术语字段。

答案 3 :(得分:1)

我必须做的第一个想法可能如下:

  • 食品内容类型:名称(标题),描述(正文)和价格
  • 具有多个食物节点参考字段的餐馆内容类型
  • 与饮食相关的词汇,如饮料,鸡尾酒,意大利面,... (我非常确定有一个模块可以让你定义分类术语权重)

这样,您就可以存储数据。

对于显示部分,您可以使用:

  1. (更好的方法)自定义node-restaurant.tpl.php创建格式化页面,显示按分类术语分类的食物(我很确定你可以通过模板变量直接访问引用的节点..我要去测试并让你知道)
  2. (可以通过管理面板完成)放置在“内容”区域中的块中的视图,显示引用的节点,格式化为按“食品类别”词汇表上的分类术语分组的表格。您可以使用参数获取当前节点nid(用于过滤)。
  3. 我推荐第一个选择,因为它更符合标准,执行速度更快,可以避免一些可能来自view + block方式的问题。