
Eine Firmensite erstellen - Teil 4
Drupal Tutorial
Im letzten Teil unseres Tutorials erstellen wir ohne Programmierkenntnisse einen Tages- und einen Wochenkalender für den Speiseplan. Teil 1, 2 und 3 finden Sie hier:Teil 1 Teil 2 Teil 3Um dynamische Kalender zu erstellen müssen wir mit dem Modul Views arbeiten. Views sind zu komplex, um in diesem Tutorial umfassend behandelt zu werden. Deshalb folgt hier nur eine kurze Erläuterung.Mit Views können Sie andere Auflistungen von Inhalten anzeigen lassen, als dies mit den Drupal Core Modulen möglich ist. Nehmen wir als Beispiel die Startseite. Drupal listet dort Teaser von Nodes auf. Der aktuellste wird immer zuerst angezeigt. Es gibt keine Möglichkeit die Sortierreihenfolge zu ändern. Hier kommt nun Views ins Spiel. Sie können eine View anlegen, welche Ihnen alle Nodes auflistet, diese aber anders sortiert.Dies ist das trivialste Beispiel. Mit Views können Sie Auflistungen innerhalb einer Seite oder als Block erzeugen lassen. Es stehen unterschiedliche Stile zur Anzeige der Daten zur Verfügung z.B. Listen, sortierbare Tabellen, Raster u.v.m. Manche Stile werden durch ein Modul zur Verfügung gestellt. Und genau das ist bei dem Kalender Modul der Fall.Klicken Sie auf SITE BUILDING - VIEWS. Sie sehen dort eine Liste von Views, die schon vorgefertigt sind, aber noch aktiviert werden müssen. Aktivieren Sie die View “Calendar”. Danach können Sie die View bearbeiten.Der Screenshot zeigt die Kalender-View im Bearbeitungsmodus.Sie sollten später den Vorschlag befolgen und das “Advanced Help Modul” installieren. Es liefert zu vielen Modulen wertvolle Hilfe.Ganz links sehen Sie eine Liste mit “Year View, Month View usw.” Wir benötigen für unseren Speiseplan eines Tageskalender und einen Wochenkalender. Zuerst müssen wir aber einige grundlegende Einstellungen dieser ja “nur” vorgefertigten View an unsere Bedürfnisse anpassen. Die nun folgenden Änderungen möchten wir für alle Punkte dieser Liste auf der linken Seite vornehmen. Achten Sie deshalb darauf, dass dort “Defaults” ausgewählt ist.Ganz rechts sehen Sie einen Bereich mit der Überschrift “Filters”. Hier weisen Sie die View an, wie die Inhalte, welche Sie auflisten möchten gefiltert werden sollen. Der einzige Filter der dort gesetzt ist, steht auf “Node: Published Yes”. Dieser Filter kommt in fast allen Views, die man erstellt zum Einsatz. In unserem Fall nicht.Ein Gericht wollen wir nur in Kalenderansichten darstellen. Wir möchten verhindern, das jemand die Seite “Erbsensuppe” aufrufen kann. Deshalb setzen wir (nicht jetzt, später) die Veröffentlichungseinstellung für unseren Inhaltstyp “Tagesgericht” auf “Unveröffentlicht”.Klicken Sie jetzt auf NODE PUBLISHED, dann auf NO und dann auf den Button UPDATE. Das müssen Sie bei Views immer beachten. Nach bestimmten Änderungen müssen Sie eine Aktualisierung vornehmen. Aber:Solche Zwischenaktualisierungen speichern dieses Änderungen noch nicht abschließend. Wenn Sie mit allen Änderungen einer View fertig sind, müssen Sie noch den SAVE BUTTON betätigen. Sie finden diesen oberhalb des Bereichs “Live Preview”.Nach der Aktualisierung klicken Sie auf das kleine Plussymbol neben der Überschrift “Filters”. Wie im Screenshot sehen Sie eine unendlich lange Liste. Das sind alles Filermöglichkeiten.Zum Glück können wir die Liste begrenzen, indem man auf die Dropdown-Box “Groups” klickt. Damit kann man die angezeigten Filter einschränken. Mit den Gruppen “Node” und “Content” hat man es am häufigsten zu tun.Scrollen Sie in der Box ein wenig nach unten und klicken auf NODE:TYPE. Danach klicken Sie auf den Button ADD. Dann erscheint ein neuer Auswahlbereich. Dort wählen Sie IS ONE OF und “Tagesgericht”. Danach UPDATE nicht vergessen.Damit haben wir der View mitgeteilt, dass wir nur Nodes diesen Typs im Kalender sehen möchten.Manchmal möchte man das Ergebnis einer View noch anders einschränken als das mit den gerade besprochenen Filtern möglich wäre. Views benutzt dafür sog. Argumente. Argumente können sehr komplex sein und können deshalb in diesem Tutorial nich behandelt werden. Wir möchten Sie einfach nutzen. Vielleicht nur soviel: Argumente “hängen”, als weitere Information für die View, am Ende einer URL bei einem Seitenaufruf. Sieht dieser z.B. so aus “taxonomy/term/15”, bekommt eine View 3 Argumente übergeben.In der mittlerer Spalte sehen Sie einen Bereich mit der Überschrift “Arguments” und darunter “Date: Date (node) Node: Updated date”. Dieses Argument weist die View an, die Nodes zusätzlich so zu filtern, dass nur Nodes angezeigt werden, deren Änderungsdatum mit dem übergebenen Datum (Argument) in der URL übereinstimmt.Wir möchten aber alle Nodes nach dem Datum, welches wir im Feld “Tagesgericht Datum” bei der Erfassung eines Gerichts, angegeben haben. Dies wird wohl in den seltensten Fällen gleich sein mit dem Erfassungsdatum.Klicken Sie dieses Argument nun an und scrollen nach unten, bis Sie diesen Abschnitt sehen.Deaktivieren Sie “Node: Updated Date” und aktivieren “Content: Datum (field_tagesgericht_datum)”. Nach dem Aktualisieren werden Sie eine Fehlermeldung erhalten. Das liegt daran dass in dem Bereich “Fields”, den Sie unter dem Bereich “Arguments” finden, noch Anpassungen gemacht werden müssen.Entfernen Sie dort das Feld “Node: Updated Date” und fügen unser Feld “Tagesgericht Datum” hinzu. Klicken Sie danach auf “Node:Title” und entfernen ganz unten das Häkchen bei “Link this field to it’s node”. Da wir unsere Tagesgerichts Nodes auf unveröffentlicht einstellen werden, macht ein Link dorthin natürlich keinen Sinn.Klicken Sie jetz noch ganz links bei den Displays auf CALENDAR PAGE und geben bei PATH SETTINGS - PAGE anstelle von Calendar, Speiseplan ein. Unter diesem Pfad ist der Kalender dann erreichbar.Speichern Sie jetzt die komplette View. Das alles mag Ihnen jetzt zuerst sehr kompliziert vorgekommen sein, aber letztendlich waren das nur ein paar Klicks. Und ohne eine Zeile Code haben Sie einen dynamischen Kalender generiert, der Ihnen auf einer Seite die erfassten Tagesgerichte anzeigt.Bearbeiten Sie jetzt unseren Inhaltstyp “Tagesgericht” und stellen die Veröffentlichungseinstellungen auf “Unveröffentlicht”. Erfassen Sie danach Tagesgerichte für die aktuelle Woche.Fügen Sie der Hauptnavigation den Menüeintrag “Speiseplan” hinzu. Und schon können Sie einen Kalender mit den aktuellen Tagesgerichten aufrufen.Zum Abschluss möchten wir noch die Tagesgerichte des aktuellen Tags als Block auf der Homepage anzeigen. Eine Kalenderansicht für nur einen Tag macht allerdings keinen Sinn. Wir erzeugen deshalb einen Block, der uns einfach die Felder aus unserem Inhaltstyp ausgibt. Titel (Name des Gerichts, Preis und Datum).Rufen Sie dazu wieder die View “Calendar” auf. Am Ende der Displays finden Sie eine Dropdown-Box.Hiermit können Sie einer View weiter “Displays” mit anderen Styles hinzufügen. Die wichtigsten Displays sind Seiten und Blöcke. Wählen Sie BLOCK und klicken dann auf ADD DISPLAY.Das neue Display erbt alle Defaults Einstellungen. Für unseren neuen Block müssen wir nur ein paar Anpassungen machen.Wir haben den Style auf “Unformated” gestellt, da wir ja keine Kalenderansicht haben möchten und damit wir den von Views erzeugten Block später in der Block Verwaltung finden, haben wir unter “Block Settings - Admin” den Namen “Tagesgericht” eingegeben. Schauen Sie sich den Screenshot genau an.Jetzt müssen wir noch eine kleine Änderung bei den Argumenten vornehmen. Und zwar muss die Granularität auf “Day” gestellt werden, wie im Screenshot zu sehen. Nach dieser Änderung speichern Sie die View. Rufen Sie dann SITE BUILDING - BLOCKS auf und fügen den Block “Tagesgericht” der Region “Right Sidebar” hinzu. Er sollte dort an der ersten Stelle erscheinen. Als Ergebnis dieser vielen Schritte sollte Ihre Site jetzt wie folgt aussehen.Wahrscheinlich fällt Ihnen auf, dass der Block sich in einigen Punkten von dem in unserem Screenshot unterscheidet. Versuchen Sie als Übung selber herauszufinden woran das liegt und was Sie ändern müssen. Es sind lediglich 3 kleine Änderungen an der View durchzuführen. Herzlichen Glückwunsch. Wenn Sie sich bis hierhin durch unsere 4 Teilige Serie gearbeitet haben, haben Sie viele Konzepte von Drupal und den wichtigsten Modulen wie Views und CCK kennergelernt. Diese Konzepte können sie bei der Erstellung Ihrer eigenen Firmensite genauso anwenden wie in unserem Beispiel.