Hallo Leute
Ich habe das Video-Tutorial zur Erstellung einer eigenen Extension anhand Kaspars CD-Album durchgearbeitet.
Dachte, das ist toll, ich könnte es gleich abwandeln für einen eigenen Bedarf!
Wie beim Tut habe ich eine Tabelle Products und eine Tabelle mit Kategorien.
Nun stecke ich aber fest, weil ich (anders als beim Album) einen Artikel (CD) habe, der mehrere Kategorien haben kann (1:n).
Per default vom Kickstarter wird ja wie folgt abgefragt:
function getFieldContent($fN) {
switch($fN) {
default:
return $this->internal['currentRow'][$fN];
break;
}
}
Das spuckt die UIDs der Kateogrien kommasepariert aus (<p>9,12,15</p>)
Wiederum anhand des Tut's habe ich den o.g. SWITCH um eine CASE Anweisung erweitert, damit der Titel der Category und nicht die UID ausgegeben wird:
case 'category':
if (!count($this->categoryCache)) {
$query = 'SELECT * FROM user_test_productcategory WHERE pid=121'.$this->cObj->enableFields('user_test_productcategory');
$res = mysql(TYPO3_db,$query);
while($row=mysql_fetch_assoc($res)) {
$this->categoryCache[$row['uid']]=$row;
}
}
return htmlspecialchars($this->categoryCache[$this->internal['currentRow']['category']]['name']);
Das klappt auch, wenn "category" nur eine 1:1 beziehung hat. Aber durch das ganze SQL/While Zeug bin ich verwirrt. :o Bin mit PHP ohnehin ned so fit - aber man fängt ja immer mal irgendwo an ;-)
Kann mir jemand helfen, den oberen Teil so abzuändern, dass die SELECT Anweisung, bzw. auch die While Bedingung für 1:n Beziehungen möglich wird? 🙂
Hoffe mein Problem ist klar geworden.
Vielen Dank im Voraus.
edit
BTW: die oben stehende SELECT anweisung habe ich mit PID=121 abgeändert, weil ich entgegen des Beispiels auf einen StorageFolder zugreifen will. Das klappt so auch... später möchte ich dieses '121' durch einen Wert $Conf-Array ersetzen... das nur zur Info.... o.O