/** * Dynamically return file url from release, format and show. * * @return string */ public function get_file_url() { $podcast = Podcast::get_instance(); $episode = $this->episode(); $episode_asset = EpisodeAsset::find_by_id($this->episode_asset_id); $file_type = FileType::find_by_id($episode_asset->file_type_id); if (!$episode_asset || !$file_type || !$episode->slug) { return ''; } $template = $episode_asset->url_template; $template = str_replace('%media_file_base_url%', $podcast->media_file_base_uri, $template); $template = str_replace('%episode_slug%', $episode->slug, $template); $template = str_replace('%format_extension%', $file_type->extension, $template); return $template; }
/** * Find the related episode asset model. * * @return \Podlove\Model\EpisodeAsset|NULL */ public function episode_asset() { return $this->with_blog_scope(function () { return $this->episode_asset_id ? EpisodeAsset::find_by_id($this->episode_asset_id) : NULL; }); }
/** * Find the related episode asset model. * * @return \Podlove\Model\EpisodeAsset|NULL */ public function episode_asset() { return $this->episode_asset_id ? EpisodeAsset::find_by_id($this->episode_asset_id) : NULL; }