/** * Meta Box Template */ public static function post_type_meta_box_callback($post) { $post_id = $post->ID; $podcast = Model\Podcast::get_instance(); $episode = Model\Episode::find_or_create_by_post_id($post_id); wp_nonce_field(\Podlove\PLUGIN_FILE, 'podlove_noncename'); ?> <input type="hidden" name="show-media-file-base-uri" value="<?php echo $podcast->media_file_base_uri; ?> " /> <table class="form-table"> <?php $form_args = array('context' => '_podlove_meta', 'submit_button' => false, 'form' => false); \Podlove\Form\build_for($episode, $form_args, function ($form) use($podcast) { $wrapper = new \Podlove\Form\Input\TableWrapper($form); $episode = $form->object; $wrapper->checkbox('active', array('label' => __('Post Episode to Show', 'podlove'), 'description' => '', 'default' => true)); $wrapper->string('slug', array('label' => __('Episode Media File Slug', 'podlove'), 'description' => '', 'html' => array('class' => 'regular-text'))); // TODO: validate and parse $wrapper->string('duration', array('label' => __('Duration', 'podlove'), 'description' => '', 'html' => array('class' => 'regular-text'))); $wrapper->string('subtitle', array('label' => __('Subtitle', 'podlove'), 'description' => '', 'html' => array('class' => 'large-text'))); $wrapper->text('summary', array('label' => __('Summary', 'podlove'), 'description' => '', 'html' => array('class' => 'large-text', 'rows' => max(2, count(explode("\n", $episode->summary)))))); if ($podcast->supports_cover_art === 'manual') { $wrapper->string('cover_art', array('label' => __('Episode Cover Art URL', 'podlove'), 'description' => __('JPEG or PNG. At least 1400 x 1400 pixels.', 'podlove'), 'html' => array('class' => 'regular-text'))); } $wrapper->text('chapters', array('label' => __('Chapter Marks', 'podlove'), 'description' => __('One timepoint (hh:mm:ss[.mmm]) and the chapter title per line.', 'podlove'), 'html' => array('class' => 'large-text code', 'placeholder' => '00:00:00.000 Intro', 'rows' => max(2, count(explode("\n", $episode->chapters)))))); $wrapper->checkbox('enable', array('label' => __('Enable?', 'podlove'), 'description' => __('Allow this episode to appear in podcast directories.', 'podlove'), 'default' => true)); // TODO: button to update // TODO: pretty display // TODO: don't display link // TODO: display last modified from header $wrapper->multiselect('episode_assets', Podcast_Post_Meta_Box::episode_assets_form($episode)); }); ?> </table> <?php }