6
votes

Type de contenu drupal (restaurant) Design

J'ai un restaurant de type de contenu. Pour chaque restaurant, j'aimerais enregistrer leur menu.

Les données d'échantillon ressembleraient à ceci:

boissons

  • COKE 4,99 $
  • eau minérale 2,99 $

    cocktail

    • Blue Lagoon 9,99 $

      (x combiné avec y etc.)

    • saphir rouge 9,99 $

      (un autre x mélangé avec bla)

      pâtes

      • classique Bolognise 13,69 $

        (pâtes de votre choix mélangé avec nos spécialités faites maison Sauce Bolognaise)

        Comme vous pouvez le constater, le menu consistait en plusieurs composants: catégories, nom de menu, description, prix. Ce serait également génial si nous pouvions également réorganiser des catégories (certains restaurants pourraient préférer que leurs boissons soient affichées avant leur lieu de rencontre, tandis que d'autres préfèrent le contraire).

        1. Comment recommanderiez-vous la conception de type de contenu?
        2. S'il s'agissait d'utiliser une référence de nœud, existe-t-il un moyen / module facile pour me permettre de modifier le menu directement à partir du formulaire d'édition de restaurant? (Peut-être des onglets supplémentaires pour menu)

0 commentaires

4 Réponses :


3
votes

La façon dont je le ferais cela serait probablement comme ça:
Note, je suis habitué à développer Drupal, alors je serais capable de faire beaucoup de ces choses assez vite, car j'ai fait un jour similaire récemment. Cela pourrait ne pas être le meilleur choix pour vous.

  1. Dans un module, je créerais les deux types de contenu pour cela, restaurant et menu_Item.
  2. Restaurant sera probablement juste un titre et un autre champ que je ferais utilisé pour les types d'éléments de menu. Je ne sais pas comment je le ferais, cela dépend un peu de ce que serait l'avenir du projet. Je pourrais choisir de ne pas fabriquer le type de contenu du restaurant ou ne rien faire de spécial, et créer une table uniquement pour la commande des types d'éléments de menu.
  3. La plupart du type de menu Type de contenu peut être effectué via CCK, mais je créerais probablement une table et des champs personnalisés pour leur commande (c'est quelque chose que j'ai fait plusieurs fois, donc j'ai donc l'extrait de faire JS Système de commande glissable comme ce que CCK fait pour commander des champs) . Je pourrais également choisir de gérer moi-même les prix moi-même, si j'ai besoin de meilleur contrôle dans différents cas, comme faire des calculs d'échange, etc.
  4. Pour les catégories que j'utiliserais, la taxonomie (à l'aide de la taxonomie donne beaucoup de bonus supplémentaires comme le référencement).
  5. J'utiliserais la référence de nœud pour lier les éléments de menu dans n'importe quel menu.
  6. Le reste des éléments de menu Les champs ne sont que des champs de texte que CCK gérerait bien.
  7. J'utiliserais node_api pour aller chercher les éléments de menu des nœuds de restaurant, de sorte qu'avec thème, la vue de noeud de restaurant serait l'affichage du menu (s'il s'agit de la fonctionnalité principale, sinon je ferais un onglet pour le menu et gardez les détails du restaurant sur la vue de nœud).
  8. avec une forme de form_alter, je créerais un système de commande qui est connecté à n'importe quel système que je choisis pour commander les catégories.
  9. Je pourrais laisser les administrateurs pour pouvoir modifier la commande des éléments de menu eux-mêmes dans l'affichage du nœud ou créer un onglet pour cela. Dépend de ce que le client voudrait.

    Ceci est un peu développeur lourd, car beaucoup de ces choses devraient être codées. Vous pourriez aller très loin qu'utilisez CCK et des vues, mais je préférerais créer un module pour cela. La raison en est que si le client voudrait que cela change en une demi-an ou viennent avec des fonctionnalités supplémentaires, je pourrais avoir un moment très difficile de la mettre en œuvre. L'intégration de CCK et de points de vue peut être très délicate et prendre beaucoup de temps, donc en utilisant un peu de temps supplémentaire maintenant, rendrait beaucoup plus flexible et extensible. J'ai également fait différentes choses qui ont des terrains courants, alors je serais capable de c / p C'est également en partie la raison pour laquelle je vais faire cette route, comme utiliser CCK et les vues seul ne me sauveraient pas beaucoup de temps en temps


2 commentaires

J'aime cette proposition, même si je ne vais pas y aller, à moins que d'autres parties du projet ne devraient explicitement besoin de découplirement les différentes parties du menu (mais il s'agit d'une question de philosophie de développement, alors je ne suis donc pas sous-joyant de cette solution si mauvais de quelque manière que!). J'aime particulièrement le point 4 car il s'agit de la vraie taxonomie apporte plusieurs avantages de conception - à côté du point de référencement Googletorp déjà mentionné).


@MAC L'itinéraire à prendre dépend beaucoup du projet. Certains de mes projets sont très bien définis et, dans un tel cas, je saurais si tout cela serait nécessaire, ou si je ferais quelque chose de plus simple avec moins de code. Mais si c'était pour un site que, avec le temps, sera prolongé dans différents domaines, je préférerais avoir des choses plus sous contrôle. Mais comme vous le dites, c'est une question de philosophie de développement. Une des raisons pour moi de favoriser cette tactique, pourrait aussi être le genre de travail que j'ai fait le mois dernier ou deux qui n'a pas été avec Drupal :)



4
votes

Type de contenu du restaurant. Champs de Nom d'entreprise, Adresse professionnelle, Téléphone, Télécopie, Site Web, Email, IM, Twitter, Propriétaire d'entreprise, Business Contact (comme Manager), Restaurant Description, logo et Google Map Lieu de localisation Lien (ou Modules d'implémentation de l'emplacement et du Modules GMAP) etc. Peut-être utiliser un module cinq étoiles pour permettre les évaluations des utilisateurs des restaurants.

