/**
  * Decide which template to load for the Apple News admin page
  *
  * @access public
  */
 public function admin_page()
 {
     $id = isset($_GET['post_id']) ? absint($_GET['post_id']) : null;
     $action = isset($_GET['action']) ? sanitize_text_field($_GET['action']) : null;
     switch ($action) {
         case self::namespace_action('push'):
             $section = new Apple_Actions\Index\Section($this->settings);
             try {
                 $sections = $section->get_sections();
             } catch (Apple_Actions\Action_Exception $e) {
                 Admin_Apple_Notice::error($e->getMessage());
             }
             $post = get_post($id);
             $post_meta = get_post_meta($id);
             include plugin_dir_path(__FILE__) . 'partials/page_single_push.php';
             break;
         default:
             $this->show_post_list_action();
             break;
     }
 }
    /**
     * Add the Apple News publish meta box
     *
     * @since 0.9.0
     * @param WP_Post $post
     * @access public
     */
    public function publish_meta_box($post)
    {
        // Only show the publish feature if the user is authorized and auto sync is not enabled.
        // Also check if the post has been previously published and/or deleted.
        $api_id = get_post_meta($post->ID, 'apple_news_api_id', true);
        $deleted = get_post_meta($post->ID, 'apple_news_api_deleted', true);
        $pending = get_post_meta($post->ID, 'apple_news_api_pending', true);
        $is_preview = get_post_meta($post->ID, 'apple_news_is_preview', true);
        $pullquote = get_post_meta($post->ID, 'apple_news_pullquote', true);
        $pullquote_position = get_post_meta($post->ID, 'apple_news_pullquote_position', true);
        // Set the default value
        if (empty($pullquote_position)) {
            $pullquote_position = 'middle';
        }
        ?>
		<div id="apple-news-publish">
		<?php 
        wp_nonce_field($this->publish_action, 'apple_news_nonce');
        ?>
		<?php 
        $section = new Apple_Actions\Index\Section($this->settings);
        try {
            $sections = $section->get_sections();
        } catch (Apple_Actions\Action_Exception $e) {
            Admin_Apple_Notice::error($e->getMessage());
        }
        if (!empty($sections)) {
            ?>
				<h3><?php 
            esc_html_e('Sections', 'apple-news');
            ?>
</h3>
				<?php 
            self::build_sections_field($sections, $post->ID);
        }
        ?>
		<p class="description"><?php 
        esc_html_e('Select the sections in which to publish this article. Uncheck them all for a standalone article.', 'apple-news');
        ?>
</p>
		<h3><?php 
        esc_html_e('Preview?', 'apple-news');
        ?>
</h3>
		<input id="apple-news-is-preview" name="apple_news_is_preview" type="checkbox" value="1" <?php 
        checked($is_preview);
        ?>
>
		<p class="description"><?php 
        esc_html_e('Check this to publish the article as a draft.', 'apple-news');
        ?>
</p>
		<h3><?php 
        esc_html_e('Pull quote', 'apple-news');
        ?>
</h3>
		<textarea name="apple_news_pullquote" placeholder="<?php 
        esc_attr_e('A pull quote is a key phrase, quotation, or excerpt that has been pulled from an article and used as a graphic element, serving to entice readers into the article or to highlight a key topic.', 'apple-news');
        ?>
" rows="6" class="large-text"><?php 
        echo esc_textarea($pullquote);
        ?>
</textarea>
		<p class="description"><?php 
        esc_html_e('This is optional and can be left blank.', 'apple-news');
        ?>
</p>
		<h3><?php 
        esc_html_e('Pull quote position', 'apple-news');
        ?>
</h3>
		<select name="apple_news_pullquote_position">
			<option <?php 
        selected($pullquote_position, 'top');
        ?>
 value="top"><?php 
        esc_html_e('top', 'apple-news');
        ?>
</option>
			<option <?php 
        selected($pullquote_position, 'middle');
        ?>
 value="middle"><?php 
        esc_html_e('middle', 'apple-news');
        ?>
</option>
			<option <?php 
        selected($pullquote_position, 'bottom');
        ?>
 value="bottom"><?php 
        esc_html_e('bottom', 'apple-news');
        ?>
</option>
		</select>
		<p class="description"><?php 
        esc_html_e('The position in the article where the pull quote will appear.', 'apple-news');
        ?>
</p>
		<?php 
        if ('yes' != $this->settings->get('api_autosync') && current_user_can(apply_filters('apple_news_publish_capability', 'manage_options')) && 'publish' === $post->post_status && empty($api_id) && empty($deleted) && empty($pending)) {
            ?>
		<input type="hidden" id="apple-news-publish-action" name="apple_news_publish_action" value="">
		<input type="button" id="apple-news-publish-submit" name="apple_news_publish_submit" value="<?php 
            esc_attr_e('Publish to Apple News', 'apple-news');
            ?>
" class="button-primary" />
		<?php 
        } elseif ('yes' == $this->settings->get('api_autosync') && empty($api_id) && empty($deleted) && empty($pending)) {
            ?>
		<p><?php 
            esc_html_e('This post will be automatically sent to Apple News on publish.', 'apple-news');
            ?>
</p>
		<?php 
        } elseif ('yes' == $this->settings->get('api_async') && !empty($pending)) {
            ?>
		<p><?php 
            esc_html_e('This post is currently pending publishing to Apple News.', 'apple-news');
            ?>
</p>
		<?php 
        }
        // Add data about the article if it exists
        if (!empty($deleted)) {
            ?>
			<p><b><?php 
            esc_html_e('This post has been deleted from Apple News', 'apple-news');
            ?>
</b></p>
			<?php 
        }
        if (!empty($api_id)) {
            $state = \Admin_Apple_News::get_post_status($post->ID);
            $share_url = get_post_meta($post->ID, 'apple_news_api_share_url', true);
            $created_at = get_post_meta($post->ID, 'apple_news_api_created_at', true);
            $created_at = empty($created_at) ? __('None', 'apple-news') : get_date_from_gmt(date('Y-m-d H:i:s', strtotime($created_at)), 'F j, h:i a');
            $modified_at = get_post_meta($post->ID, 'apple_news_api_modified_at', true);
            $modified_at = empty($modified_at) ? __('None', 'apple-news') : get_date_from_gmt(date('Y-m-d H:i:s', strtotime($modified_at)), 'F j, h:i a');
            ?>
			<p><b><?php 
            esc_html_e('Apple News Publish Information', 'apple-news');
            ?>
</b>
			<br/><?php 
            esc_html_e('ID', 'apple-news');
            ?>
: <?php 
            echo esc_html($api_id);
            ?>
			<br/><?php 
            esc_html_e('Created at', 'apple-news');
            ?>
: <?php 
            echo esc_html($created_at);
            ?>
			<br/><?php 
            esc_html_e('Modified at', 'apple-news');
            ?>
: <?php 
            echo esc_html($modified_at);
            ?>
			<br/><?php 
            esc_html_e('Share URL', 'apple-news');
            ?>
: <a href="<?php 
            echo esc_url($share_url);
            ?>
" target="_blank"><?php 
            echo esc_html($share_url);
            ?>
</a>
			<br/><?php 
            esc_html_e('Revision', 'apple-news');
            ?>
: <?php 
            echo esc_html(get_post_meta($post->ID, 'apple_news_api_revision', true));
            ?>
			<br/><?php 
            esc_html_e('State', 'apple-news');
            ?>
: <?php 
            echo esc_html($state);
            ?>
			<?php 
        }
        ?>
		</div>
		<?php 
    }