/**
  * Constructs instance of Document.
  *
  * @param WP_Post $attachment Attachment object used to initalize fields.
  * @param DG_Gallery $gallery Instance of Gallery class.
  */
 public function __construct($attachment, $gallery)
 {
     // init general document data
     $this->gallery = $gallery;
     $this->description = wptexturize($attachment->post_content);
     $this->ID = $attachment->ID;
     $this->link = $gallery->linkToAttachmentPg() ? get_attachment_link($attachment->ID) : wp_get_attachment_url($attachment->ID);
     $this->title = wptexturize($attachment->post_title);
     $this->title_attribute = esc_attr(strip_tags($this->title));
     $this->path = get_attached_file($attachment->ID);
     $wp_filetype = wp_check_filetype_and_ext($this->path, basename($this->path));
     $this->extension = $wp_filetype['ext'];
     $this->size = size_format(filesize($this->path));
 }
 /**
  * Initializes static values for this class.
  */
 public static function init()
 {
     if (!isset(self::$comment)) {
         self::$comment = PHP_EOL . '<!-- ' . __('Generated using Document Gallery. Get yours here: ', 'document-gallery') . 'http://wordpress.org/extend/plugins/document-gallery -->' . PHP_EOL;
         self::$no_docs = '<!-- ' . __('No attachments to display. How boring! :(', 'document-gallery') . ' -->';
         self::$unary_err = __('The %s value entered, "%s", is not valid.', 'document-gallery');
         self::$binary_err = __('The %s parameter may only be "%s" or "%s." You entered "%s."', '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;
}
 /**
  * Sanitize the given key/value pair, passing any error to $errs if given.
  *
  * @param string $key The key to reference the current value in the defaults array.
  * @param mixed $value The value to be sanitized.
  * @param string[] $errs The array of errors, which will be appended with any errors found.
  *
  * @return mixed The sanitized value, falling back to the current default value when invalid value given.
  */
 public static function sanitizeParameter($key, $value, &$errs = null)
 {
     // all sanitize methods must be in the following form: sanitize<UpperCamelCaseKey>
     $funct = $key;
     $funct[0] = strtoupper($funct[0]);
     $funct = 'sanitize' . preg_replace_callback('/_([a-z])/', array(__CLASS__, 'secondCharToUpper'), $funct);
     $callable = array(__CLASS__, $funct);
     // avoid looking for method beforehand unless we're running in debug mode -- expensive call
     if (DG_Logger::logEnabled() && !method_exists(__CLASS__, $funct)) {
         DG_Logger::writeLog(DG_LogLevel::Error, __('Attempted to call invalid function: ', 'document-gallery') . implode('::', $callable), true);
     }
     // call param-specific sanitization
     $ret = call_user_func_array($callable, array($value, &$err));
     // check for error and return default
     if (isset($err)) {
         $defaults = DG_Gallery::getOptions();
         $ret = $defaults[$key];
         if (!is_null($errs)) {
             $errs[$key] = $err;
         }
     }
     return $ret;
 }
 /**
  * Initializes static values for this class.
  */
 public static function init()
 {
     if (!isset(self::$comment)) {
         self::$comment = PHP_EOL . '<!-- ' . __('Generated using Document Gallery. Get yours here: ', 'document-gallery') . 'http://wordpress.org/extend/plugins/document-gallery -->' . PHP_EOL;
         self::$no_docs = '<!-- ' . __('No attachments to display. How boring! :(', 'document-gallery') . ' -->';
         self::$defaults = array_merge(array('include' => '', 'exclude' => ''), self::getOptions());
     }
 }
				<?php 
}
?>
			</select></td>
		</tr></table>
	</label>

	<label class="setting">
		<table><tr>
			<td><span><?php 
_e('Ascending or descending sorting of documents', 'document-gallery');
?>
</span></td>
			<td><select class="order" name="order" data-setting="order">
				<?php 
foreach (DG_Gallery::getOrderOptions() as $i) {
    ?>
					<option value="<?php 
    echo esc_attr($i);
    ?>
" <#
						if ( '<?php 
    echo $i;
    ?>
' == documentGalleryDefaults.order ) { #>selected="selected"<# }
					#>>
						<?php 
    echo esc_html($i);
    ?>
					</option>
				<?php