Hallo aemka,
ich denke dein Link geht absolut in die richtige Richtung! Ledier hab ichs aber noch nicht geschafft das die richtigen Inhalte angezeigt werden. Ich vermute das ich meine bisherige DB Abfrage und Verarbeitung stark verändern muss, noch blicke ich da nicht durch.
Meine Funktionen in der Extension rufen die DB Abfrage zum Beispiel so:
$rows = $this->getItemsFromTable("tx_aorealgallery_artist","uid,firstname,lastname,image,category"," AND category=6","lastname asc" ) ;
Aus der originalen Abfrage:
function getItemsFromTable($table,$searchStrg,$addStrg,$orderBy){
$lang = $GLOBALS['TSFE']->sys_language_uid;
$field = "hidden = 0 AND sys_language_uid = ".$lang.$addStrg;
$groupBy = "";
$limit = "";
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery($searchStrg,$table,$field,$groupBy,$orderBy,$limit);
$out = array();
while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
$out[] = $row;
}
return $out;
}
habe ich versucht diverse Variablen zu verteilen und so in die neue Variante eingesetzt:
function getItemsFromTable($mytable,$searchStrg,$addStrg,$orderBy){
$select = $searchStrg;
$table = $mytable;
// we try to get the default language entry (normal behaviour) or, if not possible, currently the needed language (fallback if no default language entry is available)
$where = '(sys_language_uid IN (-1,0) OR (sys_language_uid = ' .$GLOBALS['TSFE']->sys_language_uid. ' AND l18n_parent = 0))';
$where .= $addStrg;
// always (!) use TYPO3 default function for adding hidden = 0, deleted = 0, group and date statements
$where .= $GLOBALS['TSFE']->sys_page->enableFields($table);
$order = $orderBy;
$group = '';
$limit = '';
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery($select, $table, $where, $group, $order, $limit);
while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
// check for language overlay if:
// * row is valid
// * row language is different from currently needed language
// * sys_language_contentOL is set
if (is_array($row) && $row['sys_language_uid'] != $GLOBALS['TSFE']->sys_language_content && $GLOBALS['TSFE']->sys_language_contentOL) {
$row = $GLOBALS['TSFE']->sys_page->getRecordOverlay($table, $row,$GLOBALS['TSFE']->sys_language_content, $GLOBALS['TSFE']->sys_language_contentOL);
$out[] = $row;
}
}
return $out;
}
Momentan wird leider kein Datensatz ausgegeben...