public function import(array $categoryGroupDefinitions, $force = false)
{
Craft::log(Craft::t('Importing Category Groups'));
$this->resetCraftCategoriesServiceCache();
$categoryGroups = Craft::app()->categories->getAllGroups('handle');
foreach ($categoryGroupDefinitions as $categoryGroupHandle => $categoryGroupDefinition) {
$categoryGroup = array_key_exists($categoryGroupHandle, $categoryGroups) ? $categoryGroups[$categoryGroupHandle] : new CategoryGroupModel();
unset($categoryGroups[$categoryGroupHandle]);
$this->populateCategoryGroup($categoryGroup, $categoryGroupDefinition, $categoryGroupHandle);
if (!Craft::app()->categories->saveGroup($categoryGroup)) {
// Save categorygroup via craft
$this->addErrors($categoryGroup->getAllErrors());
continue;
}
}
if ($force) {
foreach ($categoryGroups as $categoryGroup) {
Craft::app()->categories->deleteGroupById($categoryGroup->id);
}
}
return $this->getResultModel();
}