/** * Populate asset source. * * @param string $assetHandle * @param array $assetSourceDefinition * * @return AssetSourceModel */ private function populateAssetSource($assetHandle, array $assetSourceDefinition) { $assetSource = AssetSourceRecord::model()->findByAttributes(['handle' => $assetHandle]); $assetSource = $assetSource ? AssetSourceModel::populateModel($assetSource) : new AssetSourceModel(); $assetSource->setAttributes(['handle' => $assetHandle, 'type' => $assetSourceDefinition['type'], 'name' => $assetSourceDefinition['name'], 'sortOrder' => $assetSourceDefinition['sortOrder'], 'settings' => $assetSourceDefinition['settings']]); return $assetSource; }
/** * @param AssetSourceModel $assetSource * * @return array */ private function getAssetSourceDefinition(AssetSourceModel $assetSource) { return ['type' => $assetSource->type, 'name' => $assetSource->name, 'sortOrder' => $assetSource->sortOrder, 'settings' => $assetSource->settings, 'fieldLayout' => Craft::app()->schematic_fields->getFieldLayoutDefinition($assetSource->getFieldLayout())]; }