[gelöst] Zeichenzahl im Anrisstext
Eingetragen von netwurst (108)
am 11.12.2008 - 13:17 Uhr in
am 11.12.2008 - 13:17 Uhr in
Hallo, ich habe folgendes Problem:
Im Block "Neueste Kommentare" wird ein Teaser des Kommentars und darunter das Datum ausgegeben. Dieser ist mir aber zu lang und ich will einen Zeilenumbruch verhindern.
Gibt es die Möglichkeit die maximale Zeichenzahl für diesen Anrisstext zu begrenzen?
Danke im Voraus.
- Anmelden oder Registrieren um Kommentare zu schreiben
teaser length
am 11.12.2008 - 13:25 Uhr
Moin!
Ja, unter admin/content/node-settings.
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Moin auch Stefan, danke für
am 11.12.2008 - 13:36 Uhr
Moin auch Stefan, danke für die schnelle Antwort.
Werds sofort ckecken.
Das wars leider auch nicht.
am 11.12.2008 - 13:40 Uhr
Das wars leider auch nicht. Hier wird die Zeichenzahl für den Anrisstext in den Nodes gesetzt, ich brauch die Zeichenzahl im Block.
Ist wahrscheinlich wirklich nicht so einfach, habe schon einige Foren durchsucht und nichts entsprechendes gefunden.
Und sorry, vergessen, es geht um Drupal 6.x.
theme comment block
am 11.12.2008 - 14:14 Uhr
Ok.
Ist das eigentlich der Standard-Block? Der sollte nämlich nur Links zu den Kommentaren anzeigen und nicht den Teaser.
Wenn es der Standard-Block ist, kannst die Ausgabe des Blocks in Deinem Theme überschreiben:
<?php
function <DeinThemeName>_comment_block() {
$items = array();
foreach (comment_get_recent() as $comment) {
$items[] = l($comment->subject, 'node/'. $comment->nid, array('fragment' => 'comment-'. $comment->cid)) .'<br />'. t('@time ago', array('@time' => format_interval(time() - $comment->timestamp)));
}
if ($items) {
return theme('item_list', $items);
}
}
?>
template.php
Ansonsten hängt es davon ab, womit der Block erstellt wurde.
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Ah der Stefan wieder...
am 11.12.2008 - 14:21 Uhr
Ah der Stefan wieder... Super!
Diese Variante hatte ich auch schon gefunden und ausprobiert, leider ohne Erfolg (war wohl für Drupal 5).
Allerdings hatte ich den cache wohl nicht gelöscht, also versuch ich es sofort nochmal und werde eine kurze Info hinterlassen.
Alos, ich habe den Code
am 11.12.2008 - 14:32 Uhr
Alos, ich habe den Code jetzt dementsprechend eingefügt, nichts passiert.
Ist aber meines Erachtens auch nicht verwunderlich, weil hier ja keine Änderung der Länge der Anrisstextes ersichtlich ist.
Ich denke mal dass fragment den gewünschten Parameter enthalten sollte. Da habe ich wenigstens noch etwas zum weiter suchen.
block
am 11.12.2008 - 14:45 Uhr
Bist Du Dir wirklich sicher, dass der Block nicht durch views oder Ähnliches generiert wird? Der Standard-Block zeigt nur die Links zu den Kommentaren an (comment.module #393). 'fragment' ist dabei die Id des Kommentars.
Der teaser muss irgendwo anders herkommen. Vielleicht wird die Funktion schon im Theme überschrieben...
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Sicher bin ich mir da nicht,
am 11.12.2008 - 15:00 Uhr
Sicher bin ich mir da nicht, aber ich habe die Views gecheckt und dort ist nichts dabei was auf den Block hindeuten würde. Ich habe den Block ja auch nur aktiviert, also sollte das schon das Standard-Teil sein.
Mir ist eben unklar, in welcher Variable die Zeichenzahl des Anrisstextes gesetzt wird. fragment ist es ja wie du schreibst nicht. Und dass die Funktion den Anrisstext generiert stimmt auf jeden Fall, wenn ich
<br\><br\>
setzte dann geht das auch. Nur eben die Anzahl der Zeichen...block
am 11.12.2008 - 15:06 Uhr
Echt seltsam. Schau mal in die Datei comment.module Zeile 393. Da findest du die Funktion
function theme_comment_block()
mit obigem Inhalt. Da wird eine Liste erstellt, die pro Eintrag nur den Betreff des Kommentars enthält und wann der Kommentar erstellt wurde. Genau so, wie hier auf der Seite. Der Teaser muss irgendwo anders herkommen.Poste doch mal die Funktion, in der Du
<br /><br />
eingefügt hast.Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Hoppla, mein Fehler. Ich
am 11.12.2008 - 15:06 Uhr
Hoppla, mein Fehler. Ich habe den Kpmmentar oben nochmal studiert und nun merke ich, dass ich mich wohl missverständlich ausgedrückt habe:
Ist das eigentlich der Standard-Block? Der sollte nämlich nur Links zu den Kommentaren anzeigen und nicht den Teaser.
Ich will die Zeichenzahl der Links begrenzen und habe das versehentlich Teaser genannt.
Aber diese Links sind eben auch Anrisstexte deren Zeichenzahl oder Ähnliches ja irgendwo festgelegt werden muss, und die würde ich gerne ändern.
Hat sich wohl grad
am 11.12.2008 - 15:13 Uhr
Hat sich wohl grad überschnitten...
Aber jetzt habe ich wieder einen neuen Ansatz: Wenn bei einem Kommentar kein Betreff angegeben wird, dann nimmt das System die ersten paar Buchstaben des Textes. Ich konnte noch nicht feststellen ob der Betreff auch auf eine bestimmte Länge gekürzt wird. Der Betreff wird dann als Link in dem Block dargestellt und das ist der Punkt an dem ich gerne die Zeichenzahl begrenzen würde.
Schon alleine für diesen Denkanstoß bin ich dir dankbar und werd mal sehen was da geht.
Block
am 11.12.2008 - 15:14 Uhr
argh
Aber diese Links sind eben auch Anrisstexte deren Zeichenzahl oder Ähnliches ja irgendwo festgelegt werden muss
Nein, das sind Titel (also der Betreff von nodes/Kommentaren). Und die haben erstmal nichts mit dem Inhalt/Teaser zu tun.
Also wieder zurück zur template.php:
<?php
function <DeinThemeName>_comment_block() {
$items = array();
foreach (comment_get_recent() as $comment) {
$subject = $comment->subject;
if (strlen($subject) > 20) {
$subject = substr($subject, 0, 20) . '…';
}
$items[] = l($subject, 'node/'. $comment->nid, array('fragment' => 'comment-'. $comment->cid)) .'<br />'. t('@time ago', array('@time' => format_interval(time() - $comment->timestamp)));
}
if ($items) {
return theme('item_list', $items);
}
}
?>
Das dürfte es tun.
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Ich habs grad mal getestet
am 11.12.2008 - 15:20 Uhr
Ich habs grad mal getestet und es ist tatsächlich so, dass der komplette Betreff als Link im Block dargestellt wird. Habe einfach mal
0123456789012345678900123456789012345678900123456789012345678900
als Betreff eingegeben. Weil die sonstigen Betreffs immer recht kurz gefasst ware kamm es mir do vor als wären das nur Anrisse.
Also müsste ich wohl eine funktion schreiben die die Länge der links begrenzt.
Danke Stefan für deine Hilfe, jetzt bin ich um einiges schlauer.
Schon wieder
am 11.12.2008 - 15:24 Uhr
Schon wieder überschnitten...
Ich denke auch das sollte es nun gewesen sein. Danke für die Funktion, man muss die Länge eben selbst begrenzen, aber so schnell hätte ich das nicht hingekriegt. Ist wie Weihnachten.
Sogar die 20 Zeichen sind
am 11.12.2008 - 15:51 Uhr
Sogar die 20 Zeichen sind optimal!
Da ich nicht weiß wie das geht kann das Thema jetz als "gelöst" markiert werden.
Als gelöst markieren
am 11.12.2008 - 16:02 Uhr
Geh zu deinem 1. Post und klicke Bearbeiten.
Dann kannst Du im Titel (Betreff) [gelöst] einfügen, ich würd's vorne hinschreiben geht aber auch hinten. (Das kannst Nur du als eröffner machen.)
Gruss Roger
Gruss Roger
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen (1. Posting vom Thema) <==> das erleichtert das finden von Lösungen
Und wie geht das jetzt für den Teaser?
am 20.04.2009 - 22:45 Uhr
Hi,
ich möchte die Zeichenanzahl der Teaser eines Bestimmten Inhaltstypen exakt festlegen. Mit den 200 Zeichen Einstellung des Drupal Cores, sind es mal mehr, mal weniger. Meistens nach dem ersten Punkt bzw. Absatz und nicht wirklich nach 200 Zeichen. Ausserdem möchte ich direkt an den Teaser einen weiterlesen Link, nicht unterhalb des Teasers.
Kann ich das über die node.tpl.php machen?
Also Teaser exakt 200 Zeichen lang oder bis zum nöchsten leerzeichen nach 200 Zeichen.
Etwa so
Teasertext mit exakt 200 Zeic[...]*weiterlesen*
bzw so
Teasertext mit 200 Zeichen + die Zeichen bis zum nächsten Leerzeichen.*weiterlesen*
Gruß