Login / Status
developer.Resource
Home . Documentation . Document Library . Tutorials
Sponsors
hosted by punkt.deTYPO3 and Open Source Magazine

1.6. Spezielle Content Elemente

Sie haben bereits eine Einführung in Page Content Elemente im Allgemeinen bekommen. Sie wissen also, wie diese funktionieren. In diesem Abschnitt möchte ich Ihnen nun einige Beispiele von speziellen Content Elementen zeigen, die trotzdem sehr gebräuchlich sind. Wie zum Beispiel kann man ein Email Formular erstellen? Oder ein Suchfeld mit dem Sie den Inhalt der Website durchsuchen können? Wie sieht es mit einem Gästebuch aus?

Lesen Sie einfach weiter und Sie werden es erfahren...

Email Formulare

Praktischerweise haben wir bereits ein solches Formular auf unserer Website. Wenn Sie auf die Seite "Contact" gehen, sehen Sie folgendes:

Im Backend sieht das Content Element, das dieses Formular erzeugt, folgendermassen aus (im Page Modul):

Übrigens, achten Sie einmal darauf, dass die "Thank you" Seite eine Unterseite der "Contact" Seite ist.

Und nun bearbeiten Sie das Element. Dies ist das Formular das Sie sehen:

Der Inhalt sieht eher aus wie eine Programmierung - mehr noch als bereits die Tabelle, die wir uns vorher angesehen haben! Aber wie immer - klicken Sie auf das Assistenten-Symbol und Sie können den Inhalt mit einem Tool bearbeiten, das Ihnen alles sehr erleichtert!

