/** * Create a new thumbnail for the image object * * This uses this Images' key to determine the Imagetype and its * default thumbnail size. * @return boolean True on success, false otherwise. * @author Reto Kohli <*****@*****.**> */ function makeThumbnail() { global $objDatabase; if (!$this->id) { return false; } // Only try to create thumbs from entries that contain a // file name with a known extension if ($this->path == '' || !preg_match('/\\.(?:jpe?g|gif|png)$/i', $this->path)) { return false; } // Get the thumbnail size for the associated type $arrOptions = \Cx\Core\ImageType\Controller\ImageType::getThumbnailOptions($this->imagetype_key); return self::createThumbnail($this->path, $arrOptions['width'], $arrOptions['height'], $arrOptions['quality']); }
/** * Returns HTML code for an image element with form * elements for uploading an image file. * * Uses the $id parameter as prefix for both the name and id attributes * of all HTML elements. The names and respective suffixes are: * - id+'_img' for the name and id of the <img> tag * - id+'_src' for the name and id of the hidden <input> tag for the image path * - id+'_type' for the name and id of the hidden <input> tag or <select> * menu for the Imagetype * - id+'_width' for the name and id of the hidden <input> tag for the width * - id+'_height' for the name and id of the hidden <input> tag for the height * - id+'_file' for the name and id of the file upload element * The file upload element will provide the new image chosen by the user * when the form is posted, while the hidden fields represent the previous * state when the page was generated. * The $path_default will replace the path of the image shown if that is * empty, but the path posted back will remain empty so the default image * is not accidentally stored. * If the optional $imagetype_key is empty or not an array, * no image type can be selected. If it's false, the image type field is * omitted. If it's empty but not false, the current * Image's type is used. If it's a string, the type is set to * that value, overriding the Image's current type. If it's an array, * the Image type can be selected from its values, and the current Image's * key is preselected. The array keys *SHOULD* contain the Imagetype key, * its values the Imagetype names in the current language. * See {@see Image::updatePostImages()} and {@see Image::uploadAndStore()} * for more information and examples. * @param Image $objImage The image object * @param string $id The base name for the elements IDs * @param mixed $imagetype_key The optional Image type key or * Imagetype array. Defaults to the * empty string * @param string $path_default The optional path of a default image. * Defaults to the empty string * @param boolean $replace_only If true, the image cannot be deleted, * but there's always a file upload input * to replace the current image. * Defaults to false * @return string The HTML code for all the elements */ static function getImageChooserUpload($objImage, $id, $imagetype_key = '', $path_default = '', $replace_only = false) { global $_CORELANG; JS::registerCode(self::getJavascript_Image($path_default)); if (empty($objImage)) { $objImage = new Image(0); } $path = $objImage->getPath(); $path_thumb = $path_default; $width = $height = null; if ($path) { $path_thumb = $path ? Image::getThumbnailPath($path) : ''; list($width, $height) = $objImage->getSizeArrayThumbnail(); } else { if (empty($width) && empty($height)) { $key = is_array($imagetype_key) ? '' : $imagetype_key; $width = \Cx\Core\ImageType\Controller\ImageType::getWidthThumbnail($key); $height = \Cx\Core\ImageType\Controller\ImageType::getHeightThumbnail($key); } } // $arrImagetypeName = \Cx\Core\ImageType\Controller\ImageType::getNameArray(); // if ($imagetype_key === false) // $imagetype_key = $objImage->getImagetypeKey(); $path_preview = (defined('BACKEND_LANG_ID') ? '../' : '') . $path_thumb; return self::getImageByPath($path_preview, 'style="width: ' . $width . 'px; height: ' . $height . 'px;"' . ' title="' . $_CORELANG['TXT_CORE_HTML_IMAGE_PREVIEW'] . '"' . ' alt="' . $_CORELANG['TXT_CORE_HTML_IMAGE_PREVIEW'] . '"' . ' id=' . $id . '_img') . "\n" . ($path ? ($replace_only ? '' : self::getClearImageCode($id)) . self::getHidden($id . '_src', $objImage->getPath(), '') : '') . '<br />' . '<br />' . ($path ? sprintf($_CORELANG['TXT_CORE_HTML_IMAGE_CURRENT'], basename($objImage->getPath())) . '<br />' : '') . \Cx\Core\ImageType\Controller\ImageType::getMenu($id, $objImage->getImagetypeKey(), $imagetype_key) . self::getHidden($id . '_id', $objImage->getId(), '') . self::getHidden($id . '_ord', $objImage->getOrd(), '') . '<br />' . self::getInputFileupload($id, '', Image::MAXIMUM_UPLOAD_FILE_SIZE, Filetype::MIMETYPE_IMAGES_WEB, '', $replace_only || empty($path)); }