/** * Validate settings for the tab. */ function dg_validate_settings($values) { global $dg_options; $ret = $dg_options; $responseArr = array('result' => false); if (isset($values['entry'])) { $ID = intval($values['entry']); } else { $ID = -1; } // Thumbnail(s) cleanup; // cleanup value is a marker if (isset($values['cleanup']) && isset($values['ids'])) { $deleted = array_values(array_intersect(array_keys(DG_Thumb::getThumbs()), $values['ids'])); DG_Thumb::purgeThumbs($deleted); $responseArr['result'] = true; $responseArr['deleted'] = $deleted; } elseif (isset($values['title']) && $ID != -1) { $attachment = array('ID' => $ID, 'post_title' => rawurldecode(addslashes($values['title']))); if (wp_update_post($attachment)) { $responseArr['result'] = true; } } elseif (isset($values['description']) && $ID != -1) { $attachment = array('ID' => $ID, 'post_content' => rawurldecode(addslashes($values['description']))); if (wp_update_post($attachment)) { $responseArr['result'] = true; } } elseif (isset($values['upload']) && isset($_FILES['file']) && array_key_exists($ID, DG_Thumb::getThumbs())) { $uploaded_filename = DG_Admin::validateUploadedFile(); if ($uploaded_filename && ($thumb = DG_Thumber::setThumbnail($ID, $uploaded_filename))) { $responseArr['result'] = true; $responseArr['url'] = $thumb->getUrl(); } } if (defined('DOING_AJAX') && DOING_AJAX) { @header('Content-Type: application/json; charset=' . get_option('blog_charset')); echo wp_json_encode($responseArr); add_filter('wp_redirect', 'dg_exit', 1, 0); } return $ret; }
// cleanup cached data when thumbed attachment deleted include_once DG_PATH . 'inc/class-thumber.php'; add_action('delete_attachment', array('DG_Thumb', 'cleanupAttachmentMeta')); if (is_admin()) { // admin house keeping include_once DG_PATH . 'admin/class-admin.php'; // AJAX handling include_once DG_PATH . 'admin/class-ajax-handler.php'; // add links to plugin index add_filter('plugin_action_links_' . DG_BASENAME, array('DG_Admin', 'addSettingsLink')); add_filter('plugin_row_meta', array('DG_Admin', 'addDonateLink'), 10, 2); // build options page add_action('admin_menu', array('DG_Admin', 'addAdminPage')); // add meta box for managing thumbnail generation to attachment Edit Media page add_action('add_meta_boxes', array('DG_Admin', 'addMetaBox')); add_action('wp_ajax_dg_upload_thumb', array('DG_Admin', 'saveMetaBox')); if (DG_Admin::doRegisterSettings()) { add_action('admin_init', array('DG_Admin', 'registerSettings')); } } else { // styling for gallery if (apply_filters('dg_use_default_gallery_style', true)) { add_action('wp_enqueue_scripts', array('DocumentGallery', 'enqueueGalleryStyle')); } add_action('wp_print_scripts', array('DocumentGallery', 'printCustomStyle')); add_action('wp_enqueue_scripts', array('DocumentGallery', 'enqueueGalleryScript')); } // adds 'dg' shortcode add_shortcode('dg', array('DocumentGallery', 'doShortcode')); // public API for developers include_once DG_PATH . 'inc/class-api.php';
/** * Registers settings for the Document Gallery options page. */ public static function registerSettings() { if (empty($_REQUEST['tab']) || !array_key_exists($_REQUEST['tab'], self::getTabs())) { reset(self::getTabs()); self::$current = key(self::getTabs()); } else { self::$current = $_REQUEST['tab']; } register_setting(DG_OPTION_NAME, DG_OPTION_NAME, array(__CLASS__, 'validateSettings')); $funct = 'register' . self::$current . 'Settings'; DG_Admin::$funct(); }
/** * Initializes the current tab value. */ private static function initCurrentTab() { if (empty($_GET['tab']) || !array_key_exists($_GET['tab'], self::getTabs())) { reset(self::getTabs()); self::$current = key(self::getTabs()); } else { self::$current = $_GET['tab']; } }