Craft\ImportService::prepCategoriesFieldType PHP Method

prepCategoriesFieldType() private method

private prepCategoriesFieldType ( string $data, craft\FieldModel $field ) : array
$data string
$field craft\FieldModel
return array
    private function prepCategoriesFieldType($data, FieldModel $field)
    {
        // Get field settings
        $settings = $field->getFieldType()->getSettings();
        // Get source id
        $source = $settings->getAttribute('source');
        list(, $id) = explode(':', $source);
        // Get category data
        $category = new CategoryModel();
        $category->groupId = $id;
        // This we append before the slugified path
        $categoryUrl = str_replace('{slug}', '', $category->getUrlFormat());
        // Find matching elements in categories
        $criteria = craft()->elements->getCriteria(ElementType::Category);
        $criteria->groupId = $id;
        $criteria->limit = $settings->limit;
        $criteria->status = null;
        $criteria->localeEnabled = null;
        // Get search strings
        $search = ArrayHelper::stringToArray($data);
        // Ability to import multiple Categories at once
        $data = array();
        // Loop through keywords
        foreach ($search as $query) {
            // Find matching element by URI (dirty, not all categories have URI's)
            $criteria->uri = $categoryUrl . $this->slugify($query);
            // Add to data
            $data = array_merge($data, $criteria->ids());
        }
        return $data;
    }