Shortcoder: Eigene WordPress Shortcodes definieren und nutzen

Ein WordPress Shortcode ist im Prinzip nichts anderes als ein Makro: Man fügt den Shortcode in einen Beitrag, eine Seite oder ein Widget ein, und WordPress ersetzt den Shortcode durch den vordefinierten Inhalt, sobald die entsprechende Seite angezeigt wird. Dieser Inhalt kann aus reinem Text, aber auch aus HTML- oder JavaScript-Code bestehen. Shortcodes existieren seit WordPress 2.5, allerdings versteht WordPress von Haus aus nur audio, caption, embed, gallery und video; die meisten Shortcodes werden durch Plug-ins implementiert.

Weiterlesen …

Produktiver mit TYPO3 (10): Viele Seiten in einem Arbeitsgang anlegen

TYPO3: Create multiple pages wizard

Die typische Arbeitsteilung zwischen Agentur und Kunde besteht darin, dass die Agentur die Website-Struktur (das Seitengerüst) aufbaut und dass anschliessend der Kunde die noch leeren Seiten mit Inhalt befüllt. Dieser Artikel befasst sich mit der Frage, wie man das Anlegen der Website-Struktur effizienter gestalten kann als im Seitenbaum Seite um Seite einzeln einzufügen.

Standardmässig bringt TYPO3 den “Create Multiple Pages Wizard” mit, der im Functions-Modul untergebracht ist. Damit kann man bis zu 9 Subseiten unter der aktuell Seite einfügen, die wahlweise versteckt oder sichtbar angelegt werden. An sich eine simple Sache, aber bei grösseren Websites enorm zeitsparend.

TYPO3: Create page tree wizard

Durch die Extension wizard_crpagetree wird dieser Wizard in zwei entscheidenden Punkten verbessert. Erstens lässt das Textfeld beliebig viele Zeilen zu, somit können beliebig viele Seiten in einem einzigen Arbeitsgang angelegt werden. Und zweitens können nicht nur Seiten derselben Ebene, sondern ganze Seitenbäume angelegt werden (weshalb diese Funktion auch “Create Page Tree Wizard” heisst). Durch einen Tabulator, ein Leerzeichen oder einen Punkt eingerückte Zeilen werden als Subseiten interpretiert, und das funktioniert auch über mehrere Ebenen hinweg.

Besonders elegant wird die Geschichte, wenn man die gesamte Website-Struktur zuerst in einem Mindmapping-Program wie z.B. XMind definiert und dann den resultierenden Seitenbaum ganz einfach in den Wizard einkopiert: So erzeugt man innert Sekunden eine komplette Website-Struktur.

Produktiver mit TYPO3 (9): Eingeschleppte Textformatierungen verhindern

Eines der häufigsten Probleme im Umgang mit Content-Management-Systemen ist das Einschleppen von Textformatierungen. Kopiert man einen Text aus einem Word-Dokument oder von einer Web-Seite und fügt diesen im CMS-Editor ein, dann betrifft dies nicht nur den eigentlichen Text, sondern auch alle seine Formatierungsinformationen. Das kann im Einzelfall erwünscht sein, in der Regel geschieht es aber unbeabsichtigt. Und eigentlich sind “hart” formatierte Texte genau das, was man in einem CMS nicht will, denn die korrekte Formatierung soll das CMS sicherstellen (genau deshalb spricht man ja immer von der Trennung von Inhalt und Formatierung, welche ein CMS ermöglicht).

Bei TYPO3 gibt es verschiedene Ansätze, um diesem Problem zu begegnen. Die einfachste Methode besteht darin, den Text zuerst in einen reinen Texteditor (z.B. Notepad) einzufügen und dann von dort nochmals zu kopieren: Weil ein solcher Plain Text Editor keine Formatierungen kennt, wird er die Formatierungsinformationen verwerfen. Für Einzel- und Notfälle ist diese Methode gut genug, für den regelmässigen Einsatz jedoch nicht sehr komfortabel.

image

