Zum Inhalt springen

wt_directory Sortierung

Erstellt am 16. Juni 2009 · 1 Antwort · letzte Antwort am 17. August 2009

Tags: tt_address, PHP, Frage

sebbal ·

Hallo,

ich versuche gerade eine kleine Box im rechten Rand meiner Seite zu implementieren, die Ansprechpartner anzeigt und ich nutze dafür wt_directory. Jetzt taucht das Problem auf, dass ich, wenn ich im Backend zwei Namen dafür aussuche und einen über den anderen sortiere, das Frontend immer noch nach der ID von tt_address sortiert. Wozu brauche ich denn dann die Sortierung im Backend?

Ich habe jetzt in der class.tx_wtdirectory_pi1_list.php die stelle gefunden und dort wird die Datenbankabfrage so gemacht:

$this->query_pid = ' AND tt_address.uid IN ('.$this->pi_getFFvalue($this->conf, 'addresspool', 'mainconfig').')';

Ich kann jetzt ja nicht mit Order by nach dem Inhalt aus Flexform sortieren. Hat dafür jemand eine Lösung?

thehen ·

Hallo,
ich habe neulich so etwas ähnlich gemacht, damit im Frontend die Gruppen in der gleichen Reihenfolge wie im Backend ausgegeben werden. Kann natürlich genau so für die einzelnen Benutzer erweitert werden.

Hier mein Snippet aus der class.tx_wtdirectory_pi1_list.php:

...

if(!empty($catOrderValue)) {
	$selectOrder = 'FIND_IN_SET(tt_address_group.uid,\''.$catOrderValue.'\'), name ASC';
} else if(!empty($catOrderValue)) {
	$selectOrder = addslashes($this->conf['list.']['orderby']);
}

$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery ( // DB query
	$this->query['select'] = 'tt_address.*, tt_address.uid ttaddress_uid, tt_address_group.title tt_address_group_title, tt_address_group.uid tt_address_group_uid, tt_address_group.pid tt_address_group_pid',
	$this->query['from'] = 'tt_address LEFT JOIN tt_address_group_mm on (tt_address.uid = tt_address_group_mm.uid_local) LEFT JOIN tt_address_group on (tt_address_group_mm.uid_foreign = tt_address_group.uid)',
	$this->query['where'] = $this->filter.$this->query_pid.$this->query_cat.$this->cObj->enableFields('tt_address'),
	$this->query['groupby'] = 'tt_address.uid',
	$this->query['orderby'] = $selectOrder,
	$this->query['limit'] = $this->limit
);

...