Formulare in CMS: statisch oder dynamisch generieren...?

  • Themenstarter Themenstarter Bailor
  • Beginndatum Beginndatum
B

Bailor

Hallo,

Ich programmiere momentan (immer noch) an einem kleinen CMS... und stehe nun vor der Frage: wie mache ich Formulare verfügbar?

Ich seh da selber jetzt mehrere Möglichkeiten:
  1. Erstens könnte ich dem Benutzer die möglichkeit geben die Formulare selber als html (...) in die jeweiligen Content-Felder rein zu schreiben... Das geht allerdings irgendwie am Ziel eines CMSs vorbei; es soll schlieslich möglichst einfach verschiedenen Benutzern ermöglichen die Seite zu verwalten, und html (...) kann noch lang nicht jeder.
  2. Die zweite Möglichkeit, die ich sehe, wäre so ein Formular wie "Kontakt-eMail", welches wohl jede Seite benötigt, "fast fertig" zu bauen, und den Benutzer einbinden zu lassen. Eventuell darf er dann noch einige Eigenschaften zu diesem Formular einstellen... Allerdings ist er insgesamt dann eher eingeschränkt.
  3. Die letzte und umfangreichste Möglichkeit wäre dann Formulare im Gesamten dynamisch zu generieren... Das heißt ein System zu schreiben, in welchem der Benutzer "einfach" in einem Baukasten ein komplettes Formular zusammenbauen kann... Sehr umfangreich, sehr fehleranfällig, und möglicherweise schränkt es auch sehr ein, weil man nicht alles beachten kann?

Mich würde interessieren, wie andere Leute darüber denken...
Hat irgendjemand schon Erfahrungen mit einem dieser Punkte gemacht? Oder hab ich eine Möglichkeit vergessen? Wie könnte ich Formulare noch zu Verfügung stellen?

Numero 2 ist kein Problem zu programmieren, aber ich liebäugle noch mit 3. Weis jemand Beispiele, in welchen die komplette dynamische Generierung funktioniert? Gibt es Klassen oder Codestücke?

Grüße, Baior
 
da bis jetzt Antworten ausgeblieben sind, frag ich hiermit einfach nochmal...
Was haltet ihr von den Möglichkeiten, wie würdet ihr es machen etc. ? :)
 
Hoi!
Damit dir mal jemand antwortet (und vielleicht noch mehr) schreib ich jetzt mal meine Gedanken dazu.

Ein komplett dynamisches und alles veränderbares CMS wäre sicherlich eine tolle Sache, aber wiederspricht das nicht zu der Aussagen "ein kleines CMS"

Zudem ist die Frage, ob man den grössten Teil aller Fälle abdecken kann, mit einem dynamischen Aufbau. Nichts halbes und nichts ganzes ist auch kein Weg.
Gerade dieser Schritt ist das schwere an der Sache. Ich hab nen kleines "PHP Framework" mit gebastelt, was ansich auch wunderbar läuft, aber das war 1. nen Haufen Arbeit, 2. sind nur ein kleiner Teil meiner ach so dollen Ideen zur dynamischen Umsetzung auch wirklich umgesetzt worden.

Bietet man dem User nun die Möglichkeit einen paar Teile dynamisch zu machen (dein Vorschlag 2), fehlt es ihm vielleicht in anderen Punkten des CMS. DIe Akzeptanz könnte leiden.

Bau dir eine Schnittstelle (API), wo du einzelne Modulerweiterungen nachher daran anschliessen kannst.
Sprich, wenn du einen Teil deines CMS später auf dynamisch umstellen möchtest, brauchst du nurdas Modul schreiben und an die API anschliessen.
Ich brauch erstmal nen Kaffee, dann kann ich auch wieder verständliches deutsch schreiben.
Falls verständnisfragen vorliegen, ich werds beantworten ;)

Gruss
 
Mairhofer hat gesagt.:
Damit dir mal jemand antwortet (und vielleicht noch mehr) schreib ich jetzt mal meine Gedanken dazu.
Danke :)
Zudem ist die Frage, ob man den grössten Teil aller Fälle abdecken kann, mit einem dynamischen Aufbau. Nichts halbes und nichts ganzes ist auch kein Weg.
Gerade dieser Schritt ist das schwere an der Sache. Ich hab nen kleines "PHP Framework" mit gebastelt, was ansich auch wunderbar läuft, aber das war 1. nen Haufen Arbeit, 2. sind nur ein kleiner Teil meiner ach so dollen Ideen zur dynamischen Umsetzung auch wirklich umgesetzt worden.
Bietet man dem User nun die Möglichkeit einen paar Teile dynamisch zu machen (dein Vorschlag 2), fehlt es ihm vielleicht in anderen Punkten des CMS. DIe Akzeptanz könnte leiden.
Ja, ein Haufen Arbeit isses wohl immer, und hab ich auch schon in in dieses Projekt gesteckt.
Die "Akzeptanz" des CMS ist mir in gewissem Sinne egal, weil ich es nur für eigene Projekte einzusetzen plane... Aber natürlich achte ich darauf nicht wichtigere Punkte für diesen hier zu opfern; schlieslich sollen alle, die es irgendwie benutzen müssen damit zufrieden sein.
Bau dir eine Schnittstelle (API), wo du einzelne Modulerweiterungen nachher daran anschliessen kannst.
existiert bereits... ich hab von anfang an darauf geachtet, das ganze möglichst "modular" und leicht erweiterbar zu programmieren.

