__('Loading...', 'angllia'), 'wpspin_light' => admin_url('images/wpspin_light.gif'), 'media_title' => __('Pick Gallery Images', 'angllia'), 'media_button' => __('Add Image(s)', 'angllia') ) ); add_action('edit_form_after_title', 'vp_pfui_post_admin_setup'); } } add_action('add_meta_boxes', 'vp_pfui_add_meta_boxes'); /** * Show the post format navigation tabs * A lot of cues are taken from the `post_format_meta_box` * * @return void */ function vp_pfui_post_admin_setup() { $post_formats = get_theme_support('post-formats'); if (!empty($post_formats[0]) && is_array($post_formats[0])) { global $post; $current_post_format = get_post_format($post->ID); $hacked_format = null; // support the possibility of people having hacked in custom // post-formats or that this theme doesn't natively support // the post-format in the current post - a tab will be added // for this format but the default WP post UI will be shown ~sp if (!empty($current_post_format) && !in_array($current_post_format, $post_formats[0])) { $hacked_format = $current_post_format; array_push($post_formats[0], $current_post_format); } //array_unshift($post_formats[0], 'standard'); $post_formats = $post_formats[0]; include('views/tabs.php'); // prevent added un-supported custom post format from view output if(!is_null($hacked_format) and ($key = array_search($current_post_format, $post_formats)) !== false) { unset($post_formats[$key]); } $format_views = array( 'link', 'quote', 'video', 'gallery', 'audio', ); foreach ($format_views as $format) { if (in_array($format, $post_formats)) { include('views/format-'.$format.'.php'); } } } } function vp_pfui_format_link_save_post($post_id) { if (!defined('XMLRPC_REQUEST') && isset($_POST['_format_link_url'])) { update_post_meta($post_id, '_format_link_url', $_POST['_format_link_url']); } } // action added in vp_pfui_admin_init() function vp_pfui_format_auto_title_post($post_id, $post) { // get out early if a title is already set if (!empty($post->post_title)) { return; } remove_action('save_post', 'vp_pfui_format_status_save_post', 10, 2); remove_action('save_post', 'vp_pfui_format_quote_save_post', 10, 2); $content = trim(strip_tags($post->post_content)); $title = substr($content, 0, 50); if (strlen($content) > 50) { $title .= '...'; } $title = apply_filters('vp_pfui_format_auto_title', $title, $post); wp_update_post(array( 'ID' => $post_id, 'post_title' => $title )); add_action('save_post', 'vp_pfui_format_status_save_post', 10, 2); add_action('save_post', 'vp_pfui_format_quote_save_post', 10, 2); } function vp_pfui_format_status_save_post($post_id, $post) { if (has_post_format('status', $post)) { vp_pfui_format_auto_title_post($post_id, $post); } } // action added in vp_pfui_admin_init() function vp_pfui_format_quote_save_post($post_id, $post) { if (!defined('XMLRPC_REQUEST')) { $keys = array( 'rst_quote', 'rst_quotesource', ); foreach ($keys as $key) { if (isset($_POST[$key])) { update_post_meta($post_id, $key, $_POST[$key]); } } } if (has_post_format('quote', $post)) { vp_pfui_format_auto_title_post($post_id, $post); } } // action added in vp_pfui_admin_init() function vp_pfui_format_video_save_post($post_id) { if (!defined('XMLRPC_REQUEST') && isset($_POST['rst_video_embed'])) { update_post_meta($post_id, 'rst_video_embed', $_POST['rst_video_embed']); } if (!defined('XMLRPC_REQUEST') && isset($_POST['rst_video_type'])) { update_post_meta($post_id, 'rst_video_type', $_POST['rst_video_type']); } } // action added in vp_pfui_admin_init() function vp_pfui_format_audio_save_post($post_id) { global $post; if (!defined('XMLRPC_REQUEST') && isset($_POST['rst_audio_iframe'])) { update_post_meta($post_id, 'rst_audio_iframe', $_POST['rst_audio_iframe']); } if (!defined('XMLRPC_REQUEST') && isset($_POST['rst_format_audio_image'])) { update_post_meta($post_id, 'rs-rst_format_audio_image', $_POST['rst_format_audio_image']); } } // action added in vp_pfui_admin_init() function vp_pfui_format_gallery_save_post($post_id) { if (!defined('XMLRPC_REQUEST') && isset($_POST['_format_gallery_images'])) { global $post; if( $_POST['_format_gallery_images'] !== '' ) { $images = explode(',', $_POST['_format_gallery_images']); } else { $images = array(); } update_post_meta($post_id, '_format_gallery_images', $images); } } // action added in vp_pfui_admin_init() function vp_pfui_gallery_preview() { if (empty($_POST['id']) || !($post_id = intval($_POST['id']))) { exit; } global $post; $post->ID = $post_id; ob_start(); include('views/format-gallery.php'); $html = ob_get_clean(); header('Content-type: text/javascript'); echo json_encode(compact('html')); exit; } add_action('wp_ajax_vp_pfui_gallery_preview', 'vp_pfui_gallery_preview'); function vp_pfui_post_has_gallery($post_id = null) { if (empty($post_id)) { $post_id = get_the_ID(); } $images = new WP_Query(array( 'post_parent' => $post_id, 'post_type' => 'attachment', 'post_status' => 'inherit', 'posts_per_page' => 1, // -1 to show all 'post_mime_type' => 'image%', 'orderby' => 'menu_order', 'order' => 'ASC' )); return (bool) $images->post_count; } function vp_pfui_pre_ping_post_links($post_links, $pung, $post_id = null) { // return if we don't get a post ID (pre WP 3.4) if (empty($post_id)) { return; } $url = get_post_meta($post_id, 'rst_link_url', true); if (!empty($url) && !in_array($url, $pung) && !in_array($url, $post_links)) { $post_links[] = $url; } } add_filter('pre_ping', 'vp_pfui_pre_ping_post_links', 10, 3); // For integration with Social plugin (strips {title} from broadcast format on status posts) function vp_pfui_social_broadcast_format($format, $post) { if (get_post_format($post) == 'status') { $format = trim(str_replace( array( '{title}:', '{title} -', '{title}', ), '', $format )); } return $format; } add_filter('social_broadcast_format', 'vp_pfui_social_broadcast_format', 10, 2); } // end defined check