Commit 0f3ec102 authored by ufku's avatar ufku
Browse files

Issue #3255084: Added support for webp images

parent 655c745d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -367,6 +367,7 @@
.file-tif > .imce-item-icon:before,
.file-tiff > .imce-item-icon:before,
.file-png > .imce-item-icon:before,
.file-webp > .imce-item-icon:before,
.file-gif > .imce-item-icon:before {
  content: "\e603";
}
+21 −3
Original line number Diff line number Diff line
@@ -458,8 +458,13 @@ class ImceFM {
   * Returns js properties of a file.
   */
  public function getFileProperties($uri) {
    $properties = ['date' => filemtime($uri), 'size' => filesize($uri)];
    if (preg_match('/\.(jpe?g|png|gif)$/i', $uri) && $info = getimagesize($uri)) {
    $properties = [
      'date' => filemtime($uri),
      'size' => filesize($uri),
    ];
    // Get image properties
    $regexp = isset($this->conf['image_extensions_regexp']) ? $this->conf['image_extensions_regexp'] : $this->imageExtensionsRegexp();
    if ($regexp && preg_match($regexp, $uri) && $info = getimagesize($uri)) {
      $properties['width'] = $info[0];
      $properties['height'] = $info[1];
      $style = $this->getThumbnailStyle();
@@ -623,7 +628,7 @@ class ImceFM {
   * Checks if all the selected items are images.
   */
  public function validateImageTypes(array $items, $silent = FALSE) {
    $regex = '/\.(' . preg_replace('/ +/', '|', preg_quote(trim($this->getConf('image_extensions', 'jpg jpeg png gif')))) . ')$/i';
    $regex = $this->imageExtensionsRegexp();
    foreach ($items as $item) {
      if ($item->type === 'folder' || !preg_match($regex, $item->name)) {
        if (!$silent) {
@@ -635,6 +640,19 @@ class ImceFM {
    return TRUE;
  }

  /**
   * Builds and returns image extension regular expression.
   */
  public function imageExtensionsRegexp() {
    // Build only once
    $regexp = &$this->conf['image_extensions_regexp'];
    if (!isset($regexp)) {
      $exts = trim($this->getConf('image_extensions', 'jpg jpeg png gif webp'));
      $regexp = $exts ? '/\.(' . preg_replace('/ +/', '|', $exts) . ')$/i' : FALSE;
    }
    return $regexp;
  }

  /**
   * Builds file manager page.
   */