/**
  * 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 
    }
Exemplo n.º 5
0
<?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);
     });
 }