FormAPI nutzen bei bereits existierenden Formularen?
![](http://www.drupalcenter.de/files/noavatar_mini.gif)
am 12.02.2010 - 18:22 Uhr in
Hallo zusammen!
Ich habe mal eine ganz allgemeine Frage zur Verwendung der Form API. Es geht um die Migration einer existierenden Website zu Drupal. Dort existieren nur zwei Node-Typen, welche von Nutzern im Frontend editiert werden sollen. Der Rest wird nur über das Backend eingepflegt. Der Quellcode für die Formulare der beiden von Besuchern zu erstellenden Inhaltstypen ist vorhanden und die Formulare sind schon recht aufwendig gestaltet.
Jetzt gibt es zwei Möglichkeiten:
1. Ich kann den fertigen Formular-Quellcode per Copy/Paste weiterverwenden kann. Allerdings muss ich mich um das Speichern und die Validierung selber kümmern. Nodes muss ich also manuell erstellen. Vorteil wäre halt, dass das Formular an sich schon einsatzbereit wäre.
2. Ich setze das ganze Formular mit der Form API um.
Meine Frage: Welche Methode ist sinnvoller?
Lohnt sich der Aufwand ein bereits existierendes Formular komplett in der Form API neu umzusetzen (Theming etc...)? Habe ich evtl. irgendwelche Vorteile, die ich noch nicht sehe, welche diesen Aufwand rechtfertigen? Soweit ich das sehe muss ich mich auch bei der Form API selbst um das Speichern der Nodes kümmern.
Vielleicht kann mir hier jemand bei der Entscheidung helfen :-)
Viele Grüße
Jan
- Anmelden oder Registrieren um Kommentare zu schreiben
Kannst Du die Datenstruktur
am 12.02.2010 - 18:43 Uhr
Kannst Du die Datenstruktur Deines Formulars nicht mit CCK nachbauen? Dann geht es nur noch darum, die Eingabemaske mit CSS so zu verschönern, daß es dem alten Formular ähnlich sieht.
Das alte Formular mit Cut & Paste nach Drupal zu bringen, geht nicht, wie Du schon selbst gesagt hast. Drupal weiß dann mit diesen Eingabe-Daten nicht anzufangen.
Andere Möglichkeit ist eine eigenes Modul zu schreiben, das einen neuen Node-Typ erstellt. Dafür legst Du dann auch eine Funktion an, die das Formular über die FormAPI erstellt, eine, die den Node abspeicher, eine, die ihn läd und eine, die ihn anzeigt. Da hast Du dann alles in der Hand.
Wenn Du aber bei Drupal noch nicht in die Modulprogrammmierung einsteigen willst, solltest Du Dich intensiv mit CCK befassen. Es ist erstaunlich, was damit (zusammen mit Views) alles möglich ist.
Beste Grüße
Werner
Hallo Jan, ich würde auf
am 12.02.2010 - 20:00 Uhr
Hallo Jan, ich würde auf jeden Fall CCK verwenden. Für CCK gibts einige Zusatzmodule mit denen du ziemlich sicher alles was du brauch in wenigen Minuten nachbauen kannst:
- http://drupal.org/project/link
- http://drupal.org/project/imagefield
- http://drupal.org/project/filefield
Nodes über die API anzulegen geht, aber ich würde sagen es ist so gut wie nie nötig.
Ein Formular nachbauen wäre wie einen Ferrari in ein Kettcar umbauen ;-)
--------
Auf der Suche nach Drupal Entwicklung? www.forward-media.de
Hallo Werner und Jochen, ich
am 13.02.2010 - 12:35 Uhr
Hallo Werner und Jochen,
ich nutze bereits CCK, möchte jedoch nur das Frondend Formular anpassen. Die Anpassung des Formulars würde aber sicher mehrere Stunden dauern. Nur mit CSS ist mir da nämlich nicht geholfen, da sich zwischen den Inputfeldern noch andere Elemente befinden und das Formular vom Layout nicht einfach nur einspaltig, sondern sehr komplex ist. Die Überarbeitung der Beiträge durch Moderatoren soll im Backend erfolgen, so dass ich die normale Eingabemaske des CCK auch benötige.
Bietet mir die Form API denn noch irgendwelche Vorteile? Ich müsste zum einen das genze Formular themen und zum anderen auch noch jedes Eingabefeld einzeln (Labelpositionierung, Hilfe-Overlay-Popups, etc.). Ein eigenes Modul für das benötigte "Zubehör" und nodeapi-Hooks zu diesem Inhalsttyp habe ich bereits. Dort kann auch die "zweite Speichermethode" integriert werden. Auch das Frontend-Formular ist im Zusatz-Modul umgesetzt. Nur bevor ich mich jetzt um die endgültige Anpassung der Validierung und des Speicherns kümmer, dachte ich, dass ich doch nochmal einen Blick auf die FormAPI werfe.
Die Frage ist jetzt also wirklich nur, ob sich das Neuanlegen des Formulars mit der Form API überhaupt lohnt. Denn das wäre sehr aufwendig und wie es aussieht muss ich diese zusätzliche Speicherfunktion für das Frontend mit Node-Erzeugung sowieso manuell durchführen.
Viele Grüße
Jan
Hi Jan, in dem Fall bringt
am 15.02.2010 - 17:11 Uhr
Hi Jan, in dem Fall bringt dir die Form API keinen Vorteil. Ganz hab ich zwar nicht verstanden, was du schon genau hast. Aber für den Fall, dass du schon
- ein fertiges Formular hast.
- ein Modul hast, das die POST Daten übernimmt.
- ein Modul hast, das die Nodes z.B. mit drupal_execute() anlegt (z.b. so ähnlich http://www.lullabot.com/articles/quick_and_dirty_cck_imports).
Dann mach es wie in 1. vorgeschlagen. Das ist zwar sicherlich nicht der Drupal-Weg und um die Validation und Sicherheit musst du dich dann selbst kümmern, aber es funktioniert, "Quick-and-dirty" wie bei lullabot beschrieben.
--------
Auf der Suche nach Drupal Entwicklung? www.forward-media.de