Rezepteingabe mit Mengenrechner
am 10.07.2011 - 19:42 Uhr in
Hallo,
zur Erstellung von Rezepten möchte ich gerne einen Inhaltstyp erstellen, in dem man Mengen, Einheiten und Zutaten eingeben kann.
Beim Aufrufen der Rezeptseite soll es dann möglich sein, die Anzahl der Personen einzugeben und die Seite wird dann mit $_POST mit neu berechneten Mengen erneut geladen. So etwas habe ich bereit händisch durch Eingabe von PHP-Code in einen normalen Artikel erzeugt, s. Paella Rezept
Für die Erstellung für viele Rezepte von Nicht-Programmieren ist das natürlich viel zu umständlich, fehleranfällig und nicht im Sinne eines CMS.
Auf chefkoch.de habe ich gesehen, wie das Backend aussehen könnte, s. Bild im Anhang
Folgende Fragen habe ich mit Bitte um Hilfe:
+ Wie kann ich mit CCK die Felder Menge, Einheit, Zutat in eine Zeile bringen und dafür sorgen, dass man mittels Button einen neuen Eintrag hinzufügen kann und dann eine komplette Zeile mit den 3 Feldern hinzukommt?
+ Wie kann ich auf Basis des o.g. Inhaltstyp dann die Funktion der Zutatenberechnung auf der Seite im Frontend realisieren?
Vielen Dank im Voraus.
Jorge
Anhang | Größe |
---|---|
chefkochrezept.png | 14.52 KB |
- Anmelden oder Registrieren um Kommentare zu schreiben
Bei Drupall 6 gibt es im CCK
am 10.07.2011 - 20:44 Uhr
Bei Drupall 6 gibt es im CCK 3 das Modul Content-Multigroup. Damit ist es möglich, eine Gruppe von Feldern wiederholbar zu machen. Die Anordnung nebeinander erfordert dann etwas CSS-Kentnisse.
Für die Berechnung nach Personenzahl wirst Du wohl um ein kleines Modul nicht herumkommen. Das kann dann die Ergebnisse mittels AJAX zurückliefern und mit ein bischen JavaScript setzt Du das dann in der Anzeige ein. Alles machbar, aber wird es wohl in dieser Kombination nicht fertig geben. Da hilft nur: Selber Bauen.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Hallo Werner, vielen Dank.
am 10.07.2011 - 20:50 Uhr
Hallo Werner,
vielen Dank. Habe das CCK 6.x-3.0-alpha3 entdeckt. Würdest Du das auf einer produktiven Seite einsetzen? Gibt es Multigroup vielleicht in Drupal 7?
Gruß ... Jörg
Multigroup habe nicht nur ich
am 10.07.2011 - 21:14 Uhr
Multigroup habe nicht nur ich sondern es wird auf ca 15000 Webseiten genutzt. Gibt es bislang nicht für Drupal 7. Es wird einen Upfrade Pfad geben, aber wie der aussehen wird ist noch nicht klar. Soweit der aktuelle Stand.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Ausgabe der mit der Personenzahl multiplizierten
am 11.07.2011 - 20:02 Uhr
Hallo Werner,
prima, Multigroup funktioniert. Vielen Dank.
Hast Du einen Tipp, wo ich hinlangen muß, um bei der Ausgabe der mit der Personenzahl multiplizierten Werte zu erzeugen? Im Grunde würde mir die Methode mit $_POST reichen, wenn ich wüste, wie ich auf die Feldwert zugreife. Ajax und Javascript überfordern mich im Augenblick.
Gruß ... Jörg
Wie ich schon schrieb, da
am 11.07.2011 - 22:02 Uhr
Wie ich schon schrieb, da mußt Du ein kleines Modul schreiben. Darin baust Du ein kleines Formular mit einem Eingabefeld für die Personen und einem Abschicken-Button. Der ruft ein Funktion auf, die die Berechnung ausführt und das geänderte Rezept (aufbereitet als HTML-Ausgabe) ausgibt.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Hi,öhm für D6 gibs doch nen
am 11.07.2011 - 22:49 Uhr
Hi,
öhm für D6 gibs doch nen Cookbook. Also jetzt nicht das "Kochbuch", sondern mehr halt ein Kochbuch.
http://drupal.org/project/cookbook
Einheiten können auch umgerechnet werden. Denke mal das andere dürfte dann ja wohl auch gehen oder? Ggf. kanns dir aber als Grundlage für eigenes Modul dienen, wenns überhaupt noch nötig ist.
Habs selber natürlich nicht installiert und getestet ;)
Ansonsten ist die Dastellung ja irgendwie immer bissel HTML + CSS. Ggf. kannst du also das Modul soweit aufbohren, dass zumindest die Eingabe dann mehr deinen Wünschen entspricht. Habs wie gesagt noch nicht angeschaut.
mfg Crusher
Modul für Mengenrechner
am 12.07.2011 - 21:00 Uhr
Hallo Werner, hallo Crusher,
danke, für die Antworten.
@Crusher: Interessant, was es so gibt, probiere ich mal aus.
Ansonsten reizt es mich, ein Modul zu schreiben. Ein paar Basics dazu habe ich nun gelesen. Nur stehe ich vom Ablauf her noch auf dem Schlauch.
Wo soll den das Modul eingreifen?
Soll die Personenzahl in ein Webform?
Wie binde ich dann das Gebilde mit dem Button in den Node ein?
Und wie speichere ich mit dem Modul die Anzahl der Personen?
Bitte noch um ein paar Tipps, da ich keine Idee habe, wo ich überhaupt anfangen soll zu probieren.
Vielen Dank im Voraus.
Gruß ... Jörg
Jorge schrieb Ansonsten
am 12.07.2011 - 21:15 Uhr
Ansonsten reizt es mich, ein Modul zu schreiben. Ein paar Basics dazu habe ich nun gelesen. Nur stehe ich vom Ablauf her noch auf dem Schlauch. .
Lade dir doch einfach das von Crusher erwähnte Modul herunter und schau dir einzeln im Code an, wie es dort umgesetzt wurde.
Do it with Drupal.
Multigroup
am 13.07.2011 - 07:54 Uhr
Multigroup habe nicht nur ich sondern es wird auf ca 15000 Webseiten genutzt.
Wo hast Du die Zahl denn her?
Gibt es bislang nicht für Drupal 7. Es wird einen Upfrade Pfad geben, aber wie der aussehen wird ist noch nicht klar.
Ähm, nein.
Multigroup wird es in dieser Form nicht für Drupal 7 geben. Ein Upgrade-Pfad ist auch nicht geplant, da das gesamte Konzept von Multigroup massive strukturelle Fehler (O-Ton Maintainer) enthält, und auch noch nicht klar ist, welche der angedachten Lösungen für eine ähnliche Implementierung in D7 überhaupt funktionieren.
Das Modul [do:field_collection Field collection] sieht momentan dabei noch am Besten aus ...
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
@StefanDie Zahl habe ich in
am 13.07.2011 - 10:05 Uhr
@Stefan
Die Zahl habe ich in irgendeinem Thread auf drupal.org gesehen, Ich werde versuchen den noch zu finden.
Edit: Die Zahl bezog sich nicht auf die Multigroup allein sondern auf den Einsatz von CCK-3.dev. Das wurde aber vornehmlich wegen der Multigroup eingesetzt. Im Januar 2011 war die Benutzung bei über 15000. Zur Zeit liegt sie bei gut 10500 (siehe hier).
Eine gute Zusammenfassung zu den wesentlichen Aspekten von Multigroup findet man hier.
Zum Upgrade Pfad verweise ich auf diesen Kommentar von KarenS:
OK, I have a client that badly needs this so I'm now on the hook to try to make sure it works and also that there is an upgrade path.
Ich denke nach dieser Aussage kann ich meine Aussage schon aufrecht erhalten.
Field collection hat ein miserables User-Interface und zwar sowohl für die Erstellung des Datentyps als auch, was für mich schwerer wiegt, für die Eingabe der Daten. Der Benutzer kann nämlich nicht bei der Eingabe des Datensatzes den Inhalt der Field-Collection gleich mit eingeben.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Multigroup
am 13.07.2011 - 10:16 Uhr
Edit: Die Zahl bezog sich nicht auf die Multigroup allein sondern auf den Einsatz von CCK-3.dev. Das wurde aber vornehmlich wegen der Multigroup eingesetzt. Im Januar 2011 war die Benutzung bei über 15000. Zur Zeit liegt sie bei gut 10500 (siehe hier).
Ah, ok. Auf die Usage von der dev-Version hatte ich jetzt gar nicht geschaut.
Zum Upgrade Pfad verweise ich auf diesen Kommentar von KarenS: ...
Ich denke nach dieser Aussage kann ich meine Aussage schon aufrecht erhalten.
Uhm, naja. Der Kommentar ist von August 2010 und seitdem hat sich nicht wirklich etwas an Multigroup getan.
Wir hatten in einem Projekt neulich auch ganz kurz Multigroup verwendet, das dann jedoch gleich wieder verworfen, da manche Dinge damit einfach nicht funktionieren (zum Beispiel verschachtelte Gruppen). Im Endeffekt haben wir das dann selbst mit eigenen Feldtypen gebaut :/.
Field collection hat ein miserables User-Interface und zwar sowohl für die Erstellung des Datentyps als auch, was für mich schwerer wiegt, für die Eingabe der Daten. Der Benutzer kann nämlich nicht bei der Eingabe des Datensatzes den Inhalt der Field-Collection gleich mit eingeben.
Mein "Beste Lösung" heisst nicht automatisch "ist auch schön" :) Momentan ist das alles noch ein wenig "bäh".
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Multigroup vs. eigener Feldtyp mit mehreren Elementen
am 15.07.2011 - 18:58 Uhr
Hallo,
na, da habe ich ja eine interessante Diskussion ausgelöst :-)
Denke, es scheint wohl besser, anstatt Multigroup ein kleines Modul zu basteln, welches mir ein Field-Typ mit 3 Elementen aufbaut.
Hat das von Euch jemand schon gemacht? Über einen Tipp würde ich mich freuen.
Nach etwas Lektüre müsste ich in dem Modul zur Berechnung der Menge einen Hook vom Field API ansprechen, oder? Hat jemand eine Idee, welcher da in Frage kommt?
Falls ich mit dem o.g. völlig auf dem Holzweg bin, bitte um Korrektur. Habe so etwas noch nie gemacht und bin im Lernprozess.
Vielen Dank im Voraus.
Gruß ... Jörg
Du könntest einen Datentyp
am 15.07.2011 - 22:34 Uhr
Du könntest einen Datentyp Rezeptzutat bauen (mit CCK in Drupal 6 und fields in Drupal 7). Dein Modul müßte dann "nur" dafür sorgen, daß immer wieder ein neues Formular für eine weitere Rezeptzutat unter den bisherigen Eingaben gezeigt wird. Diese Datensätze könnte man über Taxonomie oder Node-Referenz mit dem Rezept verknüpfen und mittels Views ausgeben.
Nur mal so als eine erste Idee auf die Schnelle.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Feldtyp
am 16.07.2011 - 11:28 Uhr
Denke, es scheint wohl besser, anstatt Multigroup ein kleines Modul zu basteln, welches mir ein Field-Typ mit 3 Elementen aufbaut.
Hat das von Euch jemand schon gemacht? Über einen Tipp würde ich mich freuen.
Wir haben für exakt den gleichen Anwendungsfall eine Erweiterung für nodereference geschrieben, mit der dann "Menge" und "Einheit" zu dem Feld hinzugefügt wurden. Schau Dir mal an, wie das bei Imagefield mit "Alt" und "Description" gelöst ist. Daran haben wir uns orientiert.
Rein technisch ist das dann immer noch ein Feld (nodereference_autocomplete), das Widget zeigt dann jedoch 3 Felder an.
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Hallo Werner, hallo
am 17.07.2011 - 09:35 Uhr
Hallo Werner, hallo Stefan,
vielen Dank. Die Idee von Stefan werde ich aufgreifen und bei Imagefield schauen, wie die es dort gelöst ist. In der install-Datei habe ich hook_field_schema gefunden. Reicht das schon aus?
Ansonsten habe ich hier: how-to-alter-field-value was gefunden, was ich zur Berechnung bei der Ausgabe probieren könnte.
Meine Problem ist im Prinzip, dass ich noch zu wenig Grundlagen habe. Habe das mit den Hooks zwar verstanden, jedoch, wenn es z.B. darum geht den richtigen für die Berechnung der Field-Ausgabe zu finden, dann weiß ich nicht, wo ich suchen soll.
Gruß ... Jörg