Craft\EmbeddedAssetsModel::populateFromAsset PHP Method

populateFromAsset() public static method

public static populateFromAsset ( craft\AssetFileModel $asset )
$asset craft\AssetFileModel
    public static function populateFromAsset(AssetFileModel $asset)
    {
        if ($asset->kind === 'json' && strpos($asset->filename, EmbeddedAssetsPlugin::getFileNamePrefix(), 0) === 0) {
            try {
                $rawData = craft()->embeddedAssets->readAssetFile($asset);
                if ($rawData) {
                    $data = JsonHelper::decode($rawData);
                    if ($data['__embeddedasset__']) {
                        unset($data['__embeddedasset__']);
                        $embed = new EmbeddedAssetsModel();
                        $embed->id = $asset->id;
                        foreach ($embed->attributeNames() as $key) {
                            if (isset($data[$key])) {
                                $embed->{$key} = $data[$key];
                            }
                        }
                        // For embedded assets saved with version 0.2.1 or below, this will provide a usable fallback
                        if (empty($embed->requestUrl)) {
                            $embed->requestUrl = $embed->url;
                        }
                        return $embed;
                    }
                }
            } catch (\Exception $e) {
                EmbeddedAssetsPlugin::log("Error reading embedded asset data on asset {$asset->id} (\"{$e->getMessage()}\")", LogLevel::Error);
                return null;
            }
        }
        return null;
    }