Taxonomie Hicherical de la nourriture (besoin de module pour cela). Les catégories alimentaires sont des boissons (alcooliques, non alcoolisées, etc.), soupes, salades, petits-déjeuners, déjeuner, dîner, desserts, plats, sandwichs, fruits de mer, etc.

Type de contenu alimentaire. Champs pour le champ de référence du nœud au nom du restaurant afin que leur menu soit construit et organisé correctement, sélection de taxonomie de la nourriture, Titre de la nourriture (MCRAC, WHOPPER, oignon Bloomin, etc.), prix, options de préparation (moyennes, bien faites, etc. ), une image (s) alimentaire (s) et des ajouts pouvant être combinés avec ce plat doivent soit sélectionner des options de liste ou des références de nœuds à d'autres types de contenu alimentaire (purée de pommes de terre ou pommes de terre cuites au four avec cela?)

En ce qui concerne les images, utilisez Imagecache pour générer plusieurs tailles utiles différentes de toutes les photos, de sorte que vous puissiez mineur de minuscules vignettes, des images de taille moyenne et des images magnifiques de taille complète des plats.

Affichage sur CSS qui ressemble un peu à un Menau. Regardez les sites Web de restaurants nationaux comme Chilis.com pour voir comment ils le font. Fournissez des liens de menu des conditions de taxonomie des aliments pour chaque restaurant et une vue sur les restaurants proposant des filtres exposés afin que les utilisateurs puissent facilement trouver des restaurants par type, emplacement, étoiles, etc.

sonne comme un projet amusant. J'aimerais voir une étude de cas publiée lorsque vous avez terminé.


3 commentaires

Quelqu'un a marqué ceci -1? Pas utile? Une idée pourquoi? Je pensais que c'était utile, j'ai fourni une solution qui réponde à toutes les parties de leur question. J'ai peut-être manqué quelque chose? S'il vous plaît dites-moi ce que j'ai mal fait? Je pense que les gens qui passent une réponse à la réponse doivent être forcés d'expliquer pourquoi ils l'ont fait, de fournir des commentaires constructifs pourquoi la réponse donnée n'était pas utile. Sinon, il doit s'agir d'un sens laide de la concurrence entre les intervenants, comme les auteurs sur Amazon examinant les livres de concurrents pour rendre leur propre look. Y a-t-il un wiki qui discute de cette question?


Il y a meta.stackoverflow.com pour discuter de ce type de problèmes. Et oui, il y a déjà une discussion en cours à ce sujet, mais le résultat semble donc être: non, le système est bon tel qu'il est. Ma solution a également été évitée parce que quelqu'un n'aimait pas l'approche de celle-ci, bien que la vôtre - c'est techniquement absolument sonore: je dirais qu'il est normal de se faire parfois être évité de la matière de style / approche / philosophie différente. S'il y a de véritables erreurs / mauvaises informations dans une réponse - Cependant, quelqu'un vous fera savoir que dans une fraction d'une minute! ;)


Grande solution! J'aime beaucoup :) +1



1
votes

Je devais faire quelque chose de très semblable à cela. J'ai résolu avec des panneaux, des vues et des CCK. J'ai créé un type de noeud 'Restaurant' et un type de nœud 'Menu_Item'. La taxonomie de Menu_Item est définie en utilisant un vocabulaire spécifique. J'ai utilisé des panneaux pour afficher le menu des chemins Restaurant-Nom / Menu, puis Vues + CCK pour afficher la Articles dans le menu (j'ai utilisé des références de noeuds pour relier les articles aux restaurants). Ensuite, j'ai regroupé la vue par taxonomie: champ terme.


0 commentaires

1
votes

La première idée que je devais faire cela pourrait être quelque chose comme suit:

  • Type de contenu alimentaire avec: nom (titre), Description (Corps) et prix
  • Type de contenu du restaurant avec plusieurs champs de référence de nœud de nourriture
  • Vocabulaire associé à la nourriture avec des termes tels que des boissons, des cocktails, des pâtes, .. (Et je suis à peu près sûr qu'il y a un module qui vous permet de définir des poids de taxonomie)

    De cette façon, vous pouvez stocker vos données.

    Pour la partie d'affichage, vous pouvez utiliser:

    1. (meilleure approche) Un nœud-restaurant personnalisé.tpl.php qui crée la page formatée montrant des aliments classés par Taxonomie Terme (je suis sûr que vous avez un accès direct aux nœuds référencés via les variables de modèle. Je vais Pour tester cela et vous le faire savoir)
    2. (pourrait être fait via un panneau d'administration) une vue dans un bloc placé dans la région "Contenu" montrant les nœuds référencés, formatés comme une table regroupée par la taxonomie du vocabulaire "Catégorie de nourriture". Vous pouvez obtenir le nœud actuel NID (utilisé pour le filtrage) en utilisant des arguments.

      Je recommande le premier choix car il est plus conforme aux normes, plus rapide d'exécution et pourrait éviter certains problèmes possibles pouvant provenir des vues + bloc de bloc.


2 commentaires

(Probablement la meilleure approche serait d'écrire un module de nœud qui la fait en créant une forme de valeurs multiples AHAH, avec catégorie / titre / prix / description, mais je suppose que ce n'est pas le genre de solution que vous recherchez ..)


..et En utilisant la référence de nœud, vous avez également l'avantage des définitions de nourriture partagées (par exemple, si le prix des changements de vin rouge, vous pourriez l'avoir mis à jour automatiquement sur tous les menus, pas seulement ..) ..