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;
}