예제 #1
0
 public function doAction($type)
 {
     global $DIR_MEDIA, $member;
     $type = (string) $type;
     $path = '';
     $maxwidth = '';
     $maxheight = '';
     if (array_key_exists('path', $_GET)) {
         $path = (string) $_GET['path'];
     }
     if (array_key_exists('width', $_GET)) {
         $maxwidth = (int) $_GET['width'];
     }
     if (array_key_exists('height', $_GET)) {
         $maxheight = (int) $_GET['height'];
     }
     if (self::$buffering) {
         ob_end_clean();
     }
     if (in_array($type, array('admin', 'clear', 'sync')) && $member->isAdmin()) {
         $this->showAdmin($type);
         exit;
     }
     if ($maxwidth <= 0 || $maxwidth > 1000 || $maxheight <= 0 || $maxheight > 1000) {
         MediaUtils::error($this->t(_NP_THUMBNAIL_10, array($maxwidth, $maxheight)));
         return;
     }
     if (FALSE === ($medium = new Medium($DIR_MEDIA, $path, MediaUtils::$prefix))) {
         MediaUtils::error($this->t(_NP_THUMBNAIL_11, array($path)));
         return;
     }
     if (FALSE === $medium->setResampledSize($maxwidth, $maxheight)) {
         MediaUtils::error($this->t(_NP_THUMBNAIL_10, array($maxwidth, $maxheight)));
         return;
     }
     MediaUtils::responseResampledImage($medium);
     return;
 }