/** * Search with Pathes for categories * * @param integer $id_lang Language ID * @param string $path of category * @param boolean $object_to_create a category * * @param boolean $method_to_create a category * @return array Corresponding categories */ public static function searchByPath($id_lang, $path, $object_to_create = false, $method_to_create = false) { $categories = explode('/', trim($path)); $category = $id_parent_category = false; if (is_array($categories) && count($categories)) { foreach ($categories as $category_name) { if ($id_parent_category) { $category = JeproshopCatetoryModelCategory::searchByNameAndParentCategoryId($id_lang, $category_name, $id_parent_category); } else { $category = JeproshopCategoryModelCategory::searchByName($id_lang, $category_name, true); } if (!$category && $object_to_create && $method_to_create) { call_user_func_array(array($object_to_create, $method_to_create), array($id_lang, $category_name, $id_parent_category)); $category = JeproshopCategoryModelCategory::searchByPath($id_lang, $category_name); } if (isset($category['id_category']) && $category['id_category']) { $id_parent_category = (int) $category['id_category']; } } } return $category; }