
Eine Firmen Website mit Drupal erstellen - Teil 3
Drupal Tutorial
So, kommen wir endlich zum dritten und leider nicht letzten Teils unseres Tutorials. Es gibt einfach so viel zu beschreiben. Teil 1 und 2 finden Sie hier:Teil 1 Teil 2Der wichtigste Bereich für ein Bistro im Web ist wahrscheinlich der Speiseplan. Um den wollen wir uns jetzt kümmern. Wir kommen damit an einen Punkt, an dem wir mit dem Drupal Core nicht mehr auskommen. Zusätzliche Module werdn benötigt.Für einen Speiseplan gibt es zwei Probleme, die wir mit den Hausmitteln von Drupal nicht lösen können: 1. Die Erfassung der Gerichte. 2. Die Anzeige der Gerichte der aktuellen Woche oder auch des aktuellen Tages.Das soll mit Hausmitteln nicht zu lösen sein, wird sich jetzt mancher fragen? Man könnte doch einfach einen neuen Node erfassen im Titel das Datum eingeben und im Body Feld einfach untereinander die Tagesgerichte rein schreiben. Oder noch besser, erst einen neuen Inhaltstyp “Tagesgericht” anlegen und mit diesem dann einfach für jeden Tag neue Gerichte erfassen.Klar, das geht selbstverständlich und mit einem Wysiwyg-Editor könnten Sie das noch schön strukturieren. Dann jeweils die Tagesgerichte für den aktuellen Tag auf die Frontpage promoten, auf ‘Oben in Listen’ setzen (haben wir im ersten Teil beschrieben) und fertig wäre das Ganze.Es gibt zur Lösung eines Problems immer mehrere Möglichkeiten und Sie müssen für Ihre Anforderungen abwägen, welche Möglichkeit Ihnen am Besten gefällt. Der Arbeitsauswand spielt auch eine Rolle und auch die Kenntnisse der Personen, die den Speiseplan später erfassen sollen.Wir möchten aber hier einen flexibleren Weg vorstellen, der es insbesondere ermöglicht einen Wochen- und Tageskalender anzuzeigen.Falls Sie nicht mit Acquia Drupal arbeiten, laden Sie sich jetzt folgende Module herunter:CCK Calendar Date ViewsOhne die Module CCK und Views können sie nur trivialste Sites in Drupal erstellen und verwalten. Date und Calendar brauchen wir für unseren Speiseplan, um das aktuelle Datum für ein Tagesgericht zu erfassen, Calendar um unseren Speiseplan automatisiert für die aktuelle Woche ausgeben zu lassen.Klicken Sie jetzt auf SITE BUILDING - MODULES - LIST und aktivieren für das CCK die Submodule CONTENT und TEXT, für DATE/TIME die Submodule CALENDAR, DATE, DATE API, DATE POPUP und DATE TIMEZONE und dann noch VIEWS und VIEWS UI.Diese Vorgehensweise ist häufig nötig, wenn Sie neue Module für Drupal installieren. Zusätzlich zum eigentlichen Hauptmodul können oder müssen sie manchmal weitere Submodule aktivieren. Auf Abhängigkeiten werden Sie hingewiesen.Zur Erfassung eines Gerichts werden wir jetzt einen neuen Inhaltstypen erzeugen und um ein Datumsfeld erweitern. Schauen Sie sich vorher einmal den Inhaltstype Page oder Artikel an. Sie sehen, dass die Standard Inhaltstypen von Drupal immer über zwei Felder verfügen: Titel und Body. Auch wenn Sie weitere Inhaltstypen z.B. für unser Tagesgericht erzeugen, stehen Ihnen nur diese beiden Felder zur Verfügung.Durch die Installation vom CCK - steht für Content Construction Kit - haben wir jetzt aber die Möglichkeit beliebige Felder, auch sehr spezielle wie ein Datumsfeld, unserem Inhaltstyp hinzuzufügen.Erzeugen sie jetzt einen neuen Inhaltstyp indem Sie CONTENT MANAGEMENT - CONTENT TYPES - ADD CONTENT TYPE aufrufen. Geben Sie als Name z.B. “Tagesgericht” ein und als Type “tagesgericht”. Klicken Sie dann auf SUBMISSION FORM SETTINGS und geben dort die Werte wie im folgenden Screenshot ein:Warum haben wir das Feld “Body” freigelassen? Nun, für unser Tagesgericht benötigen wir kein großes Textfeld. Wir brauchen den Namen des Gerichts, das Datum und einen Preis. Außerdem ist es grundsätzlich empfehlenswert in einem eigenen Inhalstyp mit neuen CCK Feldern, auf das Body Feld zu verzichten und auch für längere Fließtexte ein eigenes Feld zu erzeugen. Die dahinter liegende Datenstruktur wird so sauberer.Deaktivieren Sie unter WORKFLOW SETTINGS “Promote to front” und deaktivieren Sie die Möglichkeit Kommentare zu hinterlassen. Das könnte für ein Restaurant zwar ganz interessant sein, dass Gäste die Speisen kommentieren können, aber wir lassen das hier mal.Speichern Sie den neuen Inhaltstyp jetzt ab. Danach sehen Sie diese Seite:Klicken Sie dort bei Tagesgericht auf MANAGE FIELDS. Danach sehen Sie diese Eingabemaske:Wir werden jetzt unser erstes neues Feld anlegen. Und zwar zuerst für den Preis, da das Datumsfeld etwas komplexer ist.Geben Sie unter “New field” in das Feld LABEL “Preis” ein und bei field_ “tagesgericht_preis”. Sie sollten es sich zur guten Gewohnheit machen für die Feldnamen immer den Namen Ihres Inhaltstyp als Präfix zu benutzen. Bei vielen Inhaltstypen und Feldern hilft das die Übersicht zu behalten.Klicken Sie jetzt auf SELECT A FIELD TYPE. Sie sehen dort 4 Typen, 3 für Datumswerte und einen Typ für Text. Es gibt noch viel mehr. Feldtypen werden als eigene Module zur Verfügung gestellt und man findet welche für jeden Zweck. So auch für Währungsformate und Zahlen, die man sicherlich für das Feld “Preis” nehmen sollte. Wir möchten es aber hier sehr einfach halten und benutzen einfach den Typ TEXT. Wenn Sie dort drauf klicken wird die nebenstehende Select Box aktiviert und Sie können zwischen Textfield und Textarea wählen. Klicken Sie in diesem Fall auf Textfield.Auf der nächsten Seite geben Sie die Werte wie im Screenshot ein:Eine “Maxlength” von 7 haben wir gewählt, da man so exakt Preise bis 99,99 € erfassen kann. Und “Required” damt niemand aus versehen ein Gericht ohne Preis erfassen kann.Legen Sie jetzt analog zur beschriebenen Vorgehensweise ein Feld für das Datum an. Wählen Sie als Feldtype DATE und dann “Textfield with Date Popup Calendar”. Nachdem Speichern gelangen sie zu einer komplizierten Eingabemaske.Zuerst können Sie einen Default Value festlegen. Da es individuell ganz verschieden sein kann, wann Gerichte erfasst werden, setzten Sie das auf BLANK. Der nächste Wert ist nur für zeitlich begrenzte Ereignisse interessant. Setzen Sie den auch auf BLANK.Wichtiger ist INPUT FORMAT. Wählen Sie hier dd.mm.jj aus. Weiter unten bei GRANULARITY “Year, Month, Day”, vergessen Sie nicht “Required” anzuklicken, denn ohne Datum macht das keinen Sinn. Stellen Sie noch für DEFAULT DISPLAY “Short” ein und bei TIME ZONE HANDLING “No time zone conversions”. Da wir als Datumstyp DATE und nicht einen der beiden anderen Datumstypen gewählt haben, brauchen wir das hier nicht.Diese ganzen Unterschiede von Datumstypen zu erklären, geht weit über dieses Tutorial hinaus. Nach dem Speichern sollten Sie diese Seite sehen:Mit den kleinen Kreuzen können Sie die beiden neuen Felder nach oben ziehen. In der Reihenfolge erscheinen diese dann im Erfassungsformular für Gerichte.Wenn Sie hier Felder verschieben oder andere Änderungen vornehmen, vergessen Sie nicht zu Speichern. Erst dann sind diese Änderungen wirklich übernommen worden.So, dann können wir jetzt unser erstes Tagesgericht erfassen. Klicken Sie auf CREATE CONTENT - TAGESGERICHT, geben Beispieldaten ein uns speichern.Wie wir die Tagesgerichte auf einem Wochenkalender anzeigen, das heutige Tagesgericht auf der Startseite anzeigen und warum wir die Nodes auf unveröffentlicht setzen, dass erfahren Sie im vierten und letzten Teil dieses Tutorials.Eine Firmen Website mit Drupal erstellen - Teil 4