コード例 #1
0
ファイル: notes.php プロジェクト: romlg/cms36
 function Edit()
 {
     $row = get('fld', array(), 'p');
     $id = (int) get('id', 0, 'p');
     $row['date'] = $row['date'] ? strtotime($row['date']) : 0;
     $row['notify_date'] = $row['notify_date'] ? strtotime($row['notify_date']) : 0;
     $row['visible'] = 1;
     if (!$row['date']) {
         $row['date'] = time();
     }
     if ($id) {
         sql_updateId($this->table, $row, $id);
     } else {
         $id = sql_insert($this->table, $row);
     }
     if (!is_int($id)) {
         return $this->error($id);
     }
     return "<script>alert('" . $this->str('saved') . "'); window.parent.close(); </script>";
 }
コード例 #2
0
ファイル: User.php プロジェクト: romlg/cms36
 /**
  * Создание новой ссылки на соц. сеть или обновление текущей
  * @param $data
  * @return int|string
  */
 function createSocialLink($data)
 {
     $link_id = sql_getValue("SELECT id FROM {$this->_table_socials} WHERE user_id={$this->_id} AND provider='{$data['provider']}'");
     $link_data = array('identifier' => $data['identifier'], 'profileURL' => $data['profileURL'], 'photoURL' => $data['photoURL'], 'name' => $data['name']);
     if ($link_id) {
         sql_updateId($this->_table_socials, $link_data, $link_id);
     } else {
         $link_data['user_id'] = $this->_id;
         $link_data['provider'] = $data['provider'];
         $link_id = sql_insert($this->_table_socials, $link_data);
     }
     return $link_id;
 }
コード例 #3
0
ファイル: elem_main.php プロジェクト: romlg/cms36
 /**
  * Создание/обновление формы
  * @param $data
  * @param int $id
  * @return bool|int
  */
 function updateForm($data, $id = 0)
 {
     $form_data = array('hash' => $data['hash'] ? $data['hash'] : sha1(sha1(time()) . $id), $this->getFieldName('name') => $data['name'], 'name_site' => $data['name_site'], $this->getFieldName('email') => $data['email'], 'db_table' => $data['db_table'], 'is_popup' => 0, 'lang' => $data['lang'], 'visible' => isset($data['visible']) ? $data['visible'] : 0, $this->getFieldName('submit_title') => $data['submit_title']);
     if ($id) {
         return sql_updateId('forms', $form_data, $id, 'id');
     } else {
         return sql_insert('forms', $form_data);
     }
 }
コード例 #4
0
ファイル: banners.php プロジェクト: romlg/cms36
 function Edit()
 {
     $id = (int) get('id', 0, 'p');
     $row = get('fld', array(), 'p');
     $apply = (int) get('apply', 0, 'p');
     $row['lang'] = lang();
     if (!$row['name']) {
         return "<script>alert('" . $this->str('error') . ": " . $this->str('e_no_title') . "');</script>";
     }
     $row['name'] = htmlspecialchars($row['name']);
     if ($_POST['type'] == 'img') {
         $row['html'] = '';
     }
     if (empty($_POST['pages'])) {
         $row['pages'] = '';
     }
     $pages = explode(',', $row['pages']);
     $pages = array_filter($pages);
     $row['pages'] = array_unique($pages);
     if (empty($_POST['except'])) {
         $row['except'] = '';
     }
     $except = explode(',', $row['except']);
     $except = array_filter($except);
     $row['except'] = array_unique($except);
     if (isset($row['show_at_sites']) && !empty($row['show_at_sites'])) {
         $row['show_at_sites'] = implode(",", $row['show_at_sites']);
     } else {
         $row['show_at_sites'] = '';
     }
     if ($_POST['type'] == 'html') {
         $row['html'] = str_replace(array('&lt;script', '/script&gt;'), array('<script', '/script>'), $row['html']);
     }
     if (!isset($row['visible'])) {
         $row['visible'] = 0;
     }
     if ($id) {
         sql_updateId($this->table, $row, $id, 'id', __FILE__, __LINE__);
     } else {
         $id = sql_insert($this->table, $row);
     }
     if (sql_getError()) {
         return "<script>alert('" . $this->str('error') . ": " . addslashes(sql_getError()) . "');</script>";
     }
     touch_cache($this->table);
     return "<script>alert('" . $this->str('saved') . "');" . ($apply ? 'window.top.location = window.top.location+"&id=' . $id . '" ;' : "window.top.close(); window.top.opener.location.reload();") . "</script>";
 }