Ähnlich funktioniert auch eine zweite Methode, die ohne externen Editor auskommt: Indem man vor dem Einfügen den Rich Text Editor (RTE) im TYPO3-Backend temporär deaktivert, er hält man ein reines Textfeld. Fügt man den Inhalt der Zwischenablege jetzt ein, dann verliert er ebenfalls alle Formatierungsinformationen. Das Deaktivieren und Reaktivieren des RTE dauert allerdings einen Moment und stört deshalb ein bisschen den Arbeitsfluss.

imageDie dritte Methode besteht darin, den Text zunächst inklusive Formatierung einzufügen und erst anschliessend zu bereinigen. Der RTE von TYPO3 besitzt hierfür die Funktion “Remove Formatting”, die sich hinter dem Button mit dem Pinsel-Icon versteckt. Hier kann man nicht nur eingeschleppte Word- und HTML-Formatierungen entfernen, sondern auch spezielle Leerzeichen (welche den Zeilenumbruch verhindern), Bilder oder gleich sämtliche HTML-Tags.

imageFür einen erfahrenen Web-Publisher ist diese Methode auf jeden Fall interessant. Wer hingegen nur gelegentlich einige Seiten in TYPO3 aktualisieren soll, der wird diesen Dialog kaum verstehen (Was beispielsweise ist der Unterschied zwischen HTML- und Word-Formatierung?). Und dann wird eben auch das Resultat unter Umständen nicht dem entsprechen, was man erwartet.

Gerade wenn man es mit weniger geübten Content Managers zu tun hat scheint mir der Ansatz “verhindern statt beheben” besser. Statt also die Anwender darauf zu schulen, wie sie die leidigen Formatierungen loswerden, sollte man das System gleich so konfigurieren, dass das Einfügen von Formatierungen schlicht und einfach nicht möglich ist. Hierzu gibt es einerseits den TypoScript-Parameter RTE.default.enableWordClean, andererseits die Einstellungen für den HTML-Parser (RTE.default.proc). Ich kann hier nicht im Detail auf alle Optionen eingehen, verweise aber auf die Dokumentationen und Tutorials, die im TYPO3 Extensions Index verlinkt sind. Ein Nachteil dieser Methode sei allerdings nicht verschwiegen: Die Formatierungen werden erst beim Speichern des RTE-Inhalts in der Datenbank entfernt, unmittelbar nach dem Einfügen sind sie also noch vorhanden. Einen ungeübten Anwender wird es bestimmt verwirren, wenn sein Text nach dem Speichern plötzlich ganz anders aussieht als vorher.

image

Genau dieses Problem besteht nicht, wenn man die Exension ad_rtepasteplain einsetzt. Sie bewirkt, dass sich beim Einfügen jeweils eine separate Textbox öffnet, die wie ein Plain-Text-Editor wirkt, das heisst sie kann nur unformatierten Text aufnehmen. Gemäss Dokumentation funktioniert die Extension auch mit Internet Explorer 6 (und neuer), aber leider nicht mit Safari 4 und Opera 10. Solange die Content Managers jedoch keinen dieser Browser nutzen, ist diese Methode leicht verständlich und zuverlässig (weil man sie nicht vergessen oder umgehen kann).

Ich persönlich nutze allerdings nochmals eine andere Methode, nämlich PureText. Das kleine Programm wird auf Systemebene installiert und erlaubt das Einfügen ohne Formatierungen über eine wählbare Tastenkombination. Diese Methode hat für mich zwei Vorteile: Erstens kann ich sie selektiv einsetzen, d.h. wenn ich die Formatierungen übernehmen will, nutze ich CTRL+V, wenn ich sie hingegen löschen möchte, nutze ich WIN+V. Zweitens funktioniert das Prinzip nicht nur im RTE von TYPO3, sondern auf jeder Website und in jedem Programm. Der einzige Nachteil: PureText läuft nur unter Windows. Ich könnte mir aber vorstellen, dass es ähnlich Tools auch für den Mac gibt, z.B. Plain Clip (nicht getestet).

Produktiver mit TYPO3 (8): Viele Dateien hochladen

TYPO3: Upload-Assistent bis TYPO3 4.2.x

