Eigene Inhaltstypen, Forms zur Realisierung von Anzeigen oder ein Modul?
am 08.03.2010 - 00:55 Uhr in
Guten Tag Gemeinde,
Als blutiger Anfänger, der großes vor hat:
ich stehe vor der Frage, wie ich eine konkrete Idee mit den Mitteln von Drupal umsetzen kann, oder ob es eurer Meinung nach geeigneter ist ein Modul dafür zu suchen (vielleicht habt ihr gleich passende Modulvorschläge), oder sogar ein Modul selbst zu schreiben (hui):
Ich möchte gern eine Art "Anzeigenmarkt" erstellen, also kurz: Erfassen, Verwalten (CRUD), Veröffentlichen von Anzeigen (ich hab was, suche was)
Variante 1) sollte ich das ganze nach Art "Hagen Graf" über einen eigenen Inhaltstyp lösen (Beispiel Autos)?
Variante 2) geschieht sowas eher über "Forms" bzw Formulare, welche die "Erfasser"(Benutzerrollen) ausfüllen, welche dann entsprechend ausgewertet werden müssen (Anzeigen)
Variante 3) sollte so etwas doch lieber mit einem geeigneten Modul??? realisiert werden?
Variante 4) sollte so etwas als neues Modul selbst geschrieben werden?
Wie gesagt, ich suche zunächst einen Ansatz der Herangehensweise... aus Erfahrung sprengen Eingabeverwaltungen schnell den Rahmen (Aufwand), sodass ich mir unsicher bin, ob Variante 1 in einem gewissen Zeitraum als Anfänger zu realisieren ist. Ich habe viel gesucht, auch bei euch, aber mir ist der Weg zum Ziel für solche Ideen noch unklar. Ich bin mir noch nicht so richtig sicher, ob ich mit Hilfe von nodes und einem entsprechenden WorkAround so zum "gewünschten" Ziel komme. Sicher geht einiges über Nodes und Inhaltstypen, nur "möchte" man das so realisieren?
Hier die Anforderungen kurz im Überblick (damit ihr versteht, dass das für mich nicht "einfach" wird):
Aus Sicht des Anzeigen-Erfassers:
- Überblick über von mir veröffentlichte Anzeigen und noch nicht veröffentl. A. (noch in Bearbeitung und morgen wenn fertig veröffentlichen)
- Eine "Anzeige" Erstellen, Bearbeiten, Löschen
- meine Anzeigen im Anzeigen-Portal auffinden, ansehen (klar)
Aus Sicht des Anzeigen-Betrachters
- Aktuelle Anzeigen Ansehen und finden in einer Liste(Tabelle) mit Filter-Möglichkeiten
- ganz wichtig: "Eine eigene Suche nach Anzeigen" (bestimmteFelder sollen gefüllt werden können, nach denen gesucht werden soll)
ich könnte sicher noch weiter machen, aber ich denke ihr wisst schon was ich vor habe. Wie geht man nun am besten an so etwas heran?
Danke Danke Danke
- Anmelden oder Registrieren um Kommentare zu schreiben

