Craft\ImportService::prepForFieldType PHP Method

prepForFieldType() public method

Prepare fields for fieldtypes.
public prepForFieldType ( &$data, string $handle ) : mixed
$handle string
return mixed
    public function prepForFieldType(&$data, $handle)
    {
        // Fresh up $data
        $data = StringHelper::convertToUTF8($data);
        $data = trim($data);
        // Get field info
        $field = craft()->fields->getFieldByHandle($handle);
        // If it's a field ofcourse
        if (!is_null($field)) {
            // For some fieldtypes the're special rules
            switch ($field->type) {
                case ImportModel::FieldTypeEntries:
                    // No newlines allowed
                    $data = str_replace("\n", '', $data);
                    $data = str_replace("\r", '', $data);
                    // Don't connect empty fields
                    if (!empty($data)) {
                        $data = $this->prepEntriesFieldType($data, $field);
                    } else {
                        $data = array();
                    }
                    break;
                case ImportModel::FieldTypeCategories:
                    if (!empty($data)) {
                        $data = $this->prepCategoriesFieldType($data, $field);
                    } else {
                        $data = array();
                    }
                    break;
                case ImportModel::FieldTypeAssets:
                    if (!empty($data)) {
                        $data = $this->prepAssetsFieldType($data, $field);
                    } else {
                        $data = array();
                    }
                    break;
                case ImportModel::FieldTypeUsers:
                    if (!empty($data)) {
                        $data = $this->prepUsersFieldType($data, $field);
                    } else {
                        $data = array();
                    }
                    break;
                case ImportModel::FieldTypeTags:
                    $data = $this->prepTagsFieldType($data, $field);
                    break;
                case ImportModel::FieldTypeNumber:
                    // Parse as numberx
                    $data = LocalizationHelper::normalizeNumber($data);
                    // Parse as float
                    $data = floatval($data);
                    break;
                case ImportModel::FieldTypeDate:
                    // Parse date from string
                    $data = DateTimeHelper::formatTimeForDb(DateTimeHelper::fromString($data, craft()->timezone));
                    break;
                case ImportModel::FieldTypeRadioButtons:
                case ImportModel::FieldTypeDropdown:
                    //get field settings
                    $data = $this->prepDropDownFieldType($data, $field);
                    break;
                case ImportModel::FieldTypeCheckboxes:
                case ImportModel::FieldTypeMultiSelect:
                    // Convert to array
                    $data = ArrayHelper::stringToArray($data);
                    break;
                case ImportModel::FieldTypeLightSwitch:
                    // Convert yes/no values to boolean
                    switch ($data) {
                        case Craft::t('Yes'):
                            $data = true;
                            break;
                        case Craft::t('No'):
                            $data = false;
                            break;
                    }
                    break;
            }
        }
        return $data;
    }