Zum Inhalt springen

ve_guestbook - Werte kürzen?

Erstellt am 22. Oktober 2009 · 1 Antwort · letzte Antwort am 26. Oktober 2009

Tags: Frage

Miato ·

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?

Miato ·

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?