Example #1
0
 $link = cmsCore::request('b_link', 'str');
 $typeimg = cmsCore::request('typeimg', 'str');
 $maxhits = cmsCore::request('maxhits', 'int');
 $maxuser = 0;
 $published = cmsCore::request('published', 'int', 0);
 $position = cmsCore::request('position', 'str');
 if (@$_FILES['picture']['size']) {
     $ext = mb_strtolower(pathinfo($_FILES['picture']['name'], PATHINFO_EXTENSION));
     if (!in_array($ext, array('jpg', 'jpeg', 'gif', 'png', 'swf'))) {
         cmsCore::addSessionMessage($_LANG['AD_INCORRECT_FILE_TYPE'], 'error');
         cmsCore::redirectBack();
     }
     $filename = md5(microtime()) . '.' . $ext;
     $uploaddir = PATH . '/images/banners/';
     $uploadfile = $uploaddir . $filename;
     if (cmsCore::moveUploadedFile($_FILES['picture']['tmp_name'], $uploadfile, $_FILES['picture']['error'])) {
         if ($opt == 'submit') {
             $sql = "INSERT INTO cms_banners (position, typeimg, fileurl, hits, clicks, maxhits, maxuser, user_id, pubdate, title, link, published)\n                        VALUES ('{$position}', '{$typeimg}', '{$filename}', 0, 0, '{$maxhits}', '{$maxuser}', 1, NOW(), '{$title}', '{$link}', '{$published}')";
             $inDB->query($sql);
             cmsCore::redirect('?view=components&do=config&opt=list&id=' . $id);
         } else {
             $fileurl = $inDB->get_field('cms_banners', "id = '{$item_id}'", 'fileurl');
             @unlink($uploaddir . $fileurl);
             $sql = "UPDATE cms_banners SET fileurl = '{$filename}' WHERE id = '{$item_id}'";
             $inDB->query($sql);
         }
     } else {
         cmsCore::addSessionMessage($_LANG['AD_ADDING_ERROR_TEXT'] . cmsCore::uploadError(), 'error');
         cmsCore::redirectBack();
     }
 } elseif ($opt == 'submit') {
Example #2
0
 /**
  * Загружает фото файл
  * @return array $file (filename, realfile)
  */
 public function uploadPhoto($old_file = '')
 {
     // если каталог загрузки не определен, возвращаем ложь
     if (!$this->upload_dir) {
         return false;
     }
     if (!empty($_FILES[$this->input_name]['name'])) {
         cmsCore::includeGraphics();
         $input_name = preg_replace('/[^a-zA-Zа-яёЁА-Я0-9\\.\\-_ ]/ui', '', mb_substr(basename(strval($_FILES[$this->input_name]['name'])), 0, 160));
         // расширение
         $ext = mb_strtolower(pathinfo($input_name, PATHINFO_EXTENSION));
         // имя файла без расширения
         $realfile = str_replace('.' . $ext, '', $input_name);
         if (!in_array($ext, array('jpg', 'jpeg', 'gif', 'png', 'bmp'))) {
             return false;
         }
         $this->filename = $this->filename ? $this->filename : md5(time() . $realfile) . '.' . $ext;
         $uploadphoto = $this->upload_dir . $this->filename;
         $uploadthumb['small'] = $this->upload_dir . $this->dir_small . $this->filename;
         $uploadthumb['medium'] = $this->upload_dir . $this->dir_medium . $this->filename;
         $uploadphoto = $this->upload_dir . $this->filename;
         $source = $_FILES[$this->input_name]['tmp_name'];
         $errorCode = $_FILES[$this->input_name]['error'];
         if (cmsCore::moveUploadedFile($source, $uploadphoto, $errorCode)) {
             // удаляем предыдущий файл если необходимо
             $this->deletePhotoFile($old_file);
             if (!$this->isImage($uploadphoto)) {
                 $this->deletePhotoFile($this->filename);
                 return false;
             }
             if (!$this->small_size_h) {
                 $this->small_size_h = $this->small_size_w;
             }
             if (!$this->medium_size_h) {
                 $this->medium_size_h = $this->medium_size_w;
             }
             // Гененрируем маленькое и среднее изображения
             if (!$this->only_medium) {
                 if (!is_dir($this->upload_dir . $this->dir_small)) {
                     @mkdir($this->upload_dir . $this->dir_small);
                 }
                 @img_resize($uploadphoto, $uploadthumb['small'], $this->small_size_w, $this->small_size_h, $this->thumbsqr);
             }
             if (!is_dir($this->upload_dir . $this->dir_medium)) {
                 @mkdir($this->upload_dir . $this->dir_medium);
             }
             @img_resize($uploadphoto, $uploadthumb['medium'], $this->medium_size_w, $this->medium_size_h, false, false);
             // Накладывать ватермарк
             if ($this->is_watermark) {
                 @img_add_watermark($uploadthumb['medium']);
             }
             if ($this->is_watermark) {
                 @img_add_watermark($uploadthumb['small']);
             }
             // сохранять оригинал
             if (!$this->is_saveorig) {
                 @unlink($uploadphoto);
             } elseif ($this->is_watermark) {
                 @img_add_watermark($uploadphoto);
             }
             $file['filename'] = $this->filename;
             $file['realfile'] = $realfile;
         } else {
             return false;
         }
     } else {
         return false;
     }
     return $file;
 }
Example #3
0
    $item['meta_keys']   = $item['tags'];
    $item['pubdate']     = date('Y-m-d H:i');
    $item['imageurl']    = '';

    $rows    = cmsCore::request('xlsrows', 'int', 0);
    $sheet   = cmsCore::request('xlslist', 'int', 1);
    $cells   = cmsCore::request('cells', 'array_str', array());
    $charset = cmsCore::request('charset', 'str', 'cp1251');

    if (empty($_FILES['xlsfile']['name'])) {
        cmsCore::addSessionMessage($_LANG['AD_NO_LOAD_EXCEL_FILE'], 'error');
        cmsCore::redirectBack();
    }

    $xls_file = PATH .'/upload/'. md5(microtime().uniqid()). '.xls';
    if (!cmsCore::moveUploadedFile($_FILES['xlsfile']['tmp_name'], $xls_file, $_FILES['xlsfile']['error'])) {
        cmsCore::addSessionMessage($_LANG['AD_NO_LOAD_EXCEL_FILE'], 'error');
        cmsCore::redirectBack();
    }

    $file = $model->uploadPhoto();
    if ($file) {
        $item['imageurl'] = $file['filename'];
    }

    cmsCore::includeFile('includes/excel/excel_reader2.php');
    $data = new Spreadsheet_Excel_Reader($xls_file, true, $charset);

    for ($r=0; $r<$rows; $r++) {
        $fields = array();
        $title  = '';
Example #4
0
 /**
  * Загружает и добавляет/обновляет файл(ы)
  * @param int $post_id
  * @param array $input_file
  * @return str имя файла
  */
 public function addUpdatePostAttachments($post_id, $input_file = array(), $count_files = 0)
 {
     if (!@$_FILES['fa']['name'][0]) {
         return 0;
     }
     $success = true;
     foreach ($_FILES['fa']['error'] as $key => $error) {
         if ($count_files > $this->config['fa_max']) {
             $success = false;
             break;
         }
         if ($_FILES['fa']['size'][$key] > $this->config['fa_size'] * 1024) {
             $success = false;
             continue;
         }
         $file = $_FILES['fa']['name'][$key];
         $pp = pathinfo($file);
         $ext = mb_strtolower($pp['extension']);
         if (in_array($ext, array('php', 'htm', 'html', 'htaccess'))) {
             $success = false;
             continue;
         }
         if (!mb_stristr($this->config['fa_ext'], $ext)) {
             $success = false;
             continue;
         }
         $file = cmsCore::strToURL(mb_substr($file, 0, mb_strrpos($file, '.'))) . '_' . uniqid() . '.' . $ext;
         @mkdir(PATH . '/upload/forum/post' . $post_id);
         $destination = PATH . '/upload/forum/post' . $post_id . '/' . $file;
         // Формируем массив
         $result['filesize'] = $this->inDB->escape_string($_FILES['fa']['size'][$key]);
         $result['post_id'] = $post_id;
         $result['hits'] = 0;
         $result['pubdate'] = date("Y-m-d H:i:s");
         $result['filename'] = $this->inDB->escape_string($file);
         if (cmsCore::moveUploadedFile($_FILES['fa']['tmp_name'][$key], $destination, $error)) {
             if (!$input_file) {
                 //Если новый файл
                 $this->inDB->insert('cms_forum_files', $result);
             } else {
                 // Если обновляем файл
                 $this->deletePostAttachment($input_file, false);
                 $this->inDB->update('cms_forum_files', $result, $input_file['id']);
                 break;
                 // подразумевается, что обновляем 1 файл
             }
         } else {
             $success = false;
             @rmdir(PATH . '/upload/forum/post' . $post_id);
         }
         $count_files++;
     }
     $this->updatePostAttachmentsCount($post_id);
     return $success;
 }
Example #5
0
 /**
  * Проверяет значения формы
  * @param int $form_id ID формы
  * @return array
  */
 public static function getFieldsInputValues($form_id)
 {
     // Получаем данные без mysqli_real_escape_string
     $form_array = cmsCore::request('field', 'array');
     if (!$form_array) {
         return array();
     }
     $formObj = new self($form_id, $form_array);
     if (!$formObj->form || !$formObj->form_fields) {
         return array();
     }
     global $_LANG;
     $inUser = cmsUser::getInstance();
     $output = array();
     // Заполняем выходной массив значений
     // $output['values'] массив значений полей
     // $output['errors'] массив ошибок полей
     foreach ($formObj->form_fields as $field) {
         // Значение поля
         $field_value = array_key_exists($field['id'], $formObj->values) ? $formObj->values[$field['id']] : '';
         $error = '';
         // проверяем заполненность текстового поля если нужно
         if ($field['mustbe'] && !$field_value && $field['kind'] != 'file') {
             $error = $_LANG['FIELD'] . ' "' . $field['title'] . '" ' . $_LANG['MUST_BE_FILLED'];
         } else {
             cmsUser::sessionPut('form_last_' . $formObj->form_id . '_' . $field['id'], htmlspecialchars($field_value));
         }
         // Загружаем файл если он есть в форме
         if ($field['kind'] == 'file') {
             // старые значения если есть
             $old_url = $field_value['url'];
             $old_name = $field_value['name'];
             $output['values'][$field['id']] = array();
             if (!$_FILES['field']['name'][$field['id']]) {
                 // Поле обязательно для заполнения?
                 if ($field['mustbe'] && !$old_url) {
                     $error = $_LANG['FIELD'] . ' "' . $field['title'] . '" ' . $_LANG['MUST_BE_FILLED'];
                 } else {
                     // если пришел флаг на удаление
                     if (isset($field_value['delete'])) {
                         $formObj->deleteFile($old_url);
                         $old_url = '';
                         $old_name = '';
                     }
                     $output['values'][$field['id']] = array('name' => $old_name, 'url' => $old_url);
                 }
             } else {
                 // директория загрузки
                 $upload_dir = PATH . '/upload/forms/' . $form_id . '/' . $inUser->id;
                 @mkdir($upload_dir, 0777, true);
                 @chmod($upload_dir, 0777);
                 // проверяем расширение файла
                 $maytypes = explode(',', $field['config']['ext']);
                 $ext = mb_strtolower(pathinfo($_FILES['field']['name'][$field['id']], PATHINFO_EXTENSION));
                 if (!in_array($ext, $maytypes)) {
                     $error = $_LANG['ERROR_TYPE_FILE'] . $field['config']['ext'];
                 }
                 // имя файла
                 $file_name = cmsCore::strToURL(pathinfo($_FILES['field']['name'][$field['id']], PATHINFO_FILENAME));
                 $dest = $upload_dir . '/' . $file_name . uniqid() . '.' . $ext;
                 if (!$error) {
                     if (!cmsCore::moveUploadedFile($_FILES['field']['tmp_name'][$field['id']], $dest, $_FILES['field']['error'][$field['id']])) {
                         $error = cmsCore::uploadError();
                     } else {
                         $formObj->deleteFile($old_url);
                         $output['values'][$field['id']] = array('name' => $file_name, 'url' => str_replace(PATH, '', $dest));
                     }
                 }
             }
         } else {
             // Заполняем массив значений полей, ключи массива id поля
             $output['values'][$field['id']] = $field['config']['max'] ? mb_substr(strip_tags($field_value), 0, $field['config']['max']) : strip_tags($field_value);
         }
         // Заполняем массив ошибок
         $output['errors'][$field['id']] = $error;
     }
     // если были ошибки, удаляем загруженный файл, если он есть
     if (!empty($dest)) {
         foreach ($output['errors'] as $field_error) {
             if ($field_error) {
                 @unlink($dest);
                 break;
             }
         }
     }
     return $output;
 }
Example #6
0
    if ($file['filename']) {
        $http_path = '/upload/wysiwyg/' . $file['filename'];
        $error = '';
    }
}
// грузим другие файлы
if ($type === 'file') {
    if (empty($plugin->config['allow_file_ext']) || !$plugin->canFileUpload()) {
        cmsCore::error404();
    }
    $allow_ext = explode(',', $plugin->config['allow_file_ext']);
    $allow_ext = array_map(function ($val) {
        return trim($val);
    }, $allow_ext);
    if (!empty($_FILES['upload']['name'])) {
        $input_name = preg_replace('/[^a-zA-Zа-яёЁА-Я0-9\\.\\-_ ]/ui', '', basename(strval($_FILES['upload']['name'])));
        $ext = mb_strtolower(pathinfo($input_name, PATHINFO_EXTENSION));
        if ($ext && in_array($ext, $allow_ext, true)) {
            $uploadpath = PATH . '/upload/wysiwyg/' . md5(microtime() . uniqid()) . '.' . $ext;
            $source = $_FILES['upload']['tmp_name'];
            $errorCode = $_FILES['upload']['error'];
            if (cmsCore::moveUploadedFile($source, $uploadpath, $errorCode)) {
                $http_path = str_replace(PATH, '', $uploadpath);
                $error = '';
            }
        } else {
            $error = $_LANG['CK_UPLOAD_EXT_ERROR'];
        }
    }
}
cmsCore::halt('<script type="text/javascript">window.parent.CKEDITOR.tools.callFunction(' . cmsCore::request('CKEditorFuncNum', 'int', 0) . ',  "' . $http_path . '", "' . $error . '" );</script>');