Viele Bilder, PDF-Dokumente oder ähnliche Dateien auf einen TYPO3-Server hochzuladen war bis vor kurzem eine mühselige Angelegenheit. In der Regel nutzte man den obigen Upload-Assistenten, dessen einziger Komfort darin bestand, dass man bis zu 10 Dateien auswählen und dann die gesamte Liste in einem Arbeitsgang hochladen konnte. Trotzdem musste man jede Datei einzeln über den Durchsuchen-Button selektieren, und ab einer dreistelligen Anzahl Dateien wurde die Prozedur endgültig zur Qual.

TYPO3: Flash-Uploader seit TYPO3 4.3

Seit TYPO3 Version 4.3 gibt es den Flash-Uploader (der nicht etwa so heisst, weil er Flash-Dateien hochlädt, sondern weil er in Flash implementiert ist). Der unscheinbare Dialog hat es in sich: Damit kann man endlich beliebig viele Dateien in einem einzigen Schritt selektieren und hochladen. Bei kleinen Dateien geht das so schnell, dass man es unter Umständen gar nicht mitbekommt, denn hochgeladene Dateien werden sofort aus der Warteschlange gelöscht, und am Schluss des Uploads wird der Dialog automatisch geschlossen.

Der Flash-Uploader kann vom einzelnen Benutzer in den User Settings deaktiviert werden. Tut er das, dann wird stattdessen wieder der alte Upload-Assistent angezeigt (was ich allerdings niemandem empfehlen würde). Vermisst jemand den Flash-Uploader, obwohl er TYPO3 4.3 oder neuer nutzt, dann sollte er die User Settings im Tab “Edit & Advanced Functions” überprüfen.

TYPO3: Flash-Uploader aktivieren in den User Settings

Was aber, wenn Sie noch mit TYPO3 4.2 oder älter arbeiten und im Moment nicht upgraden können? Zur Not kann man sich mit einem FTP-Client behelfen, über den man die Dateien direkt ins fileadmin-Verzeichnis schreibt. Allerdings muss man hierfür das TYPO3-Backend verlassen und auf seinem Rechner einen FTP-Client installiert haben. Ausserdem sollte man diese Methode nicht benutzen, sobald man den Digital Asset Manger (DAM) installiert hat, weil dieser von den hochgeladenen Dateien nichts mitbekommt und deshalb deren Metadaten nicht in der Datenbank speichern kann.

Eine Alternative stellt die Extension ameos_dragndropupload dar, die sowohl mit der Filelist als auch mit DAM funktioniert. Sie ermöglicht es, mehrere Dateien gleichzeitig per Drag-and-Drop hochzuladen. Technisch basiert diese Extension nicht auf Flash, sondern auf Java, d.h. man muss das Java Runtime Environment (JRE) auf seinem Rechner installiert haben.

TYPO3: Drag & Drop Mass Upload mit der Extension ameos_dragndropupload

Produktiver mit TYPO3 (7): Rekursives Kopieren und Löschen von Seiten

Wenn Sie im TYPO3-Backend eine Seite, welche Subseiten besitzt, kopieren oder löschen wollen: Was passiert dann?

Beim Kopieren wird standardmässig nur die ausgewählte Seite, nicht aber deren Subseiten kopiert. Das kann erwünscht sein – oder auch nicht. Falls man möchte, dass auch Subseiten automatisch mitkopiert werden, kann man dies in den Benutzereinstellungen ändern. Die entsprechende Einstellung heisst “Recursive Copy”.

Noch strikter ist TYPO3 beim Löschen von Seiten: Sind untergeordnete Seiten vorhanden, so erhält man schlicht eine Fehlermeldung:

TYPO3: Fehlermeldung beim Löschen einer Seite mit Subseiten

Auch dieses Verhalten lässt sich in den User Settings ändern, so dass Subseiten automatisch mitgelöscht werden (“Recursive Delete”).

TYPO3: User Settings für rekursives Kopieren und Löschen

Die Einstellmöglichkeiten sind beim rekursiven Kopieren etwas detaillierter: Dieses kann nicht nur bloss ein- oder ausgeschaltet, sondern auf eine bestimmte Anzahl Ebenen beschränkt werden. Wie sinnvoll das ist, bleibe dahingestellt – ich trage hier jeweils den Wert 100 ein, so dass ich auch bei komplexesten Websites sicher sein kann, dass immer der gesamte Teilbaum mitkopiert wird.

