Catalog mit Frontend-Editing und Workflow erstellen
Aus Contao Community Documentation
betrifft | |
---|---|
TYPOlight Version | ab 2.8 |
Contao Version | ab 2.9 |
Extensions | Catalog ab 2.0beta1 |
Inhaltsverzeichnis
- 1 Kurzbeschreibung
- 2 Benötigte Erweiterungen
- 3 Voraussetzungen für das Tutorial
- 4 Erstellen der Grundlagen im Backend
Kurzbeschreibung
Hier geht es darum, wie man Items im Frontend erstellen und bearbeiten kann. Anhand eines Immobilienkataloges wird auch noch die Einrichtung eines Workflows vorgestellt. Zum Schluss soll es dem Besucher der Seite noch möglich sein Kontakt zu dem Seitenbetreiber aufzunehmen (mithilfe eines Formulars bei dem Item). Hier bei dem Beispiel werden exemplarisch zwei Arten von Immobilien angelegt (Haus zum Kaufen und Hotelzimmer). Bei diesem Beispiel ist die Backend-Ansicht von den Items nicht wirklich wichtig und wurde auch vernachlässigt, da alle Items über das Frontend verwaltet werden.
Benötigte Erweiterungen
- catalog
- backend_filterwiz
- backend_tabletree
- DC_DynamicTable
- taxonomy
- catalogitemuseridfield (für den Workflow wichtig, da damit die Items dem User zugewiesen werden)
- catalog_mailer (hier gibt es im Moment noch das Problem einer blöden abhängigkeit von catalog_ext. also noch nicht installieren!)
Voraussetzungen für das Tutorial
- wie ein Katalog erstellt wird sollte von anderen Tutorials klar sein und man sollte die Beschreibung der einzelnen Felder gelesen haben.
- Erstellung von Taxonomie
- der Umgang mit Contao sollte bekannt sein
- Seitenstruktur bearbeiten
- Module anlegen
- Templates bearbeiten
- Mitgliederbereich einrichten (für 2 Gruppen:Makler und Makler-Admins)
Erstellen der Grundlagen im Backend
Erstellung von neuen Seiten in der Seitenstruktur
- Startseite (Hier wird catalogfeatured eingesetzt)
- Immobilien Liste (Filter und Liste der Immobilien)
- Immobilien Details (die Detailseite von einem Item)
- Immobilien Liste (Filter und Liste der Immobilien)
- Geschützer Bereich
- Immobilien Anlegen (Für normale Makler)
- Haus zum kaufen Liste
- Haus zum kaufen anlegen / bearbeiten
- Hotelzimmer Liste
- Hotelzimmer anlegen / bearbeiten
- Haus zum kaufen Liste
- Immobilien Anlegen Administration (Für Makler-Admins)
- Haus zum kaufen Liste
- Haus zum kaufen anlegen / bearbeiten
- Hotelzimmer Liste
- Hotelzimmer anlegen / bearbeiten
- Haus zum kaufen Liste
- Immobilien Anlegen (Für normale Makler)
Taxonomie (Bedingung)
Die Taxonomien sind für die Kategorien und für die Gebiete der Items
Man erstellt sich zuerst die Kategorien und die Optionen. Wobei man hier wie bei einem Baum Verschachtelungen vornimmt:
- Immobilien
- Immo Art
- Haus
- Miethaus
- Ferienhaus
- Haus zum kaufen
- Hotel
- Hotelzimmer
- Haus
- Immo Gebiete
- Bizerte
- Jendouba
- Beja
- etc.
- Immo Art
Das Ergebniss sollte ungefähr so aussehen wie auf diesem Bild:
Erstellen von einem Katalog mit Feldtypen
Neuer Katalog
Zuerst erstellt man mit einem Klick auf Neuer Katalog einen neuen Katalog und stellt den wie folgt ein:
- Name von dem Katalog angeben
- einen Tabellennamen angeben (die Tabelle wird automatisch erzeugt). Bitte keine Tabellen mit tl_* anlgegen, da diese dann von Contao immer als zu löschen vorgemerkt werden beim aktualisieren der Datenbank.
- Alias und Felder veröffentlichen kann erst später angegeben werden, wenn diese Felder vorhanden sind.
- Sprung zur Seite: Angabe der Detailansicht
- Suche - Suchbar -> aktivieren (keine Bedingung angeben)
- Alle weiteren Einstellungen werden erst später vorgenommen.
Felder definieren für den Katalog Merkzettel
Es werden folgende Felder angelegt (Einstellungen die nicht vorgenommen werden, sind nicht aufgelistet):
Bezeichnung | Spaltenname | Typ | Einstellungen |
---|---|---|---|
Titel | immo_titel | text |
|
Alias | immo_alias_auto | alias | * Alias-Titel-Feld -> Titel
|
Benutzer ID | userid | Frontend-Benutzer | |
Art | immo_art | Auswahl |
|
Umgebungsbeschreibung | immo_umgebung | langtext |
|
Bild | immo_bild | file |
|
Bildergalerie | immo_bildergalerie | file |
|
Veröffentlichen | immo_veroeffentlichen | checkbox |
|
Online | immo_online | checkbox |
|
Hervorheben | immo_besonders | checkbox |
|
Immobilie entfernen | immo_delete | checkbox |
|
Erklärung
- Natürlich sind hier noch viel mehr Felder und Feldtypen angelegt. Diese paar sollten aber reichen um das prinzip zu verdeutlichen.
- Jede Art hat da ihre eigenen Felder (z.B. ist die Grundstücksfläche für Hotelzimmer nicht wichtig und wird daher dann später nicht mit ausgegeben)
- Bild und die Galerie sind getrennt, damit später in der Listenansicht ein bestimmtes Bild ausgegeben werden kann.
- Die Checkboxen Veröffentlichen, Online, Hervorheben und Immobilien entfernen sind besonders wichtig für die Verwaltung der Immobilien.
- Nur Makler-Admins bekommen später die Möglichekeit Immobilien online zu stellen (Online) und diese auf der Startseite anzuzeiben (Hervorheben)
die Katalog Einstellungen noch einmal überarbeiten
Da jetzt die Feldtypen definiert wurden, kann man im Katalog selbst noch weiter Einstellungen vornehmen:
- Alias-Feld -> Alias
- Feld veröffentlichen -> NICHTS hier nicht angeben, da die Makler im Frontend sonst ihre Items nicht sehen können!
- Meta-Title-Feld -> Titel
- Meta-Beschreibungs-Feld -> Umgebungsbeschreibung
- Zeichenkette des Titels formatieren -> {{immo_titel}} - {{immo_gebiet}} - {{immo_art}}<br /> {{immo_bild::w=100&h=80}}
Einstellen von ein paar Items (Produkten)
Nun können ein paar Immobilien erstellt werden. Zu beachten ist: diese Immobilien gehören erst einmal keinem Mitglied. Erst wenn ein Mitglied das Item bearbeitet und speichert ist es ihm Zugeordnet!
Die nötigen Module
Katalog-Filter
Damit die Benutzer und die Mitglieder das angezeigt bekommen was sie wollen, sollte man mit einem Filter die Immobilien Einschränkbar machen. Damit auch alle die passende Einstellung haben bei der Weiterleitungsseite muss man dieses Modul 3 mal anlegen und jeweils zur passenden Seite mit der Liste weiterleiten (eins anlegen und kopieren erleichtert einem die arbeit enorm *g*)
Einstellungen:
- Modul-Konfiguration -> Katalog -> Immobilien (den gerade eben erstellen Katalog auswählen)
- Weiterleitungsseite -> Immobilien Liste (je nachdem für welche Gruppe der Filter gerade erstellt wird)
- Benützen Sie Filterkonditionen des Listers auf der selben Seite -> aktivieren (dadurch sind nur die Filter aktiv, die auch passende Immobilien beinhalten)
- Filter pro Abschnitt aktivieren
- Gebiet -> Auswahlmenü
- Art -> Auswahlmenü
- Such-Filter
- Suchbox aktivieren -> aktivieren
- Kopfzeile suchen -> Suche (h3)
- Suchfelder
- Alle Felder die man durchsuchbar haben möchte ankreuzen (z.B. Titel, Gebiet, Art, Umgebungsbeschreibung)
- Filter-Layout -> filter_default
Katalog-Liste
Nun muss man mehrere Listenmodule anlegen. Einmal eine Liste für die Besucher. Dort sind alle Immobilien vorhanden, die online sind. Für die Makler und Makler-Admins muss man nun für jede Art eine passende Liste erstellen. Bei 5 verschiedenen Arten sind das also 5 Listen für Makler, 5 Listen für Makler-Admins. Zusammengenommen also 11 Listen. Das ganze kann man sicher auch mittels PHP und MySQL etwas zusammenfassen. Hier geht es jedoch darum, das Prinzip aufzuzeigen und jedem zu ermöglichen so einen Katalog ohne viel Programmierkenntisse anzulegen.
Einstellungen:
- Modul-Konfiguration -> Katalog -> Immobilien (den gerade eben erstellen Katalog auswählen)
- Weiterleitungsseite -> Immobilien Details
- Sichtbare Felder (in diesem Beispiel):
- Titel
- Gebiet
- Bild
- Art
- Standard-Link überschreiben (normalerweise wird ein Links 'Details' erzeugt. Ich möchte hier aber den Titel und das Bild verlinkt haben)
- Titel
- Bild
- Feld-Filter
- Suchfelder
- nach Bedarf anklicken
- Abfrage-Modus -> Alle Treffer (AND) - so werden nur die Immobilien angezeigt, die der Region, der Art und der Suche entsprechen!
- Tags-Modus -> Alle Treffer (AND) - so werden nur die Immobilien angezeigt, die der Region, der Art und der Suche entsprechen!
- Suchfelder
- Bedingung Je nach Liste etwas anders:
- Liste für Besucher der Seite: immo_online=1 and immo_freigeben=1 and immo_delete!='1' Das bedeutet -> Zeige alle Items, die online sind, die freigegeben sind und die nicht Entfernt sind (also als solche Markiert)
- Liste für Makler immo_art='136' and immo_delete!='1' AND (userid={{user::id}} OR userid=0) Das bedeutet -> Zeige alle Items der Art 136 (ID der Taxonomie 'Haus zum kaufen'), und nicht Entfernt wo die UserID gleich der eigenen oder keiner ist (alle Items von dem Mitglied und Items die noch keinem zugeordnet sind)
- Liste für Makler-Admin immo_art='136' and immo_delete!='1' Das bedeutet -> Zeige alle Items der Art 136 (ID der Taxonomie 'Haus zum kaufen'), und nicht Entfernt sind an. Hier wird nicht die UserID abgefangen! Dadurch können Makler-Admins alle Immobilien sehen.
- Elemente pro Seite -> 6
- Template-Einstellungen
- Katalog-Layout -> catalog_simple
- Katalog-Template -> mod_cataloglist
Katalog-Leser
Hiervon gibt es nur ein Modul. Die Makler und Makler-Admins bekommen das Modul Katalog-Edit. Die Ausgabe der verschiedenen Arten und deren besonderheit regel ich über das Teplate mit einer extra if-Abfrage (lasse also nur die Felder anzeigen, die überhaupt einen Inhalt haben).
- Modul-Konfiguration -> Katalog -> Immobilien (den gerade eben erstellen Katalog auswählen)
- Sichtbare Felder (in diesem Beispiel):
- Titel
- Gebiet
- Art
- Umgebungsbeschreibung
- Template-Einstellungen
- Katalog-Layout -> catalog_full
- Katalog-Template -> mod_catalogreader
Katalog-Featured
Hiermit werden die hervorgehobenen Items auf der Startseite dargestellt.
- Modul-Konfiguration -> Katalog -> Immobilien (den gerade eben erstellen Katalog auswählen)
- Weiterleitungsseite -> Immobilien Details
- Sichtbare Felder (in diesem Beispiel):
- Titel
- Gebiet
- Bild
- Art
- Standard-Link überschreiben (normalerweise wird ein Links 'Details' erzeugt. Ich möchte hier aber den Titel und das Bild verlinkt haben)
- Titel
- Bild
- Feld-Filter
- Abfrage-Modus -> Alle Treffer (AND) - so werden nur die Immobilien angezeigt, die der Region, der Art und der Suche entsprechen!
- Tags-Modus -> Alle Treffer (AND) - so werden nur die Immobilien angezeigt, die der Region, der Art und der Suche entsprechen!
- Bedingung
- immo_online=1 and immo_besonders and immo_delete!='1' Das bedeutet, das hier nur Immobilien angezeigt werden, die Online, besonders und nicht Entfernt sind.
- Template-Einstellungen
- Katalog-Layout -> catalog_simple
- Katalog-Template -> mod_catalogfeatured
Katalog-Related
Hiermit werden ähnliche Immobilien auf der Detailseite einer Immobilie angezeigt. Übereinstimmen muss in diesem Beispiel nur das Gebiet. Bei vielen Items sollte die Liste hier weiter eingeschränkt werden (Sinnvoll wäre zum Beispiel die Art der Immobilie)
- Modul-Konfiguration -> Katalog -> Immobilien (den gerade eben erstellen Katalog auswählen)
- Weiterleitungsseite -> Immobilien Details
- Sichtbare Felder (in diesem Beispiel):
- Titel
- Gebiet
- Bild
- Art
- Standard-Link überschreiben (normalerweise wird ein Links 'Details' erzeugt. Ich möchte hier aber den Titel und das Bild verlinkt haben)
- Titel
- Bild
- Feld-Filter
- Betroffene Felder, die übereinstimmen müssen -> Gebiet
- Anzahl der Tags die zusammengehöhren müssen -> 0 (macht nur sinn bei mehreren. Dann werden nur Items angezeigt, die zum Beispiel 2 Gleiche Felder haben bei der Angabe von 2)
- Bedingung -> immo_online=1 and immo_delete!='1' Das bedeutet, das hier nur Immobilien angezeigt werden, die Online und nicht Entfernt sind.
- Anzahl der Einträge -> 5
- Template-Einstellungen
- Katalog-Layout -> catalog_simple
- Katalog-Template -> mod_catalogrelated
Katalog-Edit
Hier sind wieder mehrere Module nötig.
Für Makler in jeder Art eins -> 5
Für Makler-Admins -> 5
(für jede Art, da die sich ja wie oben genannt in den Feldern unterscheiden)
Felder die einen Standardwert bekommen dürfen nicht bearbeitet werden können!
Außerdem lasse ich das Alias Feld nicht bearbeiten, damit da keine unschönen Aliase generiert werden.
Einstellungen für Makler:
- Modul-Konfiguration -> Katalog -> Immobilien (den gerade eben erstellen Katalog auswählen)
- Weiterleitungsseite -> Immobilien Details
- Bearbeitbare Felder (in diesem Beispiel):
- Titel
- Gebiet
- Art
- Bild
- Bildergalerie
- Umgebungsbeschreibung
- Veröffentlichen
- Immobilie entfernen
- Benutzer id [userid:useridfield] (Nur dadurch wird die ID des Maklers erfasst. Wird aber nicht im Frontend angezeigt)
- Weiterleitungsseite -> auf die jeweilige Liste (Makler oder Makler-Admin)
- Sicherheitsabfrage deaktivieren (da die Seiten ja nur von Mitgliedern benutzt werden können. Ist bei öffenltich Zugänglichen Catalog-Edit-Modulen nicht zu empfehlen!)
- Auf Standardwerte beschränken
- Eingeschränkte Felder -> aktivieren
- Art
- Online
- Standardwerte für eingeschränkte Felder
- Art -> Haus zum kaufen oder Hotelzimmer (kommt auf das Modul an welches man gerade anlegt)
- Online -> nein
- Eingeschränkte Felder -> aktivieren
Einstellungen für Makler-Admins:
- Modul-Konfiguration -> Katalog -> Immobilien (den gerade eben erstellen Katalog auswählen)
- Weiterleitungsseite -> Immobilien Details
- Bearbeitbare Felder (in diesem Beispiel):
- Titel
- Gebiet
- Art
- Bild
- Bildergalerie
- Umgebungsbeschreibung
- Veröffentlichen
- Immobilie entfernen
- Online
- Hervorheben
- Weiterleitungsseite -> auf die jeweilige Liste (Makler oder Makler-Admin)
- Sicherheitsabfrage deaktivieren (da die Seiten ja nur von Mitgliedern benutzt werden können. Ist bei öffenltich Zugänglichen Catalog-Edit-Modulen nicht zu empfehlen!)
- Auf Standardwerte beschränken
- Eingeschränkte Felder -> aktivieren
- Art
- Online
- Standardwerte für eingeschränkte Felder
- Art -> Haus zum kaufen oder Hotelzimmer (kommt auf das Modul an welches man gerade anlegt)
- Eingeschränkte Felder -> aktivieren
Mit diesen unterschiedlich eingestellten Katalog-Edit Modulen erreichen wir den Workflow:
Makler können eine Immobilie bearbeiten und neu anlegen. Die Immobilie können Makler aber nicht online stellen oder hervorheben. Beim Bearbeiten wird durch den Standardwert Online=nein die Immobilie offline gestellt.
Makler-Admins können Immobilien bearbeiten und neu anlegen. Die Immobilien können von Makler-Admins online gestellt werden und hervorgehoben werden (diese können ja die Felder sehen und bearbieten, die dafür zuständig sind).
Die Module in Artikeln den passenden Seiten zuordnen
Nun müssen die Module noch auf die jeweils passende Seite gebracht werden:
- Startseite -> Catalog-Featured
- Immobilien Liste -> Catalog-Filter und Catalog Liste (für Besucher!)
- Immobilien Details -> Catalog-Leser
- Immobilien Liste -> Catalog-Filter und Catalog Liste (für Besucher!)
- Geschützer Bereich
- Immobilien Anlegen -> mit Navigation für die Unterseiten (Für Makler und Makler-Admins)
- Haus zum kaufen Liste -> Catalog-Liste mit Verweis auf Catalog-Edit
- Haus zum kaufen anlegen / bearbeiten -> Catalog-Edit
- Hotelzimmer Liste -> Catalog-Liste mit Verweis auf Catalog-Edit
- Hotelzimmer anlegen / bearbeiten -> Catalog-Edit
- Haus zum kaufen Liste -> Catalog-Liste mit Verweis auf Catalog-Edit
- Immobilien Anlegen Administration -> mit Navigation für Unterseiten (Für Makler-Admins)
- Haus zum kaufen Liste -> Catalog-Liste mit Verweis auf Catalog-Edit
- Haus zum kaufen anlegen / bearbeiten -> Catalog-Edit
- Hotelzimmer Liste -> Catalog-Liste mit Verweis auf Catalog-Edit
- Hotelzimmer anlegen / bearbeiten -> Catalog-Edit
- Haus zum kaufen Liste -> Catalog-Liste mit Verweis auf Catalog-Edit
- Immobilien Anlegen -> mit Navigation für die Unterseiten (Für Makler und Makler-Admins)
Ich kann nur aus eigener Erfahrung sprechen: Spätestens jetzt ist man froh, wenn man eine Eindeutige Benennung der Module vorgenommen hat! Hier muss man mit vielen ähnlichen Modulen arbeiten und da ist es auf dauer sehr mühselig, wenn man nicht auf den 1. Blick erkennen kann was es ist. Ich selber benenne die Module daher zum Beispiel so: 'Katalog - Makler - Edit - Haus zum kaufen' Dadurch ist die automatische Sortierung im Backend außreichend gut. Man sieht was für ein Modul es ist (Katalog) für welche Gruppe es ist (Makler) was genau es machen soll (Edit) und für welchen Bereich es gedacht und eingestellt ist (Haus zum kaufen).
Templates
Tutorial zum Anpassen der Templates : Catalog Templates anpassen
--MacKP 14:52, 18. Mai 2010 (UTC)