/**
 * 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';
Пример #3
0
 /**
  * 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'];
     }
 }