private function write($i_lft, $i_rgt, $i_id) { // fetch the source column $s_query = "SELECT * FROM `catalogs` WHERE `catalog_id` = '" . $i_id . "'"; if (!($i_result = mysql_query($s_query))) { echo "<pre>{$s_query}</pre>\n"; throw new Exception(mysql_error()); } $a_source = array(); if (mysql_num_rows($i_result)) { $a_source = mysql_fetch_assoc($i_result); } // root node? label it unless already labeled in source table if (1 == $i_lft && empty($a_source['name'])) { $a_source['name'] = 'ROOT'; // return; } $catalog = Catalogs::findOne($i_id); if (is_null($catalog)) { // return; $catalog = new Catalogs(); $catalog->detachBehaviors(); $catalog->name = $a_source['name']; $catalog->lft = $i_lft; $catalog->rgt = $i_rgt; $catalog->save(false); } else { // каталог нашли, обновим индексы $catalog->detachBehaviors(); $catalog->name = $a_source['name']; $catalog->lft = $i_lft; $catalog->rgt = $i_rgt; $catalog->save(false); } }
public static function SaveCatalog($catalogXML) { $catalog = Catalogs::findOne($catalogXML['id']); if (is_null($catalog)) { // создаем запись каталога $catalog = new Catalogs(); $catalog->detachBehaviors(); $catalog->catalog_id = $catalogXML['id']; $catalog->id_parent = $catalogXML['id_parent']; $catalog->name = $catalogXML['name']; $catalog->description = $catalogXML['description']; $catalog->level = $catalogXML['level']; // $catalog->root = $catalogXML['root']; $catalog->save(false); } else { // обновляем запись каталога $catalog->detachBehaviors(); $catalog->catalog_id = $catalogXML['id']; $catalog->id_parent = $catalogXML['id_parent']; $catalog->name = $catalogXML['name']; $catalog->description = $catalogXML['description']; $catalog->level = $catalogXML['level']; // $catalog->root = $catalogXML['root']; $catalog->save(false); } }