/** * 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 }