Hallo,
ich hab' eine Frage:
Das ve_guestbook wird normal angezeigt. Die Leute können also Vor- und Nachnamen eintragen, E-Mail-Addi etc.
Bei der Listenansicht wäre es aber nett und aus datenschutzrechtlichen Bedenken auch gut, wenn ich den Nachnamen kürzen könnte. Damit statt Sabine Leutheusser-Schnarrenberger eben nur Sabine L. steht und die Person nicht sofort identifizierbar ist.
Geht das irgendwie?
Im php-code habe ich die Function cutDown gefunden, die wohl sowas schon machen könnte:
/**
* Cutting down a string
*
* @param string $text: String that has to be cut down
* @return string Shorten string
*/
function cutDown($text) {
if ($this->config['wordcut'] < 1)
return $text;
if (strlen($text) <= $this->config['wordcut'])
return $text;
$splitted_words = explode(' ', $text);
if (is_array($splitted_words) && count($splitted_words)>0 ) {
$cutwords = array();
foreach ($splitted_words AS $word) {
if (strlen($word)>$this->config['wordcut'])
$cutwords[] = substr($word, 0, $this->config['wordcut']) . '[..]';
else
$cutwords[] = $word;
}
return implode(' ', $cutwords);
}
else
return $text;
}
Die Funktion wird z. B. aufgerufen, um generell lange Wörter zu kürzen (die ein CSS-Layout sprengen könnten). Und um den Teaser im Teaser-Modus zu kappen.
Die würde ich gern jetzt für den Nachnamen haben ;-)
Kann mir da jemand auf die Sprünge helfen?
Ich habe das eben selbst eingefügt. Wer das noch wissen möchte, hier sind meine Schnipsel:
Ich habe dazu die Datei pi1/class.tx_veguestbook_pi1.php angepasst und das sollte man wohl nicht?
Die kleine Funktion sieht so aus:
/**
* Cropping a string (in this case used for the surname)
*
* @param string $sname: String that has to be cropped
* @return string Shorten string
*/
function cutS($sname) {
if (strlen($surname) > $this->config['surnamecut'])
$wordcrop = substr($sname, 0, $this->config['surnamecut']).'...';
else
$wordcrop = $sname;
return $wordcrop;
}
Damit kann man im TS-Setup-Template einen Wert nach diesem Muster einfügen:
surnamecut = 2
Dann muss bei der List-Ausgabe der Einträge diese Funktion auch am entsprechenden Feld aufgerufen werden:
In der Funktion (gleiche Datei) function getItemMarkerArray($row) muss erweitert werden:
function getItemMarkerArray($row) {
$markerArray['###GUESTBOOK_SURNAME###'] = $this->cutS($row['surname']);
Im Original wird dort die Funktion cutDown aufgerufen, die habe ich ersetzt, weil sie nicht mehr gebraucht wird.
In der function init($conf) muss nun noch der Wert aus dem TS-Setup-Feld eingetragen werden, sonst kann der Wert nicht ausgelesen werden. Dort muss also eine Zeile hinzugefügt werden:
//Crop the surname
$this->config['surnamecut'] = $this->conf['surnamecut'];
Jetzt werden alle Nachnamen in der Listen-Ansicht des Gästebuchs abgekürzt auf die Zeichenzahl im setup-Feld und drangehangen ein paar Punkte...
So, das ist natürlich alles nicht update-sicher!
Wie macht man das richtig?