[TYPO3-german] tt_news: Kniffelige TS-Frage

Raphael Weber mailinglisten at screensolutions.de
Thu Jul 1 16:38:35 CEST 2010


hi,

ich hab mir jetzt mit einer eigenen userClass beholfen. Die Methode 
bekommt eine als Konstante abgelegte Liste der relevanten Kategorie-UIDs 
als kommaseparierter String über die TypoScript-Konfiguration übergeben 
($catList) und liest ausserdem die UID des News-Datensatzes aus 
($this->cObj->data['uid']). Mit diesen beiden Parameter wird per 
SELECT-Query der Titel einer relevanten Kategorie zurückgegeben.

Soweit, so gut, ich hätte allerdings noch eine -wahrscheinlich sehr 
einfach zu bewerkstelligende- Idee der Optimierung: Statt die relevanten 
Kategorie aus der Konstante auszulesen, wäre es viel komfortabler, 
einfach die relevanten Kategorie-UIDs aus den Plugin-Einstellungen 
auszulesen. Aber wie komme ich (im PHP-Skript oder im TS) an die Werte, 
die in der News-Flexform unter Kategorie gespeichert sind?
Hat da jemand den heissen Tipp für mich?


[TS]
plugin.tt_news.displayList.title_stdWrap.append = COA
plugin.tt_news.displayList.title_stdWrap.append {
   10 = USER
   10 {
     userFunc = user_eigeneKlasse->ttnews_ListItemCat
     userFunc {
       catList = TEXT
       catList.value = {$kategorieliste}
     }
   }
   stdWrap {
     required = 1
     trim = 1
   }
}
[/TS]

[PHP]
function ttnews_ListItemCat ($content = '', $conf = array()) {
	$conf = $conf['userFunc.'];
	$category = array();
	$catList = explode(',',$this->cObj->cObjGetSingle($conf['catList'], 
$conf['catList.']));
	$catList = implode(',',$catList);
	
	$select_fields = 'tt_news_cat.title, tt_news_cat.uid';
	$from_table = 'tt_news_cat_mm, tt_news_cat ';
	$where_clause = 'tt_news_cat_mm.uid_local = 
'.intval($this->cObj->data['uid']);
	$where_clause .= ' AND tt_news_cat_mm.uid_foreign = tt_news_cat.uid';
	$where_clause .= ' AND tt_news_cat.uid IN ('.$catList.')';
	$groupBy = '';
	$orderBy = '';
	$limit = '0,1';
	$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery($select_fields, 
$from_table, $where_clause, $groupBy, $orderBy, $limit);
	$category = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res);
			
	return $category['title'];
}
[/PHP]

Grüße,
	raphael


More information about the TYPO3-german mailing list