Das rekursive Löschen sollte man mit der notwenigen Vorsicht aktivieren: Natürlich kann man gelöschte Seiten in TYPO3 über den Papierkorb wiederherstellen, aber zumindest für ungeübter Benutzer ist diese Option gefährlich, weil man so leicht mit einem einzigen Mausklick ganze Websites löschen kann.

Produktiver mit TYPO3 (6): Mehrere Datensätze parallel editieren

TYPO3: Seitentitel mehrerer Seiten parallel bearbeiten im List-Modul

Etwas vom Langweiligsten im Leben eines Content Managers sind repetitive Aufgaben. Nehmen wir beispielsweise an, Sie müssen ein Dutzend Seitentitel ändern. Sie öffnen die Seiteneigenschaften, nehmen die Änderung vor, speichern und schliessen die Eingabemaske, öffnen die nächste Seite – und so fort.

Bei derartigen Aufgaben kennt TYPO3 die Möglichkeit, mehrere Datensätze parallel zu bearbeiten. Gehen Sie hierzu ins List-Modul und klicken Sie einmal auf den Tabellenkopf der gewünschten Tabelle (in unserem Beispiel “Page”), um nur diese Tabelle anzuzeigen. Dadurch verwandelt sich das Symbol rechts des Tabellentitels von einem Plus in ein Minus – zugegebenermassen keine Meisterleistung in Usability, aber man gewöhnt sich daran. Jetzt sehen Sie im Spaltenkopf “Pagetitle” ein Bleistiftsymbol, und wenn Sie dieses klicken, dann können Sie den Seitentitel sämtlicher Seiten in der Tabelle auf einen Schlag bearbeiten:

TYPO3: Seitentitel mehrerer Seiten parallel bearbeiten im List-Modul

Dieses Prinzip funktioniert übrigens nicht nur mit dem Seitentitel, sondern mit jedem Feld, das in der Tabelle angezeigt wird. Welche Felder dies sind, bestimmen Sie über die Auswahlliste direkt unterhalb der Tabelle:

TYPO3: Auswahl der anzuzeigenden Felder im List-Modul

Sie können sogar mehrere Felder parallel bearbeiten: Wenn Sie im Tabellenkopf genau hinschauen, werden Sie ganz links ein weiteres Bleistift-Icon finden, das alle aktuell in der Tabelle angezeigten Felder zur Bearbeitung öffnet.

Eine weitere Variante des parallelen Editierens führt über die Zwischenablage von TYPO3: Sobald nämlich ein Clipboard ausgewählt ist, kann man eine beliebige Anzahl von Datensätzen per Checkbox selektieren und dann per Bleistift-Icon zur Bearbeitung öffnen. In diesem Fall wird immer das komplette Flexform des Datensatzes angezeigt, so dass sämtliche Felder zugänglich sind.

TYPO3: Auswahl der zu editierenden Felder bei aktiviertem Clipboard

Zumindest Content-Elemente kann man übrigens auch im Page-Modul parallel editieren, indem man das Bleistift-Icon im Spaltenkopf (statt im Kopf des einzelnen Content-Elements) anklickt:

TYPO3: Alle Content-Elemente einer Seite bearbeiten im Page-Modul

Produktiver mit TYPO3 (5): Seiten verschieben und sortieren

TYPO3: Seiten verschieben oder kopieren per drag-and-drop Wenn man im TYPO3-Backend einzelne Seiten an eine neue Position verschieben möchte, dann gibt es im Seitenbaum eine etwas versteckte, aber durchaus brauchbare Drag-and-Drop-Funktion. Um im nebenstehenden Beispiel die Seite “Pro Montagna” hinter der Seite “Fine Food” zu positionieren verschiebt man erstere auf letztere. Solange man die Maustaste gedrückt hält, geschieht dabei nichts; sobald man aber die Maustaste loslässt, erscheint das abgebildete Menü, aus dem man die gewünschte Aktion auswählen kann. So lassen sich Seiten nicht nur verschieben, sondern auch kopieren.

TYPO3: Seiten sortieren im Functions-Modul

