Kürzung der Artikeltexte auf der Startseite

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
Fisbeck
Posts: 2
Joined: Wed Mar 29, 2006 8:32 am

Kürzung der Artikeltexte auf der Startseite

Post by Fisbeck »

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
DarKRaveR
Regular
Posts: 20
Joined: Wed Mar 29, 2006 7:35 am
Location: FFM, Germany

Post by DarKRaveR »

Du solltest eigentlich bei Eintrag erstellen eine Box für den Text haben, mit Titel Eintrag (Hier wäre Aufmacher besser).

Weiter unten folgt eine Box mit Erweiterter Eintrag ...
Fisbeck
Posts: 2
Joined: Wed Mar 29, 2006 8:32 am

Post by Fisbeck »

Danke... Das war einfach zu einfach... Jetzt weiss ich endlich auch, wofür die Box "Erweiterter Eintrag" da ist... :roll:

Hagen
DarKRaveR
Regular
Posts: 20
Joined: Wed Mar 29, 2006 7:35 am
Location: FFM, Germany

Post by DarKRaveR »

Bitte, ich finde die Bezeichnungen auch etwas (arg) unglücklich, aber nicht nur an der Stelle ...
:?
jorainbo
Regular
Posts: 64
Joined: Thu Nov 03, 2005 5:07 pm

Post by jorainbo »

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?
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

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
# 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/
jorainbo
Regular
Posts: 64
Joined: Thu Nov 03, 2005 5:07 pm

Post by jorainbo »

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
das funktioniert irgendwie nicht richtig.

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}
Auf der Index-Seite zeigt er mir das nun richtig an, aber auf der Detailseite der Nachricht, nachdem ich auf den Titel geklickt habe, kürzt er mir den Inhalt nun genauso ab. Ist ja eigentlich logisch, denn ich habe ja keinen "extended" Bereich, die Autoren haben ja nur in der ersten Textbox was eingetragen, nicht in der extended entry textarea.
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:

Post by garvinhicking »

Hi!

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}
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/
jorainbo
Regular
Posts: 64
Joined: Thu Nov 03, 2005 5:07 pm

Post by jorainbo »

garvinhicking wrote:Hi!

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}
Grüße,
Garvin
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...

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:

Post by garvinhicking »

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
# 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/
jorainbo
Regular
Posts: 64
Joined: Thu Nov 03, 2005 5:07 pm

Post by jorainbo »

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
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
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

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/
jorainbo
Regular
Posts: 64
Joined: Thu Nov 03, 2005 5:07 pm

Post by jorainbo »

garvinhicking wrote:Hi!

Probier mal $is_single_entry anstelle von $is_extended?

Viele Grüße,
Garvin

jau....so passts...super, vielen Dank

Jorainbo
sandman23
Posts: 1
Joined: Mon Mar 26, 2007 2:41 pm

Post by sandman23 »

Code: Select all

	{if $entry_id == false}
		{$entry.body|truncate:600:"..."}
	{elseif $entry_id != false}
		{$entry.body}
	{/if}
so gehts übrigens auch...

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:

Post by garvinhicking »

Hi!
aber dann wäre in meinem falle noch das problem, dass bilder und html tags im eintrag sind, die mit gecutet werden könnten...
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>".

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/
Post Reply