NerdsAndCompany\Schematic\Models\Field::populate PHP Method

populate() public method

public populate ( array $fieldDefinition, Craft\FieldModel $field, string $fieldHandle, Craft\FieldGroupModel $group = null )
$fieldDefinition array
$field Craft\FieldModel
$fieldHandle string
$group Craft\FieldGroupModel
    public function populate(array $fieldDefinition, FieldModel $field, $fieldHandle, FieldGroupModel $group = null)
    {
        $field->name = $fieldDefinition['name'];
        $field->handle = $fieldHandle;
        $field->required = $fieldDefinition['required'];
        $field->translatable = $fieldDefinition['translatable'];
        $field->instructions = $fieldDefinition['instructions'];
        $field->type = $fieldDefinition['type'];
        $field->settings = $fieldDefinition['settings'];
        if ($group) {
            $field->groupId = $group->id;
        }
        if (isset($fieldDefinition['settings']['sources'])) {
            $settings = $fieldDefinition['settings'];
            $settings['sources'] = $this->getMappedSources($field->type, $settings['sources'], 'handle', 'id');
            $field->settings = $settings;
        }
        if (isset($fieldDefinition['settings']['source'])) {
            $settings = $fieldDefinition['settings'];
            $settings['source'] = $this->getSource($field->type, $settings['source'], 'handle', 'id');
            $field->settings = $settings;
        }
    }

Usage Example

Example #1
0
 /**
  * @param array                $fieldDefinition
  * @param FieldModel           $field
  * @param string               $fieldHandle
  * @param FieldGroupModel|null $group
  */
 public function populate(array $fieldDefinition, FieldModel $field, $fieldHandle, FieldGroupModel $group = null)
 {
     parent::populate($fieldDefinition, $field, $fieldHandle, $group);
     /** @var MatrixSettingsModel $settingsModel */
     $settingsModel = $field->getFieldType()->getSettings();
     $settingsModel->setAttributes($fieldDefinition['settings']);
     $settingsModel->setBlockTypes($this->getBlockTypes($fieldDefinition, $field));
     $field->settings = $settingsModel;
 }
All Usage Examples Of NerdsAndCompany\Schematic\Models\Field::populate