Mit Nodes und Inhaltstypen
am 08.03.2010 - 03:26 Uhr
Mit Nodes und Inhaltstypen bist Du sicher auf dem richtigen Weg. Pro Anzeige ein Node ist eine saubere Sache, warum sollte man das nicht so realisieren wollen?
Also: Nodetypes für Angebote definieren, ggf. untergliedert nach Thema. Wie differenziert Du das aufbaust, hängt davon ab, was an Daten (Feldern) eingegeben werden soll und wie spezifisch diese sind (ein Angebot Babysitting wird vielleicht anders beschrieben als ein Angebot Immobilienverkauf).
Jedem Angebot (analog jeder Suchanfrage) kannst Du einen oder mehrere Taxonomiebegriffe zuordnen. Das kann anfangs weiter gefasst sein (Möbel, PC, Tiere, Immobilien ...), wenn das Portal wächst, kannst Du Unterkategorien mit aufnehmen (Immobilien: EFH, Reihenhäuser, Eigentumswohnungen ...).
Der ganze Erfassungsvorgang geschieht natürlich über Formulare. Die bringt CCK mit, und entsprechend den Feldern, die Du definierst, kannst Du die Art der angebotenen Formulare mitbestimmen (Auswahlliste, Checkboxen etc.).
Mit Views kannst Du alle Angebote eines Users anzeigen, die unveröffentlichten rausfiltern usw.
Erstellen, ändern, löschen etc. kannst Du über Rollen und Berechtigungen steuern.
Für den außenstehenden Betrachter kannst Du Ansichten über Taxonomien sortieren, aber auch, wenn's thematisch sinnvoll ist, über den eingegebenen Ort (Location).
Auch die Suche bezieht Taxonomiebegriffe mit ein. Du kannst sogar eine gestaffelte Suche nutzen (Hierarchical Select).
Deiner Fantasie sind eigentlich kaum Grenzen gesetzt ...
Okay, ich danke dir,dann bin
am 08.03.2010 - 13:25 Uhr
Okay, ich danke dir,
dann bin ich also nicht auf dem Holzweg. Warum man es nicht so realisieren möchte weiß ich nicht... deswegen fragte ich, weil man als Anfänger noch nicht so die Möglichkeiten von Drupal kennt. Aber was du schreibst hört sich sehr vielversprechend an.
Ich werde mich auf jeden Fall noch mal hier melden, wenn ich etwas geschafft habe... um hier für die eifrige Nachwelt kurz meinen Weg aufzuzeigen, den ich nun gegangen bin.
PS: Eine kurze Frage noch, bevor ich wieder ewig vergleiche:
Hast du einen Tip für mich, welches "Formular" oder "Felder"-Modul eine sinnvolle Erweiterung für mich ist, um Eingaben, wie EMail, Datum, usw realisieren zu können?
Und dann noch was SEHR spezielles... ich plane solche Kombinations-Eigenschaten... also dass jemand sowas eintragen kann wie auf typischen Jobportalen: ich kann
["DAS"], ["sehr gut"], ["seit"] .... also eine gruppe an werten und drunter kommt die nächste Zeile
["DAS"], ["nicht gut"], ["seit"]... solche Sachen habe ich bisher in anderen projekten mit JS-Komponenten gelöst
habe ich ein Chance das irgendwie schon so mit Drupal zu lösen?
Zitat: Variante 1) sollte ich
am 08.03.2010 - 13:50 Uhr
Variante 1) sollte ich das ganze nach Art "Hagen Graf" über einen eigenen Inhaltstyp lösen (Beispiel Autos)?
Variante 2) geschieht sowas eher über "Forms" bzw Formulare, welche die "Erfasser"(Benutzerrollen) ausfüllen, welche dann entsprechend ausgewertet werden müssen
Das eine schließt hier das andere nicht aus, ganz im Gegenteil. Wenn die Besucher deiner Seite selbst anzeigen einstellen sollen, dann löst man dies über spezielle Inhaltstypen. Und für das Erstellen von neuen Inhalten benutzt man logischerweise ein Formular. Wie dieses Formular aussieht und was eingegeben werden kann ist ganz dir überlassen.
Hast du einen Tip für mich, welches "Formular" oder "Felder"-Modul eine sinnvolle Erweiterung für mich ist, um Eingaben, wie EMail, Datum, usw realisieren zu können?
Und dann noch was SEHR spezielles... ich plane solche Kombinations-Eigenschaten... also dass jemand sowas eintragen kann wie auf typischen Jobportalen: ich kann
["DAS"], ["sehr gut"], ["seit"] .... also eine gruppe an werten und drunter kommt die nächste Zeile
["DAS"], ["nicht gut"], ["seit"]... solche Sachen habe ich bisher in anderen projekten mit JS-Komponenten gelöst
habe ich ein Chance das irgendwie schon so mit Drupal zu lösen?
Das Zauberwort hierbei lautet "CCK" aka "Content Construction Kit". Damit kann du ganz einfach neue Felder (auch Auswahl-Felder, Select-Listen, Checkboxes usw.) deinen Inhaltstypen hinzufügen. Damit diese Felder dann nicht untereinander stehen sollen, sondern wie in deinem Bespiel, nebeneinander musste dich nur etwas mit CSS befassen. Falls du schon recht fortgeschritten bist, was CSS, HTML und PHP angeht kannst auch spezielle für das Erstellungsformular deiner Inhaltstypen templates anlegen. Näheres dazu gibts unter dem Thema "Theming".
okay, super
am 08.03.2010 - 13:58 Uhr
okay, super.
Hagen Graf verwendet in seinem Buch das Modul "Webforms", dann werde ich das zunächst mal einrichten und ein wenig rumspielen.
Was das Themen angeht, möchte ich noch ein wenig "warten". Die Funktionalität steht im Vordergrund. Wenn sich alle fachlichen Anforderungen realisieren lassen, dann fange ich damit an.
Ja, ich habe seit nun 10 Jahren Erfahrungen in der Web-Entwicklung. Bisher war ich jedoch in eigenen, fast CMS-losen Systemen unterwegs. Auch mit Joomla habe ich viel realisiert. Nur soll der "Kern" des Projektes eine Community werden und Drupal erweitert hier meinen Horizont um einiges - und ist dafür aus meiner Sicht bestens geeignet. Das Themen der Eingabeformulare werde ich sicher mal "probieren", ich ahne aber, dass meinem Projekt wieder "mehr" abverlangt wird und ich sicher auch wieder meine Liebling-JavaScript-Lib einsetzen werde: www.extjs.com :-)
Ich finde es toll, dass ihr echt laufend sagt: "Ja, das geht mit Drupal"... das macht mich sicher! sehr sicher!
Grüße, Danilo
was ich bisher wie geschafft
am 09.03.2010 - 15:10 Uhr
was ich bisher wie geschafft habe und neue Fragen:
Das Erstellen, Bearbeiten und Ausgeben von Anzeigen klappt nun. Meine nächste Frage wäre, wie ich nun hinbekomme, dass die Leute auf die Anzeige reagieren können? Also sowas wie ein Button zum Bestätigen, der dann auf eine Seite führt, wo man was eingeben kann (neue Inhaltstyp). Der Inhaltstyp (Die Antwort auf die Anzeige) ist kein Problem, nur wie realisiere ich diesen Button auf der Anzeigen-Seite und wie kann ich den Anzeigen-Ersteller darüber informieren? also "wie" im Sinne von "wie realisiere ich das" ... "wie" im Allgemeinen ist klar - es wird ne Mail werden ;-)
So, und nun wie versprochen die Schritte bis zu diesem Stand...
also für alle, die mitlesen und sich für meine Lösung bisher interessieren, also "wie" ich das Erstellen, Bearbeiten und Ausgeben realisiert habe:
Das Erstellen von "Anzeigen"
(man verfolge die Tuts von Hagen Graf: http://drupal.cocoate.com/de/d6/inhaltstypen)
(Wer schicke neue Felder braucht, lade sich z.B. die Module IMCE oder Date runter, der Wahnsinn was einem da geboten wird
nach den Berechtigungen gibt es unter dem Menüpunkt "Inhalt erstellen" den neuen Inhaltspunkt (Anzeige erstellen), die erstellte Eingabe-Form öffnet sich
Ich habe bei mir versch. Rollen angelegt, jeder darf was anderes publizieren. Wer das möchte nutze die Module "profile_role" und "autoassignrole" (für separate Registrierungen)
Das Auflisten neuer Inhaltstypen ("Aktuelle Anzeigen")
auch hier hat Hagen Graf eine schicke How-To-Seite: http://drupal.cocoate.com/de/d6/views
ich erstellte also eine neue View in Tabellenform mit den gewünschten Feldern und einem besonderen Flag: publiziert ja/nein
über die Filter-Möglichkeit hole ich nur die Datensätze, die ein "ja" im Feld "publiziert" drin stehen haben
die View bekam nen schicken neuen Pfad "/aktuelleanzeigen" und einen Menüpunkt "aktuelle Anzeigen" - fertig
Eine Bearbeiten-Übersicht für die Erfasser von Anzeigen (meine Anzeigen bearbeiten)
Eine gut gruppierte und sortierte View, z.B. in Form einer Tabelle, mit den entsprechenden "Bearbeiten" und "Löschen"-Links in den Spalten, Sortierungen und sinnvolle Gruppierungen machen diesen Part schmackhaft! Ich finde auch die Einstellung "Enable Drupal style "sticky" table headers (Javascript)" richtig fetzig. Sollte man für eine View unter "Basiseinstellungen"->Darstellung=Tabelle->Bearbeiten(Zahnrad)" aktivieren.
Kritik und Verbersserungsvorschläge höre ich gern... schließlich habe ich das zum ersten Mal gemacht. Ansonsten viel Spaß damit
PS: vergesst meine Frage nicht (Button) von oben...
danke
Kommentar?
am 09.03.2010 - 15:22 Uhr
Du _könntest_ vielleicht einfach die Kommentarfunktion deines Inhaltstyps nutzen, wenn Du ja nur eine "Antwort" auf den Node haben willst. Und genauso wie hier im Forum könnte die Mailgeschichte über die Benachrichtigung als "Abonnement" funktionieren. So müsstest Du eigentlich nichts neu erfinden.
Wenn sich eine Anzeige "erledigt" hat, kann der Anzeigende den Node "unveröffentlichen", oder mit einem weiteren CCK-Feld auf erledigt setzen. Ein Cron-Job würde die Erledigten Nodes regelmässig purgen.
danke für deine Idee, nur
am 09.03.2010 - 15:41 Uhr
danke für deine Idee, nur reicht mir ein Kommentar nicht.
Vielmehr möchte ich, dass das ganze nicht so "publik" ist, wenn einer auf eine "Anzeige" reagiert. Kommentare sind zwar okay, aber nicht zielführend. In einer Jobbörse z.B. würde man ja auch ein Formular absenden, vielleicht sogar mit Bildern etc... ich möchte eben, dass es "eigene Felder" gibt, die man ausfüllen kann, wenn man auf eine Anzeieg reagieren möchte und dazu brauche ich einen Button oder einen Link auf der Anzeigeseite.
klickt man drauf, öffnet sich das Formular (neuer Inhaltstyp, den ich dann auch für den Benutzer sammeln kann "Meine Antworten" mit der "Ich will das wieder zurück ziehen"-Möglichkeit). Wenn der neue Antwort-Inhaltstyp dann erstellt worden ist, so muss ich also nach dem "Absenden" eingreifen können... um den Ersteller und Empofänger auf entsprechende Art und Weise darüber zu informieren. Geht sowas?
pseudo-Code-mäßig also
wenn FormularAbgesendet dann
sende mail an Anzeigen-Erfasser und
sende mail an Anzeigen-Interessent
und dann wird das bei mir noch etwas komplizierter, deswegen brauche ich eben diese Möglichkeit einzugreifen. Ich möchte nämlich, dass diese beiden dann einen Beziehungstyp aufbauen... ich hab das Modul "user_Relationship" aktiv, was mir dann auf den Seiten des "Anzeigen-Erfassers" eine Übersicht zeigen soll mit allen "Interessenten" die auf seine Anzeige geantwort haben.