Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

FormAPI nutzen bei bereits existierenden Formularen?

Eingetragen von jan.s (44)
am 12.02.2010 - 19:22 Uhr in
  • Allgemeines zu Drupal
  • Drupal 6.x

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

‹ [gelöst]warning: opendir(/tmp) [function.opendir]: failed to open dir Unable to send e-mail....... [gelöst] ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Kannst Du die Datenstruktur

Eingetragen von wla (9463)
am 12.02.2010 - 19: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

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Jan, ich würde auf

Eingetragen von derjochenmeyer@... (591)
am 12.02.2010 - 21: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

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Werner und Jochen, ich

Eingetragen von jan.s (44)
am 13.02.2010 - 13: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

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi Jan, in dem Fall bringt

Eingetragen von derjochenmeyer@... (591)
am 15.02.2010 - 18: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

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
Weiter

Neue Kommentare

  • Arrrrg. Nix Tabelle :-D /*
    vor 2 Wochen 5 Tagen
  • Textboxen mit Tabelle
    vor 2 Wochen 6 Tagen
  • Du sollst ja auch keine
    vor 2 Wochen 6 Tagen
  • Theme
    vor 2 Wochen 6 Tagen
  • Welches Theme benutzt du
    vor 2 Wochen 6 Tagen
  • Mit Responsive Raster hatte
    vor 3 Wochen 25 Minuten
  • Hallo Alex,um das Häkchen
    vor 3 Wochen 9 Stunden
  • Modul view_unpublished
    vor 3 Wochen 1 Tag
  • Modul "override node options"
    vor 3 Wochen 2 Tagen
  • Im Grunde ist dass ein
    vor 3 Wochen 4 Tagen

Statistik

Beiträge im Forum: 250270
Registrierte User: 20479

Neue User:

  • Stevebok
  • Robertnobia
  • AltonRaf

» Alle User anzeigen

User nach Punkten sortiert:
wla9463
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 42 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association