Hallo zusammen,
ich bastel gerade aufgrund der dam_demo Extension an einer eigenen Index-Regel, die bei jedem indexierten File die Keywords in DAM-Kategorien umwandeln soll (das geht bereits) und dann auch gleich in eben diese Kategorien kategorisieren soll.
Hierfür möchte ich einen einfachen Eintrag in die tx_dam_mm_cat hinzfügen, was NICHT funktioniert.
function processMeta($meta) {
$keywords = explode(',',$meta['fields']['keywords']);
for($i = 0; $i < count($keywords); $i++) {
$query = $GLOBALS['TYPO3_DB']->exec_SELECTquery('COUNT(*) as anzahl', 'tx_dam_cat', ' title = "'.$keywords[$i].'"', '', '');
$res = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($query);
if($res['anzahl'] == 0) {
# create cat
if($keywords[$nxs] != '' ) {
$insertFields = array('title' => $keywords[$i],'pid' => 2, 'parent_id' => 1, 'tstamp' => time(), 'crdate' => time(), 'cruser_id' => $BE_USER->user['uid'] );
$query = $GLOBALS['TYPO3_DB']->exec_INSERTquery('tx_dam_cat ',$insertFields);
$catId = $GLOBALS['TYPO3_DB']->sql_insert_id();
}
} else {
# get uid from cat with this keyword-title
$qu = $GLOBALS['TYPO3_DB']->exec_SELECTquery('uid', 'tx_dam_cat', 'title = "'.$keywords[$i].'"', '', '');
$catIdRes = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($qu);
$catId = $catIdRes['uid'];
}
$insertCatRelation = array('uid_local' => $meta['fields']['uid'], 'uid_foreign' => $catId);
$catQuery = $GLOBALS['TYPO3_DB']->exec_INSERTquery('tx_dam_mm_cat', $insertCatRelation);
$meta['fields']['description'] = 'file: '.$meta['fields']['uid'].' catId: '.$catId.' '.$insertQuery;
}
return $meta;
}
Ich habe auch schon den Query per ->sql_query(derquery) versucht (geht auch nicht), aber hier den exakt gleichen Query ins phpmyadmin eingefügt - hier gehts dann.
Was auch imho SEHR komisch ist, wenn ich bei der Übergabe der DAM-File-uid
$insertCatRelation = array('uid_local' => $meta['fields']['uid'], 'uid_foreign' => $catId);
ein PLUS-eins hinzufüge,
$insertCatRelation = array('uid_local' => $meta['fields']['uid']+1, 'uid_foreign' => $catId);
dann wird der Datenbankeintrag erzeugt, aber eben mit falscher uid...
Ich habe auch schon den Variablentyp der uid gezielt in integer UND string gesetzt, ohne Erfolg.
Vielleicht kann mir ja hier jemand helfen ??
Danke schonmal fürs Lesen der Frage,
Stefan.