node afkappen na maximaal aantal tekens

Beste mensen,

ik heb door middel van een view een soort van nieuws systeem gemaakt en ik wil dat de content afgekapt wordt naar een bepaald aantal tekens (maximaal 100 fzo)

is hier een makkelijke manier voor (ik gebruik Cusom Content Templates voor de stijl van een nieuws bericht)

Eerst en vooral, als je views gebruikt, kan je bij je veld aangeven 'maximum aantal karakters' te nemen (Trim). (view, admin, dan bij de fields, op het veld drukken en onderaan in het detail dit aanduiden).

Wil je in je tpl file dit zelf doen, maak een functie die dit doet, en gebruik deze functie die dan het aantal tekens bepaald.

Ik geloof dat er een drupal functie voor bestaat, maar kan er niet direct opkomen.

Hier een functie, maar deze zal een woord in 't midden afbreken als aantal chars bereikt is. Je kan dit oplossen door bij de afgekapte tekst terug te gaan tot je een spatie hebt en daar de puntjes zetten.


<?php
// kan je in je template.php zetten bv. de mytheme wijzig je dan in je themename
function mytheme_summarise($text, $length = 150) {
$orig = $text;

$text = trim(str_replace(array("\n", "\r"), ' ', strip_tags($text)));
$text = trim(substr($text, 0, $length));
$lastchar = substr($text, -1, 1);

if (preg_match('/[^0-9A-Za-z\!\?]/', $lastchar)) {
$text = substr($text, 0, -1);
}
if ($lastchar != '!' and $lastchar != '?') {
$text .= '...';
}
if (strlen($text) > strlen($orig)) {
return $orig;
} else {
return $text;
}
}
?>

Hopelijk heb je hier wat aan, goe weekend,
Fossie

Actuele inhoud

09 feb 2012

08 feb 2012

07 feb 2012

06 feb 2012

05 feb 2012

04 feb 2012