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>"; }
/** * Создание новой ссылки на соц. сеть или обновление текущей * @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; }
/** * Создание/обновление формы * @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); } }
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('<script', '/script>'), 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>"; }
/** * Изменение 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; }
/** * Создание/обновление формы * @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); } }
/** * Накладывание водяного знака * @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; }