Craft\ImportService::prepTagsFieldType PHP Method

prepTagsFieldType() private method

private prepTagsFieldType ( string $data, craft\FieldModel $field ) : array
$data string
$field craft\FieldModel
return array
    private function prepTagsFieldType($data, FieldModel $field)
    {
        // Get field settings
        $settings = $field->getFieldType()->getSettings();
        // Get tag group id
        $source = $settings->getAttribute('source');
        list($type, $groupId) = explode(':', $source);
        $tags = ArrayHelper::stringToArray($data);
        $data = array();
        foreach ($tags as $tag) {
            // Find existing tag
            $criteria = craft()->elements->getCriteria(ElementType::Tag);
            $criteria->title = $tag;
            $criteria->groupId = $groupId;
            $criteria->status = null;
            $criteria->localeEnabled = null;
            $tagArray = array();
            if (!$criteria->total()) {
                // Create tag if one doesn't already exist
                $newtag = $this->getNewTagModel();
                $newtag->getContent()->title = $tag;
                $newtag->groupId = $groupId;
                // Save tag
                if (craft()->tags->saveTag($newtag)) {
                    $tagArray = array($newtag->id);
                }
            } else {
                $tagArray = $criteria->ids();
            }
            // Add tags to data array
            $data = array_merge($data, $tagArray);
        }
        return $data;
    }