Zum Inhalt springen

T3BLOG: Listenansicht / Text kürzen?

Erstellt am 18. März 2014 · 4 Antworten · letzte Antwort am 21. März 2014

Tags: Blog, TYPO3 4, Frage

Unbekannter Benutzer ·

Ich geb's auf, ich find's nicht:

Ich verwende T3BLOG und es läuft fein, konnte bis jetzt alles anpassen, was ich brauche, bis auf eines:

Ich möchte in der Listendarstellung nicht den gesamten Blogtext haben, sondern nur einen Teil - entweder eine bestimmte Zeichenanzahl (cropHTML würde das machen), oder zB nur das erste Content-Element.

Wie schaffe ich das? Die Dokumentation gibt da nichts her.

Ich fühle mich grad ganz schön blöd... Danke!

Unbekannter Benutzer · · Beste Antwort

Nach 2 Tagen und Googeln komme ich auf folgende "Lösung"-und-eigentlich-Nicht-Lösung:

1) das Cropen wäre eigentlich im Code implementiert. Einfach in den Blogtext ###MORE### reinschreiben, dort wird abgeschnitten, plus ein Link "More" dran.

--> führt zu folgendem Problem:

1a) Es wird falsch abgeschnitten: ca. 5 Buchstaben vom vorherigen Text verschwinden, und schließende tags (</p> und </div> ) fehlen. Wenn man stattdessen fünf Leerzeichen hinschreibt, ist das Endergebnis überhaupt erratisch - ein Teil des Markers steht plötzlich im Klartext drin. - hat vermutlich damit zu tun, dass die Extension "crop" verwendet statt "cropHTML" (Typo3 wandelt Leerzeichen am Satzende in &nbsp; um), aber ich bin zuwenig Programmierer, um das mit Sicherheit sagen zu können.

1b) Es geht, wenn der ###MORE###-Divider am BEGINN eines zweiten, neuen content-Elements steht (oder als eigenes Content-Element). Dann ist die Lösung wirklich sauber. Ein diesbezüglicher "Gehtnicht"-Thread ist outdated, weil der Bug (dass ###MORE### nicht am Anfang des Content-Elements stehen darf) ist behoben (siehe http://forge.typo3.org/issues/9576 ).

Das Problem an der Sache: Die Blogposter müssen sich strikt an diese Regel halten: ###MORE nur am Beginn eines neuen Content-Elements...

2) Wenn einem das zu deppert ist, dann könnte man das croppen natürlich automatisieren. Das Problem ist: Wie komme ich an den content code heran, um ihn selbst zu croppen? Folgende Lösung wird dafür kolportiert (u.a. hier: http://forum.typo3.org/index.php/t/192009 )

[globalVar = GP:tx_t3blog_pi1|blogList|showUid<1]
tt_content.text.20.stdWrap.crop = 500 | &nbsp;...&nbsp;[weiter] | 1
[global]

Ein Kommentator hat das mal mit "dirty, but works" beschrieben. Ersteres stimmt jedenfalls, zweiteres muss in Abrede gestellt werden, denn damit komme ich in eine Lawine an weiteren Problemen:

2a) das Crop gilt für ALLE Text-Objekte auf dieser Seite - wer also noch anderen Content auf der Seite hat, fährt ein.

2b) Das Crop gilt für jedes Inhaltsobjekt des Blogs. Um das zu lösen, müsste ich den Output auf das erste Inhaltselement beschränken, und das geht so:

plugin.tx_t3blog_pi1.myblog.widget.blogList.listItem.10.10.20.10.select.max = 1

2c) ... was in das nächste Problem stolpern lässt: Wenn der erste Blogeintrag kürzer ist als die Crop-Länge, dann fehlt der "Weiterlesen"-Link. Der ließe sich mit COA wiederhstellen (Code gibts hier: #9302611), aber wenn der Blogeintrag länger ist, dann gibts zwei "Weiterlesen"-Links - auch verkehrt.

Also in Summe: Das ist alles nix.

3) Bleibt als einzige ernsthaft zu erwägende Lösung (die nicht davon ausgeht, dass die Blog-PosterInnen genaue Regeln befolgen wie "###MORE### nur am Anfang eines Content-Objekts" folgende:

3a) Beschränken des Outputs auf das erste Inhaltselement (siehe code 2c)
3b) Extra eingefügter "Weiterlesen"-Link als content-Objekt nach dem Text, und den Code gibts hier: #9302611
3c) Befolgen der Regel beim Bloggen: Erstes Inhaltselement ist der Teaser, alle weiteren sind content.

4) Könnte man bitte dieses Problem irgendwie sauber programmiertechnisch lösen, so dass sich BloggerInnen nicht permanent den Kopf darüber zerbrechen müssen, wie sie jetzt posten?

Puuh, danke!

jenses ·

Es gibt seit mindestens TYPO3 4.5 die stdWrap-Eigenschaft cropHTML,
die macht ungefähr genau das, was der Name andeutet - berücksichtigt beim croppen geöffnete HTML-Tags, schließt diese wieder, usw.
Ein Blick in die TSRef erspart hunderte guggle-Suchen 🙂

Unbekannter Benutzer ·

Es gibt seit mindestens TYPO3 4.5 die stdWrap-Eigenschaft cropHTML

Ja schon, aber die löst die Probleme nicht:

1) das croppen über ###MORE### ist im Quellcode der Extension und croppt eben nicht sauber: Der Marker wird nicht unter allen Bedingungen sauber gefunden und ausgeschnitten, und die Tags werden nicht sauber geöffnet und geschlossen.

2) das Croppen über allgemeine Bedingung (wurscht ob über crop oder cropHTML) croppt ALLE tt_content-Objekte auf der Seite einzeln, also...
a) jedes tt_content-Objekt eines Postings einzeln
b) alle anderen tt_content-Objekte auf der Seite (zB in anderen Spalten), die gar nicht zum Blog gehören.

Ich finde immer noch meine obenstehende Lösung als die sauberste - bitte Gegenstimmen!

jenses ·

Habe mir jetzt mal die t3blog-Extension angeschaut -
also, die benutzt ja bereits cropHtml, so vorhanden.
Allerdings erfolgt hinterher noch eine Stringersetzung, abhängig davon, ob ein regulärer Ausdruck wahr ist. Da würde ich dann ansetzen - eventuell funktioniert diese Ersetzung nicht mit deiner HTML-Template-Struktur zusammen und liefert Mist.
Es spricht ja nichts dagegen, die entsprechende Funktion für deine Seite zu überschreiben,
gepflegt wird t3blog offensichtlich eh nicht mehr.