Daher werde ich wahrscheinlich erstmal "möglichkeit 2" wählen, also nur das Kontaktformular leicht anpassbar programmieren; und Var. (3) auf eine "todo-liste" für die ferne Zukunft setzen...

Interessieren würde mich trotzdem: Hat jemand mit (3) Erfahrung bzw. gibt es in diese Richtung schon etwas?
 
Ok, wo fange ich an?
Zunächst einmal sollte man, wenn man sowas angeht, erstmal eine gewisse zeit in sich gehen, einen Zettel und Bleistift vor sich legen und sich eine Datenbankstruktur bauen (ohne Datenbank wird ein CMS leider noch aufwendiger, geht aber auch....). Ohne wirklich durchdachte Struktur geht später eh nichts.
Gleichzeitig sollte man sich überlegen, was man unbedingt umsetzen will (must-have) und was nett wäre (nice-to-have).
Dann wäre eine "Sichtung" aller Möglichkeiten sinnvoll (welche Sprache, etc.)
Dabei könnte einem z.B. diese WYSIWYG-DHTML-Geschichte in die Hände fallen, die der Internet Explorer (ab 5.5) beherrscht! (Ok, Mozilla auch, aber das ist ein anderes Thema).

Mit dieser Geschichte (dafür gibt es auch ein nettes Tutorial hier, ansonsten mal http://www.contenteditable.com/ als Beispiel) läßt sich ein wirkliches What-you-see-is-what-you-get editieren durchführen! Der Code ist zwar nicht der beste (bspw. fett wird mit <strong> erzeugt...), aber er ist immerhin html 4.01 valid.

Je nachdem was man sich selber für Ziele setzt, kann sowas ziemlich ausarten.

Ich selber programmiere jetzt seite ca. 2 Monaten an einem CMS-System, und habe von meinen must-have Kriterien ca. 50% fertig. Es ist halt ne Menge arbeit..

Was dabei später rauskommen soll:
Eine Seite, die von einem Benutzerkreis inhaltlich praktisch zu 99% editierbar ist!
D.h. neue Menüeinträge, Reihenfolge der Menüpunkte, Ebenen im Menü, sämtliche Inhalte, Termine, News, Fotogalerie, Counter, Newsletter...
Wie stark das Layout der eigentlichen Seite verändert werden kann, weiß ich noch nicht.
Ich denke, so wirklich Sinn macht das nicht. Man ändern normalerweise ja nicht jeden Monat das Layout. Jahreszeitliche Themes allerdings werden natürlich umgesetzt...

Falls du mich überzeugen kannst, das dein Leben davon abhängt, würde ich mich evtl. mal bereit erklären, dich einen Blick in das CMS werfen zu lassen...

[edit]
achja, was ich noch vergessen habe: das CMS bietet natürlich ein Benutzersystem, bei dem jedem Benutzer einzelne Reche zu- oder aberkannt werden können. Also Benutzer A darf alles, außer Termine eintragen, Benutzer B darf keine Menüeinträge erstellen, etc.
 
Zuletzt bearbeitet:
Hoi, ich nochmal.
Ich glaube hier ist nicht die Frage, wie man ein CMS aufbaut und wie man die SubSites mit Inhalt füllt, sondern wie man und ob man Formulare in einem CMS dynamisch/statisch macht.

Der Punkt mir Stift und Papier ist aber ein guter Startpunkt.
Welche Formulare gibt es, die man dynamisch erzeugen muss als Admin der Seite?
Kontaktformular...ok... nochwas?
Sicherlich kann viel dynamisch halten und so die interaktion mit dem User der Seite erzwingen, aber sind wie hier noch bei einem CMS (Content Management Systen) oder schon bei einem CRS (Customer Relations System)

Ich würd wie gesagt erstmal genau überlegen, welche Formulare man dynamisch machen möchte und ob es sich lohnt das ganze CMS dannach aufzubauen oder ob man nicht nur die entsprechenden Module dahingehend aufbaut.

Sind alles nur Vorschläge, habe selber noch kein CMS gebaut, kann daher eher raten.
Gruss
 
mnbvcxy: ja, da hast du mich wohl falsch verstanden... ;-) die grundlegende Datenbankstruktur etc. des cms (oder wie auch immer der richtige ausdruck dafür wäre) ist schon länger fertig.
Da ich das User/Gruppen/Rechte-System noch nicht angegangen habe, würde es mich allerdings freuen, wenn du mir verraten würdest wie DU dieses genau implementiert hast...? ich hab verschiedene ideen, mich aber noch nicht entschieden.

