/** * Edit an existing or new gallery * * This will render the edit form, in place of the gallery list, unless * the user does not have the privileges to edit any theme options. * * @see onGalleriesMenu() */ public static function showEditScreen(Main $owner, $per_page) { // Get the main meta box output (for Twig) ob_start(); do_meta_boxes(Main::PT_GALLERY, 'normal', $owner->gallery); do_meta_boxes(Main::PT_GALLERY, 'advanced', $owner->gallery); $meta_boxes_main = ob_get_clean(); // Get the side meta box output (for Twig) ob_start(); do_meta_boxes(Main::PT_GALLERY, 'side', $owner->gallery); $meta_boxes_side = ob_get_clean(); // Check if we start by displaying the right-side column; $screen = get_current_screen(); $columns = (int) get_user_option('screen_layout_' . $screen->id); if ($columns == 0) { $columns = 2; } // Image upload button iframe src (href) $image_media_library = add_query_arg(array('post_id' => $owner->gallery ? $owner->gallery->ID : '', 'type' => 'image'), admin_url('media-upload.php')); $image_media_library = apply_filters('image_upload_iframe_src', $image_media_library); // As used by WordPress // Add an "Add Image" media button $media_buttons['image']['id'] = 'add_image'; $media_buttons['image']['url'] = add_query_arg('filter', \Myatu\WordPress\BackgroundManager\Filter\MediaLibrary::FILTER, $image_media_library); // Add filter $media_buttons['image']['icon'] = admin_url('images/media-button-image.gif'); $media_buttons['image']['title'] = __('Add an Image', $owner->getName()); // Allow additional media buttons to be specified $media_buttons = apply_filters(Main::BASE_PUB_PREFIX . 'media_buttons', $media_buttons); // Ensure that media buttons have a `TB_iframe` as the last query arg foreach ($media_buttons as $media_button_key => $media_button_value) { if (isset($media_button_value['url'])) { $media_buttons[$media_button_key]['url'] = add_query_arg('TB_iframe', true, remove_query_arg('TB_iframe', $media_buttons[$media_button_key]['url'])); } } // Iframe source for listing the images - @see onIframeImages() $images_iframe_src = add_query_arg(array('iframe' => 'images', 'edit' => $owner->gallery->ID, 'orderby' => false, 'order' => false, 'pp' => $per_page, 'paged' => false)); // Iframe source for editing a single image - @see onIframeEditImage() $image_edit_src = add_query_arg(array('iframe' => 'edit_image', 'edit' => false, 'orderby' => false, 'order' => false, 'post_id' => $owner->gallery->ID, 'filter' => \Myatu\WordPress\BackgroundManager\Filter\MediaLibrary::FILTER)); $vars = array('is_wp34' => Helpers::checkWPVersion('3.4', '>='), 'has_right_sidebar' => $columns == 2 ? 'columns-2' . (Helpers::checkWPVersion('3.4', '>=') ? '' : ' has-right-sidebar') : '', 'nonce' => wp_nonce_field(Main::NONCE_EDIT_GALLERY . $owner->gallery->ID, '_nonce', true, false), 'nonce_meta_order' => wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false, false), 'nonce_meta_clsd' => wp_nonce_field('closedpostboxes', 'closedpostboxesnonce', false, false), 'images_iframe_src' => $images_iframe_src, 'image_edit_src' => $image_edit_src, 'gallery' => $owner->gallery, 'post_type' => Main::PT_GALLERY, 'meta_boxes_main' => $meta_boxes_main, 'meta_boxes_side' => $meta_boxes_side, 'media_buttons' => $media_buttons, 'is_new' => $owner->gallery->post_status != 'auto-draft', 'edit' => $owner->gallery->ID, 'images_per_page' => $per_page, 'images_count' => $owner->images->getCount($owner->gallery->ID), 'images_hash' => $owner->images->getHash($owner->gallery->ID), 'img_large_loader' => $owner->getPluginUrl() . Main::DIR_IMAGES . 'large_loader.gif', 'image_del_is_perm' => !EMPTY_TRASH_DAYS || !MEDIA_TRASH ? true : false); $owner->template->display('edit_gallery.html.twig', $vars); }