Wie Sie sehen wurde die "Programmierung" in dieses hübsche Darstellung übersetzt. Hier wird jedes Feld des Formulares durch visuelle Schalter eingestellt. Für jedes Feld müssen Sie natürlich eine Beschriftung eingeben (#1) und einen Typ definieren (#2). Das sind die sichtbaren Teile. Sie müssen dem Feld auch eine interne Bezeichnung geben (#3) die später in der Email angezeigt wird, die der Empfänger erhält. Im Falle des "Input field" Typs können Sie auch einen Standardwert definieren (#4).

Bei allen Email-Formularen müssen noch einige andere Werte gesetzt werden: Der Name des "Senden" Buttons (#5), die Betreffzeile der Email, die verschickt werden soll (#6) und schließlich die Emailadresse der Person, die die Email empfangen soll (#7). Diese Person sind normalerweise Sie! Oder wer auch in Ihrem Team für die Beantwortung von Feedback zuständig ist.

Eine Auswahlliste hinzufügen

Lassen Sie uns versuchen, eine Auswahlliste zu erstellen, aus der die Besucher einen Eintrag auswählen können. Beim "FC Bigfeet" gibt es Kalender, das Club Magazin und Bleistifte, die wir an die Leute verschicken.

Wählen Sie einfach den Typ "Selector box":

Anschließend klicken Sie auf den "Aktualisieren ohne zu speichern"-Button (welcher den Inhalt nicht speichert - er wird nur weitergegeben und das Formular neu aufgebaut!):

Anschließend geben Sie folgende Informationen ein:

Die Beschriftung erklärt sich von selbst (#1). Der Feldname "item_to_send" (#2) ist nicht auf der Webseite sichtbar, aber er wird - wie ich schon vorher geschrieben habe - dafür verwendet, den Artikel zu identifizieren, den der Email-Empfänger auswählt. Schließlich werden noch alle Werte, die in dem Auswahlfeld gelistet werden sollen, zeilenweise in dieses Textfeld geschrieben (#3) - so einfach geht das. Speichern Sie den Inhalt des Assistenten und lassen Sie sich die Seite anzeigen:

Das war's!

Einige Bemerkungen

Im Backend wurde für die neue Auswahlliste eine Zeile Code im "Configuration" Feld eingetragen. Wenn es Sie interessiert, schauen Sie sich die Zeile an - möglicherweise finden Sie so heraus, wie Sie Formular Felder auch ohne den Assistenten erzeugen können:

Wenn Sie schon sehr neugierig sind, können Sie bereits anfangen im TSref Dokument nach Hilfe zu suchen - dort gibt es einen Abschnitt, der weitere Details beschreibt. Aber seien Sie gewarnt - diese technischen Erklärungen auf unterster Ebene werden Ihnen noch sehr ungewohnt vorkommen!

Eine andere wichtige Sache ist das "Jump to page"-Feld, das TYPO3 sagt auf welche Seite es springen soll, wenn ein Formular abgeschickt wurde:

Mit anderen Worten - wenn der Benutzer das Formular ausgefüllt und den "Send form!"-Button gedrückt hat, wird ihm folgende Seite angezeigt die ... eine ganz normale Seite ist, mit einer freundlichen Nachricht versehen:

Ziemlich einfach oder? Und sehr flexibel.

Fehlersuche

Es besteht eine gute Chance, dass die Mailfunktionen auf Windows Servern nicht funktionieren wird. Wenn Sie das Formular verschicken und eine PHP-Fehlermeldung bekommen, haben Sie vermutlich PHP nicht für die Verwendung mit einem SMTP-Server konfiguriert. Unter UNIX funktioniert all dies normalerweise auf Anhieb.

Suchen

Das nächste Projekt ist es, eine Suchfunktion zu integrieren. Das ist sogar noch einfacher und wurde auf der Seite "Search" schon für uns erledigt:

Das Element selbst ist extrem simpel aufgebaut:

Grundsätzlich müssen Sie nur den Typ des Content Elements auf "Search" setzen und das war's. Es gibt auch noch ein "Send to page" Feld, allerdings haben wir es nicht genutzt. Es macht dasselbe wie das "Jump to page" Feld in Email-Formularen - es sagt dem Element welche Seite die Suchanfrage erhalten soll (welche ebenfalls ein "Search" Content Element enhalten muss, damit die Ergebnisse angezeigt werden!). Wenn nichts angegeben wird, wird die aktuelle Seite verwendet - und so wird diese Suchfunktion auch von den meisten verwendet.

Durchführen einer Suche

Wenn wir nach dem Wort "results" suchen, werden zwei Seiten aufgelistet:

Klicken Sie einmal auf den Titel "Report results":

Sie werden auf die entsprechende Seite gebracht und alle Suchbegriffe werden rotgefärbt dargestellt. Nett oder?

Indizierte Suche?

Das standarmäßig verwendete Such-Element, das Sie gerade benutzen, sucht direkt in den Datensätzen der Seiten und den Page Content Elementen. Das reicht für die meisten kleineren Websites vollkommen aus.

Wenn Sie eine professionelle Suche mit indizierten Inhalten benötigen, so geht das natürlich auch. Sie können eigentlich alles, wofür bereits eine Extension geschrieben wurde, bekommen (mehr dazu später). Zunächst können Sie erst einmal http://typo3.org als Beispiel für die indizierte Suche, die TYPO3 anbietet, verwenden:

Das Ergebnis wird ungefähr so aussehen:

Beachten Sie, wie die Ergebnisse übersichtlich in Bereiche unterteilt und ihre Relevanz in Prozent angegeben wird.

Die Extension, die all dies macht, hat den Extension Key "indexed_search" und das Handbuch mit weiteren Informationen dazu, können Sie hier finden.

Gästebuch

Ein Gästebuch ist ebenfalls einfach zu erstellen (nachdem Sie schon so weit gelesen haben, hätten Sie vermutlich auch nichts anderes erwartet). Wie auch immer, Dinge wie das Gästebuch, das Nachrichtenbrett (Message Board), News Modul usw. werden normalerweise als Extension angeboten - und Extensions muss man zunächst installieren. Man kann sie gröstenteils sogar über das Online Repository, dem TER (TYPO3 Extension Repository) importieren, wenn sie auf dem lokalen Server noch nicht verfügbar sind.

Um eine Extension wie das Gästebuch zu installieren, gehen Sie in den Extension Manager (EM - auch ein Modul, das Sie bestimmt leicht finden) und klicken auf das Hinzufügen-Symbol:

In der Ansicht "Loaded Extensions" können Sie eine Liste der installierten (und geladenen) Extension sehen:

Das Gästebuch in eine Seite einfügen

Genau wie das Email Formular und die Suchfunktion - und normalerweise alle anderen Web Applikationen (in der TYPO3-Terminologie "plugin" genannt) - wird auch das Gästebuch durch ein Page Content Element eingefügt und fungiert als Platzhalter für seine Funktionen:

Der Typ "Insert plugin" ist die Hauptauswahl und das zweite Auswahlfeld "Plugin:" wird dafür verwendet, welches Plugin eingefügt werden soll. Die Auflistung spiegelt (einige der) installierten Extensions wider:

Wir haben schon ein allgemeines Gästebuch - also lassen Sie uns eines für den Bereich "Team Pages" erstellen, der eine Anmeldung mit Benutzernamen und Passwort erfordert:

Gehen Sie zum Page Modul, klicken Sie auf den Titel der Seite "Team pages" in dem kleinen Page Tree und wählen Sie den "New page" Assistenten (wie bereits vorher schon einmal):

Geben Sie einen Seitentitel ein:

Speichern und schließen Sie die Seite. Anschließend erstellen Sie den Seiteninhalt:

Wählen Sie das Plugin "Guestbook":

(Und jetzt raten Sie mal, wie einfach es ist, die Mini News und Message boards zu installieren... :-)

Speichern Sie das Formular, das dann erscheint:

Beachten Sie das "CODE" Feld - es enthält zwei Befehle, die das Gästebuch erscheinen lassen - ein guter Grund, den "New content" Assistenten zu benutzen, weil in diesem Fall die Element schon gleich eingesetzt werden!

Natürlich können Sie auch einen Titel und andere Content Elemente zu der Seite hinzufügen - aber die Hauptfunktion ist das Einfügen dieses Elementes:

Und - voilà! - das Gästebuch ist da! (Ich habe schon mal einen Testeintrag geschrieben...)

Wo wird der Inhalt des Gästebuches gespeichert?

Wenn Sie Ihr Gästebuch verwalten möchten - um zum Beispiel unqualifizierte Einträge wie meinen dort oben zu löschen - klicken Sie sich einfach in das Page Modul der Seite mit dem Gästebuch und Sie sehen alle Einträge zusätzlich zum normalen Seiteninhalt aufgelistet:

Wie Sie die Einträge bearbeiten? Klicken Sie einfach auf das Symbol des Gästebuch-Eintrages:

Genauso funktioniert es auch beim Message Board (so wie wir es verwenden). Aber nicht jedes Plugin listet seine Elemente oder Einträge im Page Modul auf, deshalb sollten wir uns zu guter Letzt das List Modul ansehen, das eigentlich genau dafür, nämlich das Verwalten von Elementen, vorgesehen ist:

Das bringt mich noch auf einen anderen wichtigen Punkt - Gästebucheinträge sind genauso nur Datenbankeinträge in TYPO3 wie Seiten, Page Content Elemente, Benutzer usw.: Wir können sie bearbeiten, verstecken, löschen und sie kopieren/einfügen. Alles natürlich mit den Tools, die Sie bereits kennen - durchgängige Konzepte ... Sie werden sie bald lieben!

Sitemap

Ich werde nicht viel Zeit mit der Sitemap verbringen - das Prinzip kennen Sie nämlich bereits. Ein Content Element eines bestimmten Typs mit einigen zusätzlichen Einstellungen wird eingefügt:

Achten Sie allerdings auf das "Starting point" Feld - es bestimmt von welcher Seite ausgehend die Sitemap erstellt wird! Auch die anderen "Menu type:" Optionen benutzen diesen Wert. Anstelle der Sitemap können Sie auch andere "Link-Listen" einfügen, die auf der Seitenstruktur und ihrer Content Elemente basiert:

Am besten probieren jetzt Sie einige dieser Funktionen aus. Sie wissen ja, wo Sie schnell Hilfe finden:

Das News Plugin

Das News Plugin, das wir auf unserer Website verwenden, stammt aus der "mininews" Extension. Stellen Sie also sicher, dass diese installiert ist (Extension Manager):

Da sie bereits installiert ist können wir uns gleich ansehen, wie das Plugin verwendet wurde. Der wichtigste Unterschied zum Gästebuch ist, dass das mininews Plugin sowohl auf der Startseite (für Antexte oder auch Teaser) und auf der News Seite (Archiv + Detailansicht) verwendet wird!

Auf der Startseite werden nämlich immer die drei neuesten Newsmeldungen gezeigt:

Und wenn Sie auf den "[more...]"-Link klicken, werden Sie direkt auf die Newsseite geschickt, auf der natürlich die ganze Geschichte zu lesen ist:

Content Elemente im Backend

Auf der Startseite finden Sie dieses Content Element am Ende der Seite, wenn Sie sich die Seite mit dem Page Modul ansehen:

Der Inhalt sieht so aus:

Beachten Sie, dass zunächst einmal der "Listing mode" - eine Auswahlliste, die speziell in diesem Content Element verwendet wird - auf "Frontpage teaser" gesetzt wurde, so dass der Teaser und nicht das Archiv angezeigt wird. Zweitens wird das "Starting point" Feld benutzt um dem Plugin mitzuteilen, wo das Archiv - welches auch den kompeltten Artikel anzeigen wird - zu finden ist!

Auf der "News" Seite wird das gleiche Element eingefügt! Nur das "Listing mode" Feld unterscheidet sich von der Teaser-Seite:

Und wo werden die News Einträge gespeichert?

Nun, erinnern Sie sich noch einmal an das Gästebuch: News Einträge werden in TYPO3 genauso wie die übrigen Datenbank-Elemente behandelt. Der beste Weg, einen kompletten Überblick über die Elemente einer Seite zu bekommen ist das List Modul. Probieren wir's aus:

Und wie bearbeite ich die Einträge?

Und wie erzeuge ich einen neuen?

Die Screenshots sprechen für sich, denke ich...

Workflow für die News

Was aber, wenn ich möchte, dass jemand anderes einen Artikel für mich schreibt? Und was, wenn ich diesen Artikel redigieren möchte, bevor er veröffentlicht wird? Kann TYPO3 das?

Diese Situation ruft geradezu nach einem "Workflow". Später in diesem Tutorial wird eine Situation beschrieben die genauso ist wie die Situation hier. Also bleiben Sie dran!