Wie ihr hier unten sehen könnt, versuche ich hier Kategorien anzulegen.
Warum auch immer klappt das aber nicht.
Wenn ich mir das ganze ausgebe, bekomme ich bei den Unterkategorien keine Ausgabe. Der Titel ist immer “”.
Entferne ich das save() von $oCategory, bekomme ich die Namen der Unterkategorien angezeigt, allerdings wird nichts gespeichert.
Woran liegt das?! Überseh ich irgendwas essentielles?
foreach ($aResults as $firstLevelCat)
{
echo "now importing " . $firstLevelCat['title'] . "...
";
$randHash = md5(time());
$oCategory = oxnew('oxcategory');
$oCategory->setId($randHash);
$oCategory->oxcategories__oxtitle = new oxField($firstLevelCat['title']);
$oCategory->oxcategories__oxparentid = new oxField('oxrootid');
$oCategory->save();
// time for the next generation, prepare those statements.
$sSql2 = "SELECT `title` FROM `" . $this->categoryTable . "` WHERE pid = '" . $firstLevelCat['uid'] . "' AND deleted = '0' AND hidden ='0'";
$aResults2 = $this->db->getAll($sSql2);
// .. 2nd level categories
foreach ($aResults2 as $secondLevelCat)
{
echo " |->" . $secondLevelCat['title'] . "
";
$oCategory2 = oxnew('oxcategory');
$oCategory2->oxcategories__oxtitle = new oxField($secondLevelCat['title']);
$oCategory2->oxcategories__oxparentid = new oxField($randHash);
// $oCategory2->save();
}
}
Kurz geschrieben was ich machen will:
Ich muss aus einem fremden Shop die Kategorien importieren. Diese sind aufgeteilt in Über- und Unterkategorie.
In der 1. foreach-Schleife will ich nun also die Hauptkategorie anlegen.
Ich setze fix eine ID mit md5(time()); // ich weiß, ginge auch mit setId() -> gleicher effekt, schon probiert.
Nachdem ich also den Titel und die oxparentid gesetzt habe, speichere ich das ganze.
Der 1. Durchlauf klappt auch, dann wirds seltsam.
In der nächsten foreach erstelle ich also wieder eine neue Kategorie. Ich setze eine ID, vergebe Titel und für die parentid nehme ich die OXID der Überkategorie. Speichern, ende.
Irgendwie stimmt da aber etwas nicht, denn nur die 1. Kategorie wird angelegt und die anderen haben keinen Namen und keine parentid. WTF?
wenn ich das save() entferne, wie gesagt, bekomme ich die namen… halp