nunja, back to topic:
mairhofer, du bringst es eigentlich ganz gut auf den punkt: wenn man sich überlegt, welche formulare wohl eingebaut werden sollen, komme ich zu dem Schluss, dass es sich gar nicht lohnen wird, das ganze auch nur dynamisch zu versuchen.

Wie schon oben geschrieben, werde ich also für den Anfang einfach ein Modul "kontakt-formular" einbauen...

achja, weil du WYSIWYG-Editoren ansprichst: ich habe mich dafür entschieden mit bb-codes zu arbeiten, und es dabei zu belassen... Da mein System nie in die große freie Welt raus soll, werde ich die Benutzung ebendieser notfalls noch jedem redakteur beibringen können :) (hoff ich zumindest)
 
Hm, wie fange ich an.
Mit "dynamisch" ist das so eine Sache. Man sollte grundsätzlich so vorgehen, das alles, was mehr als 1x irgendwo auftaucht, dynamisch erzeugt werden sollte.
Sinn dahinter ist einfach,das Änderungen danach nur an einer Stelle auftauchen und im gesamten System auftauchen.

Ich selber bin hingegangen und habe eine Art Modulsystem aufgebaut.
D.h. es gibt einige Module (z.b. Menüverwaltung, Terminverwaltung, Newsverwaltung, Bilderverwaltung...). Jedes Modul kann seperat "installiert" werden. (d.h. eine Datei wird hochgeladen und ein SQL-Eintrag kommt hinzu).
Jedes Modul besitzt halt mehrere Einträge (also z.b. Termine neu eintragen, Termine verwalten, ...). Für jeden dieser Einträge kann man entscheiden, ob ein Benutzer das Recht zur Benutzung hat oder nicht.
Je nachdem was man auswählt, wird das Menü im CMS halt länger oder kürzer.

Das entscheidende bei so einer Umsetzung muss sein, das es 100%ig dynamisch ist! D.h. ID des Menüs, dem Zugriffsrecht etc. muss zusammen funktionieren.

Oder anders gesagt:
Du machst eine Abfrage welche Menüeinträge es überhaupt gibt. Jeder Eintrag hat eine ID. Diese ID wird danach zur Abfrage benutzt, ob ein Benutzer das Zugriffsrecht hat oder nicht!
Dadurch kannst du ohne Probleme Module später hinzufügen, ohne das du vorher das planen must.

[edit]
Das mit den Benutzergruppen(rechten) ist so eine Sache. Z.Zt. ist das bei mir noch nicht umgesetzt. Mal sehen ob das noch kommt.
Da man bei mir beim anlegen des Benutzers die Rechte verteilt (und so viele sind es ja nicht, d.h. das geht recht schnell), sind Gruppen nicht so wichtig.
Da ich später anbieten möchte, das sich Benutzer sich gegenseitig Nachrichten schreiben können, wäre Gruppen eher für Nachrichten nett...aber ich glaube nicht das ich das umsetzen werde.
 
Zuletzt bearbeitet:
mnbvcxy hat gesagt.:
Hm, wie fange ich an.
Mit "dynamisch" ist das so eine Sache. Man sollte grundsätzlich so vorgehen, das alles, was mehr als 1x irgendwo auftaucht, dynamisch erzeugt werden sollte.
Sinn dahinter ist einfach,das Änderungen danach nur an einer Stelle auftauchen und im gesamten System auftauchen.
Aber für Formulare scheint mir dies - wenn man genauer darüber nachdenkt - zu viel aufwand...


und beim rest: gutgut, aber irgendwie hab ich des gefühl, dass du meine beiträge ned so gut gelesen hast... sry ;-)
 
hm?
Du kannst doch sehr einfach Formulare dynamisch erzeugen?
Einfach eine PHP Funktion bauen und die dann mit entsprechenden Parametern aufrufen.
Soviele Elemente gibt es ja nicht, input-Felder, Radio-Buttons, Select-Buttons und Textareas.

Mit ein wenig arbeit sollte man das doch ziemlich gut hinbekommen?
 
Zurück