'label_gallery_defaults_attachment_pg', 'name' => 'gallery_defaults][attachment_pg', 'value' => esc_attr( $defaults['attachment_pg'] ), 'option_name' => DG_OPTION_NAME, 'description' => __( 'Link to attachment page rather than to file.', 'document-gallery' ) ) ); add_settings_field( 'gallery_defaults_columns', 'columns', array( 'DG_Admin', 'renderTextField' ), DG_OPTION_NAME, 'gallery_defaults', array( 'label_for' => 'label_gallery_defaults_columns', 'name' => 'gallery_defaults][columns', 'value' => esc_attr( $defaults['columns'] ), 'type' => 'number" min="1" step="1', 'option_name' => DG_OPTION_NAME, 'description' => __( 'The number of columns to display when not rendering descriptions.', 'document-gallery' ) ) ); add_settings_field( 'gallery_defaults_descriptions', 'descriptions', array( 'DG_Admin', 'renderCheckboxField' ), DG_OPTION_NAME, 'gallery_defaults', array( 'label_for' => 'label_gallery_defaults_descriptions', 'name' => 'gallery_defaults][descriptions', 'value' => esc_attr( $defaults['descriptions'] ), 'option_name' => DG_OPTION_NAME, 'description' => __( 'Include document descriptions.', 'document-gallery' ) ) ); add_settings_field( 'gallery_defaults_fancy', 'fancy', array( 'DG_Admin', 'renderCheckboxField' ), DG_OPTION_NAME, 'gallery_defaults', array( 'label_for' => 'label_gallery_defaults_fancy', 'name' => 'gallery_defaults][fancy', 'value' => esc_attr( $defaults['fancy'] ), 'option_name' => DG_OPTION_NAME, 'description' => __( 'Use auto-generated document thumbnails.', 'document-gallery' ) ) ); add_settings_field( 'gallery_defaults_order', 'order', array( 'DG_Admin', 'renderSelectField' ), DG_OPTION_NAME, 'gallery_defaults', array( 'label_for' => 'label_gallery_defaults_order', 'name' => 'gallery_defaults][order', 'value' => esc_attr( $defaults['order'] ), 'options' => DG_GallerySanitization::getOrderOptions(), 'option_name' => DG_OPTION_NAME, 'description' => __( 'Ascending or descending sorting of documents.', 'document-gallery' ) ) ); add_settings_field( 'gallery_defaults_orderby', 'orderby', array( 'DG_Admin', 'renderSelectField' ), DG_OPTION_NAME, 'gallery_defaults', array( 'label_for' => 'label_gallery_defaults_orderby', 'name' => 'gallery_defaults][orderby', 'value' => esc_attr( $defaults['orderby'] ), 'options' => DG_GallerySanitization::getOrderbyOptions(), 'option_name' => DG_OPTION_NAME, 'description' => __( 'Which field to order documents by.', 'document-gallery' ) ) ); add_settings_field( 'gallery_defaults_relation', 'relation', array( 'DG_Admin', 'renderSelectField' ), DG_OPTION_NAME, 'gallery_defaults', array( 'label_for' => 'label_gallery_defaults_relation', 'name' => 'gallery_defaults][relation', 'value' => esc_attr( $defaults['relation'] ), 'options' => DG_GallerySanitization::getRelationOptions(), 'option_name' => DG_OPTION_NAME, 'description' => __( 'Whether matched documents must have all taxa_names (AND) or at least one (OR).', 'document-gallery' ) ) ); add_settings_field( 'gallery_defaults_limit', 'limit', array( 'DG_Admin', 'renderTextField' ), DG_OPTION_NAME, 'gallery_defaults', array( 'label_for' => 'label_gallery_defaults_limit', 'name' => 'gallery_defaults][limit', 'value' => esc_attr( $defaults['limit'] ), 'type' => 'number" min="-1" step="1', 'option_name' => DG_OPTION_NAME, 'description' => __( 'Limit the number of documents included. -1 means no limit.', 'document-gallery' ) ) ); add_settings_field( 'gallery_defaults_mime_types', 'mime_types', array( 'DG_Admin', 'renderTextField' ), DG_OPTION_NAME, 'gallery_defaults', array( 'label_for' => 'label_gallery_defaults_mime_types', 'name' => 'gallery_defaults][mime_types', 'value' => esc_attr( $defaults['mime_types'] ), 'type' => 'text', 'option_name' => DG_OPTION_NAME, 'description' => __( 'Comma-delimited list of MIME types.', 'document-gallery' ) ) ); add_settings_field( 'gallery_defaults_new_window', 'new_window', array( 'DG_Admin', 'renderCheckboxField' ), DG_OPTION_NAME, 'gallery_defaults', array( 'label_for' => 'label_gallery_defaults_new_window', 'name' => 'gallery_defaults][new_window', 'value' => esc_attr( $defaults['new_window'] ), 'option_name' => DG_OPTION_NAME, 'description' => __( 'Open thumbnail links in new window.', 'document-gallery' ) ) ); add_settings_field( 'gallery_defaults_paginate', 'paginate', array( 'DG_Admin', 'renderCheckboxField' ), DG_OPTION_NAME, 'gallery_defaults', array( 'label_for' => 'label_gallery_defaults_paginate', 'name' => 'gallery_defaults][paginate', 'value' => esc_attr( $defaults['paginate'] ), 'option_name' => DG_OPTION_NAME, 'description' => __( 'When a limit exists, paginate rather than truncating gallery.', 'document-gallery' ) ) ); add_settings_field( 'gallery_defaults_post_status', 'post_status', array( 'DG_Admin', 'renderSelectField' ), DG_OPTION_NAME, 'gallery_defaults', array( 'label_for' => 'label_gallery_defaults_post_status', 'name' => 'gallery_defaults][post_status', 'value' => esc_attr( $defaults['post_status'] ), 'options' => DG_GallerySanitization::getPostStatuses(), 'option_name' => DG_OPTION_NAME, 'description' => __( 'Which post status to look for when querying documents.', 'document-gallery' ) ) ); add_settings_field( 'gallery_defaults_post_type', 'post_type', array( 'DG_Admin', 'renderSelectField' ), DG_OPTION_NAME, 'gallery_defaults', array( 'label_for' => 'label_gallery_defaults_post_type', 'name' => 'gallery_defaults][post_type', 'value' => esc_attr( $defaults['post_type'] ), 'options' => DG_GallerySanitization::getPostTypes(), 'option_name' => DG_OPTION_NAME, 'description' => __( 'Which post type to look for when querying documents.', 'document-gallery' ) ) ); /*add_settings_field( 'thumbnail_generation_thumber-co', __( 'Thumber.co', 'document-gallery' ), array( 'DG_Admin', 'renderCheckboxField' ), DG_OPTION_NAME, 'thumbnail_generation', array( 'label_for' => 'label_thumbnail_generation_thumber-co', 'name' => 'thumbnail_generation][thumber-co', 'value' => esc_attr( $active['thumber-co'] ), 'option_name' => DG_OPTION_NAME, 'description' => __( 'Use your Thumber.co subscription to remotely generate document thumbnails.' , 'document-gallery' ), 'disabled' => ! DG_ThumberCoThumber::isThumberCoAvailable() ) );*/ add_settings_field( 'thumbnail_generation_av', __( 'Audio/Video', 'document-gallery' ), array( 'DG_Admin', 'renderCheckboxField' ), DG_OPTION_NAME, 'thumbnail_generation', array( 'label_for' => 'label_thumbnail_generation_av', 'name' => 'thumbnail_generation][av', 'value' => esc_attr( $active['av'] ), 'option_name' => DG_OPTION_NAME, 'description' => esc_html__( 'Locally generate thumbnails for audio & video files.', 'document-gallery' ) ) ); add_settings_field( 'thumbnail_generation_gs', 'Ghostscript', array( 'DG_Admin', 'renderCheckboxField' ), DG_OPTION_NAME, 'thumbnail_generation', array( 'label_for' => 'label_thumbnail_generation_gs', 'name' => 'thumbnail_generation][gs', 'value' => esc_attr( $active['gs'] ), 'option_name' => DG_OPTION_NAME, 'description' => DG_GhostscriptThumber::isGhostscriptAvailable() ? __( 'Use Ghostscript for faster local PDF processing (compared to Imagick).', 'document-gallery' ) : __( 'Your server is not configured to run Ghostscript.', 'document-gallery' ), 'disabled' => ! DG_GhostscriptThumber::isGhostscriptAvailable() ) ); add_settings_field( 'thumbnail_generation_imagick', 'Imagick', array( 'DG_Admin', 'renderCheckboxField' ), DG_OPTION_NAME, 'thumbnail_generation', array( 'label_for' => 'label_thumbnail_generation_imagick', 'name' => 'thumbnail_generation][imagick', 'value' => esc_attr( $active['imagick'] ), 'option_name' => DG_OPTION_NAME, 'description' => DG_ImagickThumber::isImagickAvailable() ? __( 'Use Imagick to handle lots of filetypes locally.', 'document-gallery' ) : __( 'Your server is not configured to run Imagick.', 'document-gallery' ), 'disabled' => ! DG_ImagickThumber::isImagickAvailable() ) ); add_settings_field( 'thumbnail_generation_width', __( 'Max Thumbnail Dimensions', 'document-gallery' ), array( 'DG_Admin', 'renderMultiTextField' ), DG_OPTION_NAME, 'thumbnail_generation', array( array( 'label_for' => 'label_advanced_width', 'name' => 'thumbnail_generation][width', 'value' => esc_attr( $dg_options['thumber']['width'] ), 'type' => 'number" min="1" step="1', 'option_name' => DG_OPTION_NAME, 'description' => ' x ' ), array( 'label_for' => 'label_advanced_height', 'name' => 'thumbnail_generation][height', 'value' => esc_attr( $dg_options['thumber']['height'] ), 'type' => 'number" min="1" step="1', 'option_name' => DG_OPTION_NAME, 'description' => __( 'The max width and height (in pixels) that thumbnails will be generated.', 'document-gallery' ) ) ) ); } /** * Validate settings for the tab. */ function dg_validate_settings( $values ) { global $dg_options; $ret = $dg_options; include_once DG_PATH . 'inc/class-gallery.php'; $thumbs_cleared = false; // handle gallery shortcode defaults $errs = array(); $ret['gallery'] = DG_Gallery::sanitizeDefaults( null, $values['gallery_defaults'], $errs ); foreach ( $errs as $k => $v ) { add_settings_error( DG_OPTION_NAME, str_replace( '_', '-', $k ), $v ); } // handle setting width if ( isset( $values['thumbnail_generation']['width'] ) ) { $width = (int) $values['thumbnail_generation']['width']; if ( $width > 0 ) { $ret['thumber']['width'] = $width; } else { add_settings_error( DG_OPTION_NAME, 'thumber-width', __( 'Invalid width given: ', 'document-gallery' ) . $values['thumbnail_generation']['width'] ); } unset( $values['thumbnail_generation']['width'] ); } // handle setting height if ( isset( $values['thumbnail_generation']['height'] ) ) { $height = (int) $values['thumbnail_generation']['height']; if ( $height > 0 ) { $ret['thumber']['height'] = $height; } else { add_settings_error( DG_OPTION_NAME, 'thumber-height', __( 'Invalid height given: ', 'document-gallery' ) . $values['thumbnail_generation']['height'] ); } unset( $values['thumbnail_generation']['width'] ); } // delete thumb cache to force regeneration if max dimensions changed if ( $ret['thumber']['width'] !== $dg_options['thumber']['width'] || $ret['thumber']['height'] !== $dg_options['thumber']['height'] ) { DG_Thumb::purgeThumbs(); } // handle setting the active thumbers foreach ( array_keys( $ret['thumber']['active'] ) as $k ) { $ret['thumber']['active'][ $k ] = isset( $values['thumbnail_generation'][ $k ] ); } // if new thumbers available, clear failed thumbnails for retry if ( ! $thumbs_cleared ) { DG_Thumb::purgeFailedThumbs(); } // handle modified CSS if ( trim( $ret['css']['text'] ) !== trim( $values['css'] ) ) { $ret['css']['text'] = trim( $values['css'] ); } return $ret; } /** * Render the Default Settings section. */ function dg_render_default_settings_section() { ?>
style.css.', 'document-gallery' ), DG_URL . 'assets/css/style.css' ); ?>