static function upload_new_overlay($file) { $tmp = $file['tmp_name']; $name = $file['name']; switch ($file['error']) { case UPLOAD_ERR_INI_SIZE: emboss::error(t("File size of {$name} exceeds maximum upload limit on server")); return; break; case UPLOAD_ERR_FORM_SIZE: emboss::error(t("File size of {$name} exceeds maximum upload limit set on page")); return; break; case UPLOAD_ERR_PARTIAL: emboss::error(t("File {$name} only partially uploaded")); return; break; case UPLOAD_ERR_NO_FILE: emboss::error(t("File {$name} failed to upload")); return; break; } $image_info = getimagesize($tmp); $types[] = IMAGETYPE_GIF; $types[] = IMAGETYPE_JPEG; $types[] = IMAGETYPE_PNG; if (!$image_info || !in_array($image_info[2], $types)) { emboss::error(t('Overlay image must be GIF, JPG, or PNG')); @unlink($tmp); return; } $n = db::build()->select('id')->from('emboss_overlays')->where('name', '=', $name)->execute()->count(); if ($n > 0) { emboss::error(t("Overlay named {$name} already exists.")); @unlink($tmp); return; } $width = $image_info[0]; $height = $image_info[1]; $where1 = array('width', '=', $width); $where2 = array('height', '=', $height); $where = array($where1, $where2); $n = db::build()->select('id')->from('emboss_overlays')->where('width', '=', $width)->where('height', '=', $height)->execute()->count(); if ($n > 0) { emboss::error(t("Overlay with dimensions {$width} x {$height} already exists.")); @unlink($tmp); return; } @rename($tmp, VARPATH . 'modules/emboss/' . $name); $overlay = ORM::factory('emboss_overlay'); $overlay->name = $name; $overlay->width = $width; $overlay->height = $height; $overlay->active = 1; $overlay->save(); emboss::success('Succesfully uploaded overlay ' . $file['name']); emboss::evaluate_overlays(); }