コード例 #5
0
ファイル: popup_editor.php プロジェクト: romlg/cms36
 /**
  * Изменение visible у элементов в multi и link элемах
  * @param $data
  */
 function changeLinkVisible($data)
 {
     $page_name = get('page_name', '', 'p');
     $elem_name = get('elem_name', '', 'p');
     // инициализация элема
     $elem_object = $this->initElemByParams($page_name, $elem_name);
     if (is_string($elem_object)) {
         echo json_encode(array('error' => iconv('windows-1251', 'utf-8', $elem_object)));
         die;
     }
     if (!$elem_object->elem_fields['id_field']) {
         echo json_encode(array('error' => iconv('windows-1251', 'utf-8', "Не определен параметр id_field")));
         die;
     }
     // ищем таблицу
     $table = $elem_object->elem_type == 'multi' ? $elem_object->elem_table : $elem_object->elem_table_link;
     if (!$table) {
         echo json_encode(array('error' => iconv('windows-1251', 'utf-8', "Не определена таблица")));
         die;
     }
     $id = (int) get('id', 0, 'p');
     if (!$id) {
         echo json_encode(array('error' => iconv('windows-1251', 'utf-8', "Неизвестный параметр: id")));
         die;
     }
     $visible = get('visible', '', 'p');
     if (!in_array($visible, array('true', 'false'))) {
         $visible = 'false';
     }
     $visible = $visible == 'true' ? 1 : 0;
     if ($elem_object->elem_type == 'multi') {
         sql_updateId($table, array('visible' => $visible), $id);
     } else {
         $pid = (int) get('id', 0, 'g');
         $id_field = $elem_object->elem_fields['id_field'];
         $id2_field = $elem_object->elem_fields['id2_field'];
         $col_name = $elem_object->elem_fields['visible_field'] ? $elem_object->elem_fields['visible_field'] : 'visible';
         sql_update($table, array($col_name => $visible), "{$id2_field} = {$id} AND {$id_field} = {$pid}");
     }
     ob_clean();
     echo json_encode(1);
     die;
 }
コード例 #6
0
ファイル: elem_form.php プロジェクト: romlg/cms36
 /**
  * Создание/обновление формы
  * @param $data
  * @param int $id
  * @return bool|int
  */
 function updateForm($data, $id = 0)
 {
     $form_data = array('pid' => $data['pid'], $this->getFieldName('name') => $data['name'], $this->getFieldName('email') => $data['email'], 'db_table' => $data['db_table'], 'visible' => isset($data['visible']) ? $data['visible'] : 0, $this->getFieldName('submit_title') => $data['submit_title']);
     if ($id) {
         return sql_updateId('elem_form', $form_data, $id, 'form_id');
     } else {
         return sql_insert('elem_form', $form_data);
     }
 }
コード例 #7
0
ファイル: elem_main_base.php プロジェクト: romlg/cms36
 /**
  * Накладывание водяного знака
  * @param array $fld
  * @param int $id
  * @return array|bool
  */
 function ElemRedactAfter($fld, $id)
 {
     $id = $id ? $id : (int) $_POST['id'];
     if (!$id) {
         return true;
     }
     global $watermark_img, $watermark_position;
     $watermark = (int) get('watermark', 0, 'p');
     if (isset($watermark_img) && !empty($watermark_img) && $watermark) {
         if (!getimagesize($watermark_img)) {
             return array('error' => "Не найден водяной знак " . $watermark_img);
         }
         $row = sql_getRow("SELECT * FROM {$this->elem_table} WHERE id={$id}");
         if (!$row) {
             return array('error' => "Неправильный идентификатор галереи");
         }
         if ($row['image_large']) {
             $file = '..' . $row['image_large'];
             $file = urldecode($file);
             $wmark_info = getimagesize($watermark_img);
             $file_info = getimagesize($file);
             if ($wmark_info[0] > $file_info[0]) {
                 return array('error' => "Ширина изображения меньше чем ширина водяного знака");
             }
             if ($wmark_info[1] > $file_info[1]) {
                 return array('error' => "Высота изображения меньше чем высота водяного знака");
             }
             $copy = file_getUniName($file);
             if (!copy($file, $copy)) {
                 return array('error' => "Ошибка копирования из " . $file . " в " . $copy);
             }
             include_once ENGINE_VERSION . '/admin/modules/fm2/watermark.php';
             $handle = new RWatermark($file_info[2], $copy);
             if (!isset($watermark_position)) {
                 $watermark_position = "CM";
             }
             $handle->SetPosition($watermark_position);
             $handle->SetTransparentColor(255, 0, 255);
             $handle->SetTransparency(100);
             switch ($wmark_info[2]) {
                 case '1':
                     $handle->AddWatermark(FILE_GIF, $watermark_img);
                     break;
                 case '2':
                     $handle->AddWatermark(FILE_JPEG, $watermark_img);
                     break;
                 case '3':
                     $handle->AddWatermark(FILE_PNG, $watermark_img);
                     break;
             }
             if ($file_info[2] == 1) {
                 imagegif($handle->marked_image, $copy);
             } elseif ($file_info[2] == 2) {
                 // Определяем примерно, с каким качеством сохранять картинки
                 $size = filesize($copy);
                 if ($size <= '10000') {
                     $quality = '90';
                 } else {
                     if ($size > '10000' && $size <= '30000') {
                         $quality = '90';
                     } else {
                         $quality = '85';
                     }
                 }
                 imagejpeg($handle->marked_image, $copy, $quality);
             } elseif ($file_info[2] == 3) {
                 imagepng($handle->marked_image, $copy);
             }
             $handle->Destroy();
             sql_updateId($this->elem_table, array('image_large' => substr($copy, 2)), $id);
         }
     }
     return true;
 }