Textkürzen leicht gemacht
von Hannes am 19.11.2010 in My Modx mit 0 Kommentaren
Tweet
Introtexte sind wertvoll, soll eine Ressource schlagkräftig eingeleitet werden. Es kann ab und an passieren, dass trotzdem der Introtext etwas zulang gerät und nicht mehr gut in eine Liste oder Übersicht passt. Was nun? Hierfür gibt es das Snippet namens "Truncate":
Truncate: Texte abschneiden
Dann lasst uns loslegen. Zunächst müssen wir ein neues Snippet unter "Elemente" mit dem Namen "truncate" anlegen und folgenden Code einfügen:
<?php
/* ----------
parameters:
$what - Text zum Kürzen
$len - Länge des ausgegebenen Textes
---------- */
if (strlen($what) > $len) {
$what = preg_replace('/^(.{' . $len . ',}? ).*$/is', '$1', $what);
}
return $what;
Für einen Aufruf gilt das Übliche in Modx. Als Parameter existieren &what=`` und &len=``. Ersteres gibt, was welcher Text denn gekürzt werden soll. Das Zweite gibt an, ab wieviel die Zeichen schluss ist. Der Vorteil dabei ist vorallem: Ein Wort wird nicht einfach mittendrin abgeschnibbelt. Stattdessen geht truncate ein Wort zurück und gibt dieses als Letztes komplett aus. Ein Beispiel soll das Ganze nocheinmal verdeutlich:
[[!truncate? &what=`[[+introtext]]` &len=`90`]]
In diesem Beispiel wird der Introtext von truncate ab 90 Zeichen geschnitten. Wichtig dabei ist, dass in einigen verschachtelten Aufrufen anstatt einem Introtexte sind wertvoll, soll eine Ressource schlagkräftig eingeleitet werden. Es kann ab und an passieren, dass trotzdem der Introtext etwas zulang gerät und nicht mehr gut in eine Liste oder Übersicht passt. Was nun? Hierfür gibt es das Snippet namens "Truncate": ein erscheinen muss, siehe z.B. getResources. That's it!












