Ecigarlife Posted April 1, 2019 Share Posted April 1, 2019 (edited) Buenos dias, Desde que activamos la multitienda, cuando creamos categorias no lo hace bien, ya que genera la categoria con los valores Nleft y Nright a 0. Llamo de manera manual a Category::regenerateEntireNtree(); , pero no hace nada... Mi root category esta con valor "2" y esta es e lcodigo que deberia generarlo , ¿Puede ser por el valor 2?: public static function regenerateEntireNtree() { $id = Context::getContext()->shop->id; $id_shop = $id ? $id: Configuration::get('PS_SHOP_DEFAULT'); $categories = Db::getInstance()->executeS(' SELECT c.`id_category`, c.`id_parent` FROM `'._DB_PREFIX_.'category` c LEFT JOIN `'._DB_PREFIX_.'category_shop` cs ON (c.`id_category` = cs.`id_category` AND cs.`id_shop` = '.(int)$id_shop.') ORDER BY c.`id_parent`, cs.`position` ASC'); $categories_array = array(); foreach ($categories as $category) $categories_array[$category['id_parent']]['subcategories'][] = $category['id_category']; $n = 1; if (isset($categories_array[0]) && $categories_array[0]['subcategories']) Category::_subTree($categories_array, $categories_array[0]['subcategories'][0], $n); } protected static function _subTree(&$categories, $id_category, &$n) { $left = $n++; if (isset($categories[(int)$id_category]['subcategories'])) foreach ($categories[(int)$id_category]['subcategories'] as $id_subcategory) Category::_subTree($categories, (int)$id_subcategory, $n); $right = (int)$n++; Db::getInstance()->execute(' UPDATE '._DB_PREFIX_.'category SET nleft = '.(int)$left.', nright = '.(int)$right.' WHERE id_category = '.(int)$id_category.' LIMIT 1'); } Edited April 3, 2019 by Ecigarlife (see edit history) Link to comment Share on other sites More sharing options...
burrots Posted April 1, 2019 Share Posted April 1, 2019 es curioso. nunca lo habia oido. deficil averiguar q pasa por aqui. habria q debuguear en el codigo para ver exactamente q esta psando. Suerte 1 Link to comment Share on other sites More sharing options...
Ecigarlife Posted April 2, 2019 Author Share Posted April 2, 2019 if (isset($categories_array[0]) && $categories_array[0]['subcategories']) Category::_subTree($categories_array, $categories_array[0]['subcategories'][0], $n); Una duda, esta mirando aqui que el Id_parent sea 0 y como no encuentra por eso falla? Es que no tengo ningun id_category con valor 0, y creo que puede ser por eso.. Link to comment Share on other sites More sharing options...
burrots Posted April 2, 2019 Share Posted April 2, 2019 (edited) 4 hours ago, Ecigarlife said: if (isset($categories_array[0]) && $categories_array[0]['subcategories']) Category::_subTree($categories_array, $categories_array[0]['subcategories'][0], $n); Una duda, esta mirando aqui que el Id_parent sea 0 y como no encuentra por eso falla? Es que no tengo ningun id_category con valor 0, y creo que puede ser por eso.. no. si el array "$catetegories_array" tiene la clave "0" definida y ademas dentro de ésta, está la clave "subcategories" definida, haz lo siguiente: Category::_subTree($categories_array, $categories_array[0]['subcategories'][0], $n); traducido literalemnte seria esto, nada q ver con id_parent 0 Suerte Edited April 2, 2019 by burrots (see edit history) 1 Link to comment Share on other sites More sharing options...
Ecigarlife Posted April 3, 2019 Author Share Posted April 3, 2019 Buenos dias, Consegui que se generara, os explico como lo hice por si a alguno le pasa en un futuro : Me cree un archivo nuevo que puse en la raiz en la web llamada crearcategorias.php El codigo de dicho archivo es el siguiente: <?php require(dirname(__FILE__).'/config/config.inc.php'); echo 'Regenerating tree...'; Category::regenerateEntireNtree(); echo 'done<br />'; echo 'Recalculating level depths...'; $category = new Category((int)Configuration::get('PS_ROOT_CATEGORY')); $category->recalculateLevelDepth($category->id); echo 'done'; Lo mas importante y que creo que es lo que ha hecho que funcione, ha sido borrar las caches a mano, reiniciar PHP en el hosting y despues ejecuto dicho codigo : www.tudominio.com/crearcategorias.php. Debo decir que algo parecido o similar habia intentado dias antes y no me habia funcionado... pero ahora si lo ha cogido Link to comment Share on other sites More sharing options...
burrots Posted April 3, 2019 Share Posted April 3, 2019 perfecto compañero, da un par de corazoncitos en las respuestas si te hemos ayudado... Suerte 1 Link to comment Share on other sites More sharing options...
burrots Posted April 3, 2019 Share Posted April 3, 2019 tienes la parte de las opniones descuadrada en el footer. he visto tu web, mola lo k que vendes y ademas veo q tienes bastante trafico con lo q os debe ir bastante bien. Felicicdades. Suerte Link to comment Share on other sites More sharing options...
Ecigarlife Posted April 3, 2019 Author Share Posted April 3, 2019 Muchas gracias! Si, fue el Widget de las opiniones verificadas, lo tenemos pendiente de dejarlo ok. Link to comment Share on other sites More sharing options...
burrots Posted April 3, 2019 Share Posted April 3, 2019 13 minutes ago, Ecigarlife said: Muchas gracias! Si, fue el Widget de las opiniones verificadas, lo tenemos pendiente de dejarlo ok. algo asi estaria bien. 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now