private function form_template($season, $action, $button_text = NULL) { wp_enqueue_script('jquery'); wp_enqueue_script('jquery-ui-core'); wp_enqueue_script('jquery-ui-datepicker'); $form_args = array('context' => 'podlove_season', 'hidden' => array('season' => $season->id, 'action' => $action), 'submit_button' => false, 'form_end' => function () { echo "<p>"; submit_button(__('Save Changes'), 'primary', 'submit', false); echo " "; submit_button(__('Save Changes and Continue Editing', 'podlove'), 'secondary', 'submit_and_stay', false); echo "</p>"; }); \Podlove\Form\build_for($season, $form_args, function ($form) { $wrapper = new \Podlove\Form\Input\TableWrapper($form); $season = $form->object; $wrapper->string('title', ['label' => __('Title', 'podlove') . \Podlove\get_help_link('podlove_help_seasons_title'), 'html' => ['class' => 'regular-text podlove-check-input']]); $wrapper->string('subtitle', ['label' => __('Subtitle', 'podlove'), 'html' => ['class' => 'regular-text podlove-check-input']]); $wrapper->text('summary', ['label' => __('Summary', 'podlove'), 'html' => array('rows' => 3, 'cols' => 40, 'class' => 'autogrow podlove-check-input')]); $wrapper->string('start_date', ['label' => __('Start Date', 'podlove') . \Podlove\get_help_link('podlove_help_seasons_date'), 'html' => ['class' => 'regular-text podlove-check-input', 'readonly' => 'readonly']]); $wrapper->upload('image', ['label' => __('Image', 'podlove'), 'html' => ['class' => 'regular-text podlove-check-input', 'data-podlove-input-type' => 'url'], 'media_button_text' => __("Use Image for Season", 'podlove')]); }); }
private function form_template($feed, $action, $button_text = NULL) { $form_args = array('context' => 'podlove_feed', 'hidden' => array('feed' => $feed->id, 'action' => $action), 'submit_button' => false, 'form_end' => function () { echo "<p>"; submit_button(__('Save Changes'), 'primary', 'submit', false); echo " "; submit_button(__('Save Changes and Continue Editing', 'podlove'), 'secondary', 'submit_and_stay', false); echo "</p>"; }); \Podlove\Form\build_for($feed, $form_args, function ($form) { $wrapper = new \Podlove\Form\Input\TableWrapper($form); $feed = $form->object; $podcast = \Podlove\Model\Podcast::get(); $episode_assets = \Podlove\Model\EpisodeAsset::all(); $assets = array(); foreach ($episode_assets as $asset) { $assets[$asset->id] = $asset->title; } $wrapper->subheader(__('Basic Settings', 'podlove')); $wrapper->select('episode_asset_id', array('label' => __('Episode Media File', 'podlove') . \Podlove\get_help_link('podlove_help_feed_asset'), 'options' => $assets, 'html' => array('class' => 'required'))); $wrapper->string('name', array('label' => __('Feed Name', 'podlove'), 'description' => __('Some podcast clients may display this title to describe the feed content.', 'podlove'), 'html' => array('class' => 'regular-text required podlove-check-input'))); $wrapper->checkbox('append_name_to_podcast_title', array('label' => __('Append Feed Name to Podcast title', 'podlove'), 'description' => sprintf(__('Structure of the feed title. Preview: %s', 'podlove'), $podcast->title . '<span id="feed_title_preview_append"></span>'), 'default' => false)); $wrapper->string('slug', array('label' => __('Slug', 'podlove') . \Podlove\get_help_link('podlove_help_feed_slug'), 'description' => $feed ? sprintf(__('Feed identifier. URL Preview: %s', 'podlove'), '<span id="feed_subscribe_url_preview">' . $feed->get_subscribe_url() . '</span>') : '', 'html' => array('class' => 'regular-text required podlove-check-input'))); $wrapper->checkbox('discoverable', array('label' => __('Discoverable?', 'podlove'), 'description' => __('Embed a meta tag into the head of your site so browsers and feed readers will find the link to the feed.', 'podlove'), 'default' => true)); $wrapper->checkbox('embed_content_encoded', array('label' => __('Include HTML Content', 'podlove'), 'description' => __('Include episode show notes in the feed.', 'podlove'), 'default' => false)); $wrapper->subheader(__('Directory Settings', 'podlove')); $wrapper->checkbox('enable', array('label' => __('Allow Submission to Directories', 'podlove'), 'description' => __('Allow this feed to appear in podcast directories.', 'podlove'), 'default' => true)); do_action('podlove_feeds_directories', $wrapper); $wrapper->string('itunes_feed_id', array('label' => __('iTunes Feed ID', 'podlove'), 'description' => __('Is used to generate a link to the iTunes directory.', 'podlove') . ($feed->itunes_feed_id ? ' <a href="http://itunes.apple.com/podcast/id' . $feed->itunes_feed_id . '" target="_blank">' . __('Open in iTunes directory') . '</a>' : ''), 'html' => array('class' => 'regular-text podlove-check-input'))); $wrapper->subheader(__('Advanced Settings', 'podlove')); $wrapper->select('redirect_http_status', array('label' => __('Redirect Method', 'podlove'), 'description' => __('', 'podlove'), 'options' => array('0' => 'Don\'t redirect', '307' => 'Temporary Redirect (HTTP Status 307)', '301' => 'Permanent Redirect (HTTP Status 301)'), 'default' => 0, 'please_choose' => false)); $wrapper->string('redirect_url', array('label' => __('Redirect Url', 'podlove'), 'description' => __('e.g. Feedburner URL', 'podlove'), 'html' => array('class' => 'regular-text podlove-check-input', 'data-podlove-input-type' => 'url'))); $podcast_settings = get_option('podlove_podcast'); if ($podcast_settings['limit_items'] < 0) { $limit_default = 'No limit'; } else { $limit_default = $podcast_settings['limit_items']; } $limit_options = array('-2' => __("Use Podlove default (" . $limit_default . ")", 'podlove'), '-1' => __("No limit. Include all items.", 'podlove'), '0' => __('Use WordPress Default', 'podlove') . ' (' . get_option('posts_per_rss') . ')'); for ($i = 1; $i * 5 <= 100; $i++) { $limit_options[$i * 5] = $i * 5; } $wrapper->select('limit_items', array('label' => __('Limit Items', 'podlove'), 'description' => __('If you have a lot of episodes, you might want to restrict the feed size.', 'podlove'), 'options' => $limit_options, 'please_choose' => false, 'default' => '-2')); $wrapper->subheader(__('Protection', 'podlove')); $wrapper->checkbox('protected', array('label' => __('Protect feed ', 'podlove'), 'description' => __('The feed will be protected by HTTP Basic Authentication.', 'podlove'), 'default' => false)); $wrapper->select('protection_type', array('label' => __('Method', 'podlove'), 'description' => __('', 'podlove'), 'options' => array('0' => 'Custom Login', '1' => 'WordPress User database'), 'default' => -1, 'please_choose' => true)); $wrapper->string('protection_user', array('label' => __('Username', 'podlove'), 'description' => '', 'html' => array('class' => 'regular-text required'))); $wrapper->string('protection_password', array('label' => __('Password', 'podlove'), 'description' => '', 'html' => array('class' => 'regular-text required'))); do_action('podlove_feed_settings_bottom', $wrapper); }); }