// Merge -> revision 8552

git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@8554 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
rMalie
2011-09-14 08:29:10 +00:00
parent aa05a52c9b
commit 87df41c9d6
20 changed files with 541 additions and 2318 deletions
+24
View File
@@ -191,7 +191,10 @@ class CategoryCore extends ObjectModel
$this->position = self::getLastPosition((int)$this->id_parent);
$ret = parent::update($nullValues);
if (!isset($this->doNotRegenerateNTree) OR !$this->doNotRegenerateNTree)
{
self::regenerateEntireNtree();
$this->recalculateLevelDepth($this->id_category);
}
Module::hookExec('categoryUpdate', array('category' => $this));
return $ret;
}
@@ -395,6 +398,27 @@ class CategoryCore extends ObjectModel
Db::getInstance()->Execute('UPDATE '._DB_PREFIX_.'category SET nleft = '.(int)$left.', nright = '.(int)$right.' WHERE id_category = '.(int)$id_category.' LIMIT 1');
}
/**
* Re-calculate the levels of all childs
*/
public function recalculateLevelDepth($id_category)
{
/* Gets all childs */
$categories = Db::getInstance()->ExecuteS('SELECT id_category, id_parent, level_depth FROM '._DB_PREFIX_.'category
WHERE id_parent = '.$id_category);
$level = Db::getInstance()->getRow('SELECT level_depth FROM '._DB_PREFIX_.'category
WHERE id_category = '.$id_category);
/* Update level of depth for all childs */
foreach ($categories as $sub_category)
{
Db::getInstance()->Execute('UPDATE '._DB_PREFIX_.'category
SET level_depth = '.($level['level_depth'] + 1).'
WHERE id_category = '.$sub_category['id_category']);
/* Recursive call */
$this->recalculateLevelDepth($sub_category['id_category']);
}
}
/**
* Return available categories
*