/** * List of Related Episodes * * @accessor * @dynamicAccessor episode.relatedEpisodes */ public static function accessorRelatedEpisodes($return, $method_name, $episode, $post, $args = array()) { $episodes = array(); foreach (EpisodeRelation::get_related_episodes($episode->id, ['only_published' => true]) as $related_episode) { $episodes[] = new Template\Episode(Model\Episode::find_by_id($related_episode->id)); } return $episodes; }
/** * List of Related Episodes * * @accessor * @dynamicAccessor episode.relatedEpisodes */ public static function accessorRelatedEpisodes($return, $method_name, $episode, $post, $args = array()) { $episodes = array(); foreach (EpisodeRelation::get_related_episodes($episode->id) as $related_episode) { $episodes[] = new \Podlove\Template\Episode(\Podlove\Model\Episode::find_by_id($related_episode->id)); } return $episodes; }
/** * {@inheritdoc} */ protected function send($content, array $records) { $record = $records[0]; $content = wordwrap($content, 70); if (isset($record['context']['episode_id'])) { $episode = Model\Episode::find_by_id($record['context']['episode_id']); $content .= "\n\n" . wp_specialchars_decode(get_edit_post_link($episode->post_id)); } foreach ($this->to as $to) { wp_mail($to, $this->subject, $content); } }
public function dashoard_template() { ?> <style type="text/css"> #podlove-log { height: 500px; overflow: auto; font-family: monospace; font-size: 14px; line-height: 18px; padding: 5px; } .log-level-200 { } .log-level-400 { color: #95002B; } .log-level-550 { background: #95002B; color: #FAD4AF; } .log-level-550 a { color: #F4E6AD; } </style> <script type="text/javascript"> jQuery(function($) { $(document).ready(function() { // scroll down $("#podlove-log").scrollTop($("#podlove-log")[0].scrollHeight); }); }); </script> <?php if ($timezone = get_option('timezone_string')) { date_default_timezone_set($timezone); } ?> <div id="podlove-log"> <?php foreach (LogTable::find_all_by_where("time > " . strtotime("-1 week")) as $log_entry) { ?> <div class="log-entry log-level-<?php echo $log_entry->level; ?> "> <span class="log-date"> [<?php echo date('Y-m-d H:i:s', $log_entry->time); ?> ] </span> <span class="log-message"> <?php echo $log_entry->message; ?> </span> <span class="log-extra"> <?php $data = json_decode($log_entry->context); if (isset($data->media_file_id)) { if ($media_file = Model\MediaFile::find_by_id($data->media_file_id)) { if ($episode = $media_file->episode()) { if ($asset = $media_file->episode_asset()) { echo sprintf('<a href="%s">%s/%s</a>', get_edit_post_link($episode->post_id), $episode->slug, $asset->title); } } } } if (isset($data->error)) { echo sprintf(' "%s"', $data->error); } if (isset($data->episode_id)) { if ($episode = Model\Episode::find_by_id($data->episode_id)) { echo sprintf(' <a href="%s">%s</a>', get_edit_post_link($episode->post_id), get_the_title($episode->post_id)); } } if (isset($data->http_code)) { echo " HTTP Status: " . $data->http_code; } if (isset($data->mime_type) && isset($data->expected_mime_type)) { echo " Expected: {$data->expected_mime_type}, but found: {$data->mime_type}"; } if (isset($data->type) && $data->type == 'twig') { echo sprintf('in template "%s" line %d', $data->template, $data->line); } ?> </span> </div> <?php } ?> </div> <?php }
<?php use Podlove\Model; // devalidate caches when media file has changed add_action('podlove_media_file_content_has_changed', function ($media_file_id) { if ($media_file = Model\MediaFile::find_by_id($media_file_id)) { if ($episode = $media_file->episode()) { $episode->delete_caches(); } } }); // devalidate caches when episode content has changed add_action('podlove_episode_content_has_changed', function ($episode_id) { if ($episode = Model\Episode::find_by_id($episode_id)) { $episode->delete_caches(); } });
public function episode() { return $this->with_blog_scope(function () { return Episode::find_by_id($this->episode_id); }); }