Falls man eine grössere Anzahl von Seiten in eine bestimmte Reihenfolge bringen möchte, dann empfiehlt sich ein Blick in das Functions-Modul. Dort gibt es den “Sort Pages Wizard”, der alle Subseiten der angewählten Seite nach Seitentitel, Untertitel, Datum des letzten Updates oder Erstellungsdatum sortiert. Das ist beispielsweise dann enorm praktisch, wenn man – wie im obigen Beispiel – ein Markenverzeichnis anlegen will, das alphabetisch sortiert werden soll.

Produktiver mit TYPO3 (4): Viele Datensätze desselben Typs anlegen

TYPO3: Datensatz speichern und neuen anlegen

Wenn man viele Content-Elemente (oder sonstige Datensätze desselben Typs) anlegen muss, dann gibt es einen schnelleren Weg, als jeden Datensatz zu speichern, zu schliessen und dann einen neuen zu erzeugen.

TYPO3: Save & New ButtonDer entscheidende Button steht direkt neben dem “Speichern & schliessen”-Button und trägt das grüne Plus-Symbol, das bei TYPO3 generell für das Anlegen eines neuen Elements steht. Er bewirkt, dass der aktuelle Datensatz gespeichert und zugleich ein neuer Datensatz desselben Typs geöffnet wird. Allerdings steht dieser Button meines Wissens standardmässig nicht zur Verfügung, sondern muss im User TSconfig wie folgt aktiviert werden:

options.saveDocNew = 1

Produktiver mit TYPO3 (3): Shortcuts und Open Documents benutzen

TYPO3: Shortcuts im Backend

Insbesondere wer nicht nur als normaler Content Manager, sondern als Administrator mit TYPO3 arbeitet, klickt sich im Verlaufe des Tages durch unzählige Backend-Screens. Häufig braucht es dabei mehrere Klicks, bis man am richtigen Ort ist – sei es, weil man den Seitenbaum aufklappen muss, sei es, weil ein Modul in Submodule unterteilt ist, sei es, weil man zuerst die Eingabemaske eines Datensatzes öffnen muss. Und oft macht man den gleichen Weg mehrfach, weil man zwischen zwei weit auseinanderliegenden Screens wechseln muss. Das ist zeitraubend und langweilig.

Bearbeitung eines Shortcuts im TYPO3-BackendWenn man häufig auf denselben Screen zugreifen muss, sollte man sich überlegen, einen Shortcut anzulegen. Shortcuts sind vergleichbar mit Lesezeichen bzw. Favoriten in einem Web-Browser und sind in der Kopfzeile des Backends in einem Ausklappmenü zugänglich. Um einen Screen als Shortcut zu speichern gibt es in der rechten oberen Ecke das Sternsymbol mit dem grünen Plus-Zeichen. Ist ein Shortcut einmal angelegt, kann man ihn im Shortcuts-Menü umbenennen (was manchmal notwendig ist, weil die automatisch erzeugte Beschriftung nicht immer sehr aussagekräftig ist) sowie einer Gruppe zuteilen (um das Menü zu gliedern).

Das Shortcuts-Menü kann über die User TSconfig in verschiedenen Punkten konfiguriert werden – es lohnt sich deshalb, einen Blick in die entsprechende Dokumentation zu werfen und nach “shortcuts” zu suchen. Zentral ist dabei options.enableShortcuts, womit man das Shortcuts-Menü als Ganzes aktivieren bzw. deaktivieren kann. Interessant ist auch options.shortcutGroups, mit dem man die zur Verfügung stehenden Gruppen (siehe oben) definieren kann. Zu beachten ist übrigens, dass die Shortcuts in älteren TYPO3-Versionen leicht anders funktionierten und dass deshalb einzelne TSconfig-Parameter unter TYPO3 4.4 nicht mehr greifen (z.B. options.shortcutFrame).

In der Handhabung ziemlich ähnlich ist ein weiteres Dropdown-Menü, das allerdings nur verfügbar ist, wenn man die Extension opendocs installiert hat. Es bietet einerseits die aktuell geöffneten Dokumente an, andererseits aber auch die zuletzt benutzten (aber bereits wieder geschlossenen) Dokumente.

TYPO3: Liste der offenen Dokumente im Backend

