Kürzung der Artikeltexte auf der Startseite
Kürzung der Artikeltexte auf der Startseite
Hallo,
ich habe das Problem, dass alle Einträge auf der Startseite in der vollen Länge angezeigt werden. Ich möchte gerne auf der Startseite jeden Artikel nur mit einer bestimmten Zeichenlänge anzeigen und dann mit "Artikel lesen" auf den gesamten Artikel verlinken.
Auf http://www.evilsun.dk/blog/ ist das bspw. schön gelöst.
Wer kann mir helfen????
Danke
Hagen
ich habe das Problem, dass alle Einträge auf der Startseite in der vollen Länge angezeigt werden. Ich möchte gerne auf der Startseite jeden Artikel nur mit einer bestimmten Zeichenlänge anzeigen und dann mit "Artikel lesen" auf den gesamten Artikel verlinken.
Auf http://www.evilsun.dk/blog/ ist das bspw. schön gelöst.
Wer kann mir helfen????
Danke
Hagen
Geht das auch anders?
Ich habe Autoren die das eh nicht blicken oder beherzigen, dass sie den Inhalt eines Beitrags in 2 verschiedene Felder eingeben müssen, damit nur ein Teil davon auf der Index-Seite erscheint.
Gibt´s ne andere Möglichkeit die Länge der Texte auf der Index-Seite zu begrenzen?
Oder kann ich den {$entry.body} auch komplett aus der Index-Seite entfernen, so dass man zu jeder Meldung nur den Titel hat der gleichzeitig auch der Link auf die Detailansicht der Nachricht ist?
Wenn ich das aus der "entries.tpl" rausnehme, fehlt es ja nicht nur auf der index-seite, sondern auch auf der Detailansicht des Beitrags, oder?
Ich habe Autoren die das eh nicht blicken oder beherzigen, dass sie den Inhalt eines Beitrags in 2 verschiedene Felder eingeben müssen, damit nur ein Teil davon auf der Index-Seite erscheint.
Gibt´s ne andere Möglichkeit die Länge der Texte auf der Index-Seite zu begrenzen?
Oder kann ich den {$entry.body} auch komplett aus der Index-Seite entfernen, so dass man zu jeder Meldung nur den Titel hat der gleichzeitig auch der Link auf die Detailansicht der Nachricht ist?
Wenn ich das aus der "entries.tpl" rausnehme, fehlt es ja nicht nur auf der index-seite, sondern auch auf der Detailansicht des Beitrags, oder?
-
garvinhicking
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Hi!
Ja, Du kannst mittels Smarty's "truncate" Funktion auch $entry.body beschneiden:
http://smarty.php.net/truncate
Du kannst also überall dort wo derzeit $entry.body ohne $entry.extended angezeigt wird nur noch $entry.body|truncate... einsetzen, und dort wo entry.extended steht dann $entry.body.
Viele Grüße,
Garvin
Ja, Du kannst mittels Smarty's "truncate" Funktion auch $entry.body beschneiden:
http://smarty.php.net/truncate
Du kannst also überall dort wo derzeit $entry.body ohne $entry.extended angezeigt wird nur noch $entry.body|truncate... einsetzen, und dort wo entry.extended steht dann $entry.body.
Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
das funktioniert irgendwie nicht richtig.garvinhicking wrote:Hi!
Ja, Du kannst mittels Smarty's "truncate" Funktion auch $entry.body beschneiden:
http://smarty.php.net/truncate
Du kannst also überall dort wo derzeit $entry.body ohne $entry.extended angezeigt wird nur noch $entry.body|truncate... einsetzen, und dort wo entry.extended steht dann $entry.body.
Viele Grüße,
Garvin
Ich habe in der entries.tpl nun folgendes geschrieben:
Code: Select all
<div class="serendipity_entry_body">
{$entry.body|truncate:100}
</div>
{if $entry.is_extended}
<div class="serendipity_entry_extended"><a id="extended"></a>{$entry.body}</div>
{/if}lso gibt´s für meine Beiträge ja kein "extended".
-
garvinhicking
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Hi!
Nutze
Grüße,
Garvin
Nutze
Code: Select all
{if $entry.is_extended}
<div class="serendipity_entry_body">
{$entry.body}
</div>
{else}
<div class="serendipity_entry_body">
{$entry.body|truncate:100}
</div>
{/if}
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
das hilft leider auch nichts...wie gesagt, im "extended body" steht ja nichts, meine Autoren füllen ja immer nur das erste Textfeld aus. D.h. $entry.is_extended trifft ja nie zu, die Beiträge sind ja nie "extended". Mit dem obigen Code habe ich wieder nur abgeschnittene Beiträge, sowohl auf der Index, als auch auf der Detailseite. Das Problem scheint mir zu sein, dass sowohl index-seite als auch detailseite die darstellung der Beiträge aus der gleichen .tpl-datei ziehen, nämlich der entries.tpl...garvinhicking wrote:Hi!
Nutze
Grüße,Code: Select all
{if $entry.is_extended} <div class="serendipity_entry_body"> {$entry.body} </div> {else} <div class="serendipity_entry_body"> {$entry.body|truncate:100} </div> {/if}
Garvin
wie mache ich der entries.tpl klar, dass sie einmal nur einen teil der nachricht anzeigen soll (nämlich auf der index-seite) und einmal die komplette nachricht (nachdem man auf den Titel geklickt hat).
Last edited by jorainbo on Sun Aug 06, 2006 1:54 pm, edited 1 time in total.
-
garvinhicking
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Hi!
Hast Du den Code ausprobiert? Denn da steht nichts von extended body in meinem Code.
Wenn der Fall $is_extended eintritt, wird ein Eintrag in voller Ansicht gezeigt, dann darf nicht truncated werden. Im Else-Fall wird der Eintrag in der Übersicht gezeigt, da muss truncated werden.
Viele Grüße,
Garvin
Hast Du den Code ausprobiert? Denn da steht nichts von extended body in meinem Code.
Wenn der Fall $is_extended eintritt, wird ein Eintrag in voller Ansicht gezeigt, dann darf nicht truncated werden. Im Else-Fall wird der Eintrag in der Übersicht gezeigt, da muss truncated werden.
Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
klar hab ich´s ausprobiert und reinkopiert, aber "is_extended trifft ja nicht ein, denn die Message ist nicht extended und wenn ich auf den Titel klicke wird ja auch keine "extended" version geöffnet? Oder steh ich auf der Leitung?garvinhicking wrote:Hi!
Hast Du den Code ausprobiert? Denn da steht nichts von extended body in meinem Code.
Wenn der Fall $is_extended eintritt, wird ein Eintrag in voller Ansicht gezeigt, dann darf nicht truncated werden. Im Else-Fall wird der Eintrag in der Übersicht gezeigt, da muss truncated werden.
Viele Grüße,
Garvin
-
garvinhicking
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Hi!
Probier mal $is_single_entry anstelle von $is_extended?
Viele Grüße,
Garvin
Probier mal $is_single_entry anstelle von $is_extended?
Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Code: Select all
{if $entry_id == false}
{$entry.body|truncate:600:"..."}
{elseif $entry_id != false}
{$entry.body}
{/if}
aber dann wäre in meinem falle noch das problem, dass bilder und html tags im eintrag sind, die mit gecutet werden könnten...
-
garvinhicking
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Hi!
So ein Parser ist sehr großer Aufwand, ich glaube dass so etwas auch noch keiner geschrieben hat.
Warum kannst du nicht die gedachte manuelle Trennung von "Eintrag" und "Erweiterter Eintrag" nutzen?
Viele Grüße,
Garvin
Richtig, das Problem kann man so einfach nicht umgehen, dafür müsste man einen vollständigen HTML-Parser als smarty-Modifier programmieren, der schaut welche HTML-Tags man kürzen/trennen darf, und welche nicht. Z.B. dürfte man ein "<div>" nicht trennen ohne das passende "</div>", ein "<a href>" nicht ohne "</a>".aber dann wäre in meinem falle noch das problem, dass bilder und html tags im eintrag sind, die mit gecutet werden könnten...
So ein Parser ist sehr großer Aufwand, ich glaube dass so etwas auch noch keiner geschrieben hat.
Warum kannst du nicht die gedachte manuelle Trennung von "Eintrag" und "Erweiterter Eintrag" nutzen?
Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/