// process uploads foreach ($_FILES as $file) { if (!is_array($file['name'])) { continue; } for ($i = 0; isset($file['name'][$i]); ++$i) { ++$total; // check file if ($file['error'][$i] != 0 || !is_uploaded_file($file['tmp_name'][$i])) { continue; } // prepare options $picOpts = array('file_path' => $file['tmp_name'][$i], 'file_name' => $file['name'][$i], 'target_path' => $stor, 'jpg_quality' => 95, 'resize' => array('mode' => 'fit', 'keep_smaller' => true, 'pad' => false, 'x' => _galuploadresize_w, 'y' => _galuploadresize_h)); _extend('call', 'admin.gallery.picture', array('opts' => &$picOpts)); // process $picUid = _pictureProcess($picOpts, $picError, $picFormat); if (false === $picUid) { continue; } $done[] = $picUid . '.' . $picFormat; } } // save to database if (!empty($done)) { // get order number if (isset($_POST['moveords'])) { // move $ord = 0; DB::query('UPDATE `' . _mysql_prefix . '-images` SET ord=ord+' . count($done) . ' WHERE home=' . $g); } else { // get max + 1
$web = ""; } else { $web = DB::esc($web); } // avatar $avatar = $query['avatar']; if (_uploadavatar) { // smazani avataru if (_checkboxLoad("removeavatar") && isset($avatar)) { @unlink(_indexroot . 'pictures/avatars/' . $avatar . '.jpg'); $avatar = null; } // upload avataru if (isset($_FILES['avatar']) && is_uploaded_file($_FILES['avatar']['tmp_name'])) { // zpracovani $avatarUid = _pictureProcess(array('file_path' => $_FILES['avatar']['tmp_name'], 'file_name' => $_FILES['avatar']['name'], 'limit' => array('filesize' => 1048576, 'dimensions' => array('x' => 1400, 'y' => 1400)), 'resize' => array('mode' => 'zoom', 'x' => 96, 'y' => 128), 'target_path' => _indexroot . 'pictures/avatars/', 'target_format' => 'jpg', 'jpg_quality' => 95), $avatarError); if (false !== $avatarUid) { // smazani stareho avataru if (null !== $avatar) { @unlink(_indexroot . 'pictures/avatars/' . $avatar . '.jpg'); } // ok $avatar = $avatarUid; } else { $errors[] = $_lang['global.avatar'] . ' - ' . $avatarError; } } } // password $passwordchange = false; if ($_POST['currentpassword'] != "" or $_POST['newpassword'] != "" or $_POST['newpassword-confirm'] != "") {
} if ($newdata['home2'] == $newdata['home3'] or $newdata['home1'] == $newdata['home3']) { $newdata['home3'] = -1; } // autor if (DB::result(DB::query("SELECT COUNT(id) FROM `" . _mysql_prefix . "-users` WHERE id=" . $newdata['author'] . " AND (id=" . _loginid . " OR (SELECT level FROM `" . _mysql_prefix . "-groups` WHERE id=`" . _mysql_prefix . "-users`.`group`)<" . _loginright_level . ")"), 0) == 0) { $error_log[] = $_lang['admin.content.articles.edit.error3']; } // obrazek $newdata['picture_uid'] = $query['picture_uid']; if (isset($_FILES['picture']) && is_uploaded_file($_FILES['picture']['tmp_name'])) { // priprava moznosti zmeny velikosti $picOpts = array('file_path' => $_FILES['picture']['tmp_name'], 'file_name' => $_FILES['picture']['name'], 'target_path' => _indexroot . 'pictures/articles/', 'target_format' => 'jpg', 'resize' => array('mode' => 'fit', 'keep_smaller' => true, 'pad' => false, 'x' => _article_pic_w, 'y' => _article_pic_h)); _extend('call', 'admin.article.picture', array('opts' => &$picOpts)); // zpracovani $picUid = _pictureProcess($picOpts, $picError); if (false !== $picUid) { // uspech if (isset($query['picture_uid'])) { // odstraneni stareho @unlink(_pictureStorageGet(_indexroot . 'pictures/articles/', null, $query['picture_uid'], 'jpg')); } $newdata['picture_uid'] = $picUid; } else { // chyba $error_log[] = $_lang['admin.content.form.picture'] . ' - ' . $picError; } } elseif (isset($query['picture_uid']) && _checkboxLoad('picture-delete')) { // smazani obrazku @unlink(_pictureStorageGet(_indexroot . 'pictures/articles/', null, $query['picture_uid'], 'jpg')); $newdata['picture_uid'] = null;
/** * Vygenerovat cachovanou miniaturu obrazku * @param string $source cesta ke zdrojovemu obrazku * @param array $resize_opts volby pro zmenu velikosti, viz _pictureResize() (mode je prednastaven na zoom) * @param $use_error_image vratit chybovy obrazek pri neuspechu namisto false * @param string &$error promenna, kam bude ulozena pripadna chybova hlaska * @return string|bool cesta k miniature nebo chybovemu obrazku nebo false pri neuspechu */ function _pictureThumb($source, array $resize_opts, $use_error_image = true, &$error = null) { // zjistit priponu $ext = strtolower(pathinfo($source, PATHINFO_EXTENSION)); if (!in_array($ext, SL::$imageExt)) { return $use_error_image ? SL::$imageError : false; } // sestavit cestu do adresare $path = _indexroot . 'pictures/thumb/'; // extend pro nastaveni velikosti _extend('call', 'sys.thumb.resize', array('options' => &$resize_opts)); // vychozi nastaveni zmenseni $resize_opts += array('mode' => 'zoom', 'trans' => 'png' === $ext || 'gif' === $ext, 'trans_format' => $ext); // normalizovani nastaveni zmenseni if (!isset($resize_opts['x']) || 0 == $resize_opts['x']) { $resize_opts['x'] = null; } else { $resize_opts['x'] = intval($resize_opts['x']); } if (!isset($resize_opts['y']) || 0 == $resize_opts['y']) { $resize_opts['y'] = null; } else { $resize_opts['y'] = intval($resize_opts['y']); } // vygenerovat hash ksort($resize_opts); if (isset($resize_opts['bgcolor'])) { ksort($resize_opts['bgcolor']); } $hash = md5(realpath($source) . '$' . serialize($resize_opts)); // sestavit cestu k obrazku $image_path = $path . $hash . '.' . $ext; // zkontrolovat cache if (file_exists($image_path)) { // obrazek j*z existuje if (time() - filemtime($image_path) >= _thumb_touch_threshold) { touch($image_path); } return $image_path; } else { // obrazek neexistuje $options = array('file_path' => $source, 'resize' => $resize_opts, 'target_path' => $path, 'target_uid' => $hash); // extend _extend('call', 'sys.thumb.process', array('options' => &$options)); // vygenerovat if (false !== _pictureProcess($options, $error)) { // uspech return $image_path; } else { // chyba return $use_error_image ? SL::$imageError : false; } } }