“Dokumente” meint in diesem Fall nicht etwa Dateien im fileadmin, sondern Seiten, Content-Elemente oder andere Datensätze. Und “geöffnet” ist ein Dokument so lange als man die Bearbeitungsmaske nicht explizit geschlossen hat (sondern auf einen anderen Screen gewechselt hat); zu beachten ist dabei, dass diese Dokumente deswegen für andere Benutzer nicht gesperrt sind.

Auch dieses Menü hat ein paar Besonderheiten. Bei geschlossenem Zustand kann man an der Zahl links des Icons ablesen, wieviele offenen Dokumente das Menü enthält. Und über das “Schliessen”-Symbol kann man offene Dokumente bei Bedarf aus der Liste entfernen.

Produktiver mit TYPO3 (2): Viele Datensätze/Dateien kopieren, verschieben oder löschen

TYPO3: List-Modul mit aktiviertem Clipboard

Wenn es darum geht, eine grössere Anzahl von Datensätzen oder Dateien zu kopieren, zu verschieben oder zu löschen, dann ist es höchst ineffizient, dies für jeden Datensatz (bzw. jede Datei) einzeln auszuführen. Zu diesem Zweck gibt es in TYPO3 nämlich ein spezielles Clipboard (deutsch: Zwischenablage). Es zu finden und seine Bedienung zu verstehen ist am Anfang vielleicht nicht ganz einfach, aber wenn man es einmal kennt, möchte man es nicht mehr missen.

Das Clipboard ist nicht überall im TYPO3-Backend vorhanden, sondern nur im List-Modul sowie im Filelist-Modul. Ausserdem muss man es über die Checkbox “Show clipboard” (deutsch: “Zwischenablage anzeigen”) explizit sichtbar machen. Und schliesslich muss man eines der drei durchnumerierten Clipboards anwählen, damit oben in der Listenansicht der Datensätze die entscheidenden Buttons und Checkboxen eingeblendet werden.

TYPO3 Zwischenablage (Clipboard)

Ist man allerdings einmal so weit, dann geht der Rest wie von selbst und sehr schnell. In der Listenansicht wählt man per Checkbox die zu bearbeitenden Datensätze und klickt dann im Spaltenkopf den Button für die gewünschte Operation. Allerdings gibt es keine separaten Buttons für das Kopieren oder Verschieben von Datensätzen, sondern nur einen einzigen, um die Datensätze auf das Clipboard zu übertragen. Ob diese dann kopiert oder verschoben werden, entscheidet sich erst beim Einfügen auf der Zielseite anhand des Dropdowns in der Zwischenablage: “Move Elements” (deutsch: “Elemente verschieben”) bzw. “Copy Elements” (deutsch: “Elemente kopieren”) heissen die entsprechenden Einstellungen.

Das Clipboard ist übrigens ausgesprochen gutmütig: Man kann nicht nur unterschiedliche Datensatztypen gemeinsam in die Zwischenablage übertragen, sondern auch von verschiedenen Ursprungsseiten. Sogar Datensätze aus dem List-Modul und Dateien (z.B. Bilder, PDF-Dokumente) aus dem Filelist-Modul können gemischt werden.

Übrigens kann man das Clipboard via User TSconfig auch minimal konfigurieren. Um zu verhindern, dass der Inhalt des Clipboards beim Logout automatisch gelöscht wird, setzt man die folgende Eigenschaft:

options.saveClipboard = 1

Zudem gibt es einen Parameter, um die Anzahl der verfügbaren Clipboards zu steuern. Wer mehr als die standardmässigen drei Clipboards zu brauchen glaubt, setzt hier einen höheren Wert; wer dagegen mit einem einzigen Clipboard gut zurecht kommt, wählt die folgende Einstellung:

options.clipboardNumberPads = 1

Fazit: Bezüglich Usability ist das Clipboard sicher nicht der Weisheit letzter Schluss. Trotzdem tut man sich einen grossen Gefallen, wenn man es in der täglichen Arbeit als Content-Manager einsetzt. Eine ausführliche (wenn auch englische) Anleitung zum TYPO3-Clipboard findet man übrigens hier. In der offiziellen TYPO3-Dokumentation gibt es sogar ein deutsches Tutorial, das allerdings schon spürbar älter ist.

css.php