Example #1
0
 private function prepare_categories(&$data)
 {
     if (!is_array($data)) {
         $data = array($data);
     }
     $category = new Category();
     $data = array_filter($data);
     $existing = $category->get($data);
     $count = count($data);
     $parent_id = 0;
     $result = array();
     for ($i = 0; $i < $count; $i++) {
         $name = $data[$i];
         if ($existing && isset($existing[$name])) {
             $parent_id = $existing[$name];
             $result[$existing[$name]] = $name;
         } else {
             $new_category = new \Classes\Opencart\Category();
             $new_category->name = $name;
             $new_category->url = Util::translate($new_category->name);
             $new_category->parent_id = $parent_id;
             if ($i == 0) {
                 $new_category->top = 1;
             }
             if ($saved = $category->post($new_category)) {
                 $existing[$name] = $parent_id = $saved->id();
                 $result[$saved->id()] = $name;
             }
         }
     }
     $data = $result;
 }