function ElemRedactB($fld) { $fld = parent::ElemRedactB($fld); $fld['obj_type_id'] = 'commerce'; if ($fld['sell'] == '1') { $fld['avance'] = $fld['credit'] = '0'; } // Пересчет цены в у.е $value = sql_getValue('SELECT value FROM currencies WHERE name="USD"'); if ($value) { $fld['price_dollar'] = $fld['price_rub'] / $value; } //отправка уведомления $current_status = sql_getValue("SELECT status FROM objects WHERE id=" . $this->id); if ($current_status == 1 && $fld['status'] == 2) { SendNotify('ANNOUNCEMENT_PUBLISHED', $fld['client_id'], $fld); } else { if ($current_status == 2 && $fld['status'] != 2) { SendNotify('ANNOUNCEMENT_CLOSED', $fld['client_id'], $fld); } } return $fld; }
function ElemRedactB($fld) { $fld = parent::ElemRedactB($fld); $fld['obj_type_id'] = 'room'; if ($fld['sell'] == '1') { $fld['avance'] = $fld['credit'] = '0'; } if (empty($fld['lot_id'])) { $max_lot = (int) sql_getValue('SELECT MAX(lot_id) FROM ' . $this->elem_table); if ($max_lot) { $fld['lot_id'] = $max_lot + 1; } } if (isset($fld['price_rub'])) { $fld['price_rub'] = str_replace(array(" ", ","), array("", "."), $fld['price_rub']); } if (isset($fld['price_metr_rub'])) { $fld['price_metr_rub'] = str_replace(array(" ", ","), array("", "."), $fld['price_metr_rub']); } if (isset($fld['price_rub_print'])) { $fld['price_rub_print'] = str_replace(array(" ", ","), array("", "."), $fld['price_rub_print']); } // Пересчет цены в у.е $value = sql_getValue('SELECT value FROM currencies WHERE name="USD"'); if ($value) { $fld['price_dollar'] = $fld['price_rub'] / $value; } //Проверяем адрес в таблице адресов и координат $address = e(strip_tags($fld['address'])); $address_id = (int) sql_getValue("SELECT id FROM `obj_address` WHERE address='{$address}'"); if (!$address_id) { $address_id = (int) sql_insert('obj_address', array('address' => $address)); } $fld['address_id'] = $address_id; //отправка уведомления $current_status = sql_getValue("SELECT status FROM `rnt_objects` WHERE id=" . $this->id); if ($current_status == 1 && $fld['status'] == 2) { SendNotify('ANNOUNCEMENT_PUBLISHED', $fld['client_id'], $fld); } else { if ($current_status == 2 && $fld['status'] != 2) { SendNotify('ANNOUNCEMENT_CLOSED', $fld['client_id'], $fld); } } return $fld; }
function EditProducts() { $order_id = $_POST['id']; $ids = $_POST['ids']; $cart = $this->getCart($order_id); $client_id = sql_getValue("SELECT client_id FROM orders WHERE id=" . $order_id); foreach ($ids as $key => $val) { $cart['ids'][$val] = sql_getRow("SELECT id,discount_group_id,price FROM products WHERE id=" . $val); $cart['ids'][$val]['customer_price'] = $this->GetDiscountPrice($val, $client_id); $cart['ids'][$val]['quantity'] = 1; $cart['ids'][$val]['id'] = $val; } $cart = $this->calculateCart($cart); $this->SaveOrder($cart); $order = sql_getRow("SELECT *,FROM_UNIXTIME(order_date) as order_date FROM orders WHERE id=" . $order_id); $order['cart'] = $cart; $order['payment_type_display'] = $this->str($order['payment_type']); $order['status2'] = $this->str($order['status']); $order['currency'] = sql_getRow("SELECT * FROM currency WHERE name='" . $order['currency'] . "'"); global $directories; foreach ($directories['shipping_type'] as $k => $v) { $order['shipping_types'][$k] = $v; } $order['delivery_type'] = $directories['delivery_type'][$order['delivery_type']]; $order['product_list'] = sql_getRows("SELECT cart.*,p.*,m.name as manufacturer \n \tFROM cart \n \tLEFT JOIN products as p on cart.product_id=p.id \n \tLEFT JOIN manufacturers as m on m.id=p.manufacturer_id \n \tWHERE cart.order_id=" . $order['id']); SendNotify('ORDER_CH_ORDER', $client_id, array('data' => $order)); return "<script>alert('" . $this->str('saved') . "');window.top.opener.location.reload();window.top.close();</script>"; }
function sendHash($tpl = 'SEND_HASH', $login) { if (empty($login)) { $login = mysql_real_escape_string(get('login', '', 'pgc')); } if ($this->fp_userExists($login)) { $user_id = $this->cached_user['id']; $data['site_name'] = $_SERVER["HTTP_HOST"]; $hash = $this->fp_createChPassHash($login); if (!$hash) { return false; } $data['hash'] = $hash; $data['user'] = $this->cached_user; //pr($data); return SendNotify($tpl, $user_id, $data); } return false; }
function Editp() { $root = is_root(); $whom = $_SESSION['user']['login']; $temp = sql_getRow("SELECT *,(total - bonus) as total FROM bills WHERE id=" . $_POST['id']); $client = sql_getRow("SELECT * FROM auth_users WHERE id=" . $temp['client_id']); $order = sql_getRows("SELECT * FROM cart as c LEFT JOIN products as p on c.product_id=p.id WHERE c.order_id=" . $temp['order_id']); if (!$root) { if ($temp['received'] < $temp['total']) { if ($_POST['fld']['received'] + $temp['received'] > $temp['total']) { return "<script>alert('" . $this->str('rec_big') . "');</script>"; } } else { return "<script>alert('" . $this->str('rec_big2') . "');</script>"; } } if ($_POST['fld']['received'] > 0 || $root) { //--- notify --- $this->emailNotify($temp, 'bills_money'); //-------------- $temp['received'] += $_POST['fld']['received']; if ($_POST['fld']['received'] != 0) { $this->in_history('change_money', 'bill', $temp['client_id'], $temp['id'], $_POST['fld']); if ($temp['received'] >= $temp['total'] & !empty($order)) { $_POST['fld']['status'] = 'paid'; //--- notify --- $this->emailNotify($temp, 'bills_status'); //-------------- $this->in_history('auto_ch_status', 'bill', $temp['client_id'], $temp['id'], $_POST['fld']); } elseif ($temp['received'] < $temp['total']) { $_POST['fld']['status'] = 'new'; if ($_POST['fld']['status'] != $temp['status']) { //--- notify --- $this->emailNotify($temp, 'bills_status'); //-------------- $this->in_history('auto_ch_status_no_money', 'bill', $temp['client_id'], $temp['id'], $_POST['fld']); } } elseif (empty($order)) { $_POST['fld']['status'] = 'new'; //--- notify --- $this->emailNotify($temp, 'bills_status'); //-------------- if ($_POST['fld']['status'] != $temp['status']) { $this->in_history('auto_ch_status_no_bill', 'bill', $temp['client_id'], $temp['id'], $_POST['fld']); } } } } //только root может отнимать от суммы if ($_POST['fld']['received'] < 0 && !$root) { return "<script>alert('" . $this->str('error') . "');</script>"; } /*Бонусная система*/ if ($client['otkat'] != 0) { //убираем участие в бриз клубе и перестаем считать откаты if ($client['briz_club'] == 1) { my_query("UPDATE auth_users SET briz_club = 0, bonus_bill = 0 WHERE id=" . $client['id']); } } else { //проверяем, является ли клиент участником клуба if ($client['briz_club'] != 1) { //смотри, если текущих денег хватит для оплаты, то не собираем все счета за 2 месяца if ($temp['received'] < 3000) { //проверяем оплаченные счета за 2 месяца, на предмет добавления в клуб $date = date('Y-m-d 00:00:00', time() - 60 * 60 * 24 * 61); //время 61 день назад $sql = 'SELECT sum(total) FROM `bills` WHERE client_id=' . $client['id'] . ' and status = "paid" and date_pay > "' . $date . '"'; if (sql_getValue($sql) >= 3000) { $client['briz_club'] = 1; } } else { $client['briz_club'] = 1; } //елси его добавляем в клуб то устанавливаем значение для $client['briz_club'] if ($client['briz_club'] == 1) { my_query("UPDATE auth_users SET bonus_bill = 0, briz_club = 1 WHERE id=" . $client['id']); } } if ($client['briz_club'] == 1) { //зачисляем бонусы на счет $money = $_POST['fld']['received']; if (!empty($money)) { if (abs($money) >= 3000 && abs($money) < 4999) { $bonus = $money * 0.01; } if (abs($money) >= 5000 && abs($money) < 9999) { $bonus = $money * 0.02; } if (abs($money) >= 10000) { $bonus = $money * 0.03; } if (isset($bonus)) { $bonus = round($bonus); //округляем //зачисляем на счет my_query("UPDATE auth_users SET bonus_bill = bonus_bill + " . $bonus . " WHERE id=" . $client['id']); //--- notify --- $array = array('bonus' => $bonus, 'client' => $client); SendNotify('SEND_ADD_BONUS', $client['id'], $array); } } } } if ($_POST['fld']['received'] == "0") { $_POST['fld']['date_pay'] = "0"; } else { $_POST['fld']['date_pay'] = date('Y-m-d H:i:s'); } $_POST['fld']['received'] = $temp['received']; //---- Сохранение ---- $res = $this->Commit(); if (is_int($res)) { return "<script>alert('" . $this->str('saved') . "');try{window.parent.top.opener.location.reload();window.parent.location.reload();}catch(e){window.parent.location.reload();}finally{}</script>"; } return $this->Error($res); }
/** * Отправка уведомлений об истекающих объявлениях пользователям, у которых стоит соответствующий флажок */ function notify_expiring() { $users = sql_getRows("SELECT user_id FROM notify_user_settings WHERE type='announcement_ends' AND method='email'"); $rows = sql_getRows("SELECT * FROM objects WHERE status=2 AND UNIX_TIMESTAMP(expired_time)>" . strval(time() - 60 * 60 * 24)); foreach ($rows as $row) { if (in_array($row['client_id'], $users)) { SendNotify("ANNOUNCEMENT_ENDS", $row['client_id'], $row); } } }
function show_form_user(&$params) { $page =& Registry::get('TPage'); $page->tpl->config_load($page->content['domain'] . "__" . lang() . '.conf'); $auth_obj =& Registry::get('TUserAuth'); $profile = $auth_obj->getCurrentUserData(); if (!$profile) { $fld = isset($_POST) && isset($_POST['fld']) ? $_POST['fld'] : array(); if (!empty($fld)) { //получаем все строковые константы $sql = "SELECT name, strings.* FROM strings WHERE module='" . $this->name . "'"; $str = sql_getRows($sql, true); //проверка полей и сохранение if (empty($fld['login'])) { $error['login'] = $str['error_login_empty']['value']; } else { $prf = $auth_obj->getUserProfile($auth_obj->getId($fld['login'])); if (isset($prf['auth']) && $prf['auth'] == 1) { $error['login'] = $str['error_login']['value']; } //пользователь существует if (!CheckMailAddress($fld['login'])) { $error['login'] = $str['error_login_incorrect']['value']; } // Некорректный email } $req_fields = array('fio', 'password1', 'password2'); foreach ($req_fields as $key => $val) { if (empty($fld[$val])) { $error[$val] = $str['error_' . $val]['value']; } } $keystring = $_SESSION['captcha_keystring']; unset($_SESSION['captcha_keystring']); if (empty($keystring) || $fld['captcha'] !== $keystring) { $error['captcha'] = $str['error_captcha']['value']; // Ошибка при вводе проверочной комбинации } if ($fld['password1'] != $fld['password2']) { $error['global'][] = $str['error_passwords']['value']; } //if ($fld['login']!=$fld['login2']){$error['global'][] = $str['error_emails']['value'];} if (empty($error)) { if (isset($prf['auth']) && $prf['auth'] == 0) { $sql = "DELETE FROM auth_users WHERE id = " . $prf['id']; sql_query($sql); } //сохраняем пользователя $fld['auth'] = 0; $fld['visible'] = 0; $fld['password'] = $fld['password1']; unset($fld['password1']); unset($fld['password2']); unset($fld['captcha']); $fld['reg_date'] = date('Y-m-d H:i:s'); $fields = "`" . implode("`,`", array_keys($fld)) . "`"; $values = ""; foreach ($fld as $k => $v) { if ($k == 'password') { $v = md5($v); } $values .= ",'" . mysql_escape_string($v) . "'"; } $sql = "INSERT INTO auth_users (" . $fields . ") VALUES (" . substr($values, 1) . ")"; sql_query($sql); $id = sql_getLastId(); //получаем идентификатор группы пользователя(группа с наивысшим приоритетом = 1) $sql = "SELECT id FROM `auth_groups` ORDER BY priority ASC LIMIT 1"; $group_id = sql_getValue($sql); if ($id) { $sql = "UPDATE auth_users SET auth=1 WHERE id=" . $id; sql_query($sql); //прикрепляем пользователя к группе $sql = "REPLACE INTO auth_users_groups (user_id, group_id) VALUES('" . $id . "','" . $group_id . "')"; sql_query($sql); $auth_obj =& Registry::get('TUserAuth'); $fld['user_id'] = $id; $fld['site_name'] = $page->tpl->get_config_vars('title'); $fld['site_url'] = $_SERVER['HTTP_HOST']; $fld['hash'] = $auth_obj->fp_createChPassHash($fld['login']); $fld['user'] = true; SendNotify('USER_REGISTRATION_TO_ADMIN', $id, $fld); // SendNotify('CLIENT_REGISTRATION', $id, $fld); /* $redirect = '/cabinet/cart'; session_start(); unset($_SESSION['smsm']['login_registration_redirect']); session_write_close(); redirect($redirect); */ $ret['form'] = false; $ret['error']['global'] = 'Учетная запись была создана.'; $page =& Registry::get('TPage'); unset($page->tpl->_tpl_vars['text']); return $ret; } else { $error['global'] = 'Ошибка создания учетной записи! Свяжитесь с администратором сайта.'; } } } } $ret['form'] = true; $ret['fld'] = isset($fld) ? $fld : array(); $ret['error'] = isset($error) ? $error : array(); $ret['dirs'] = get('dirs', $_SERVER['REDIRECT_URL'], 'pg'); return $ret; }
function Edit() { $fld = get('fld', array(), 'p'); $client_id = (int) get('client_id', 0, 'p'); if ($client_id > 0) { // updating password if (@$fld['pass1'] or @$fld['pass2']) { if ($fld['pass1'] == $fld['pass2'] and ($fld['pass1'] != '' and $fld['pass2'] != '')) { $fld['password'] = md5($fld['pass1']); } else { return "<script>alert('" . $this->str('passwords_ne') . "');</script>"; } } unset($fld['pass1']); unset($fld['pass2']); $reload = ""; // updating group /*if(isset($fld['group'])) { $group = (int) sql_getValue("SELECT group_id FROM auth_users_groups WHERE user_id=".$client_id); if($group>0) { if($group!=$fld['group']) sql_query("UPDATE auth_users_groups SET group_id=".(int)$fld['group']." WHERE user_id=".$client_id); } else { sql_query("INSERT INTO auth_users_groups (user_id,group_id) VALUES (".$client_id.",".(int)$fld['group'].")"); } unset($fld['group']); $reload = "window.top.location.reload();"; }*/ // preparing visible parametr if (isset($fld['login'])) { /*if(@$fld['visible']) $fld['visible']=1; else $fld['visible']=0; // preparing subscribe parametr if(@$fld['subscribe']) $fld['subscribe']=1; else $fld['subscribe']=0; // preparing subscribe parametr if(@$fld['enable']) $fld['enable']=1; else $fld['enable']=0;*/ if (@$fld['trusted']) { $fld['trusted'] = 1; } else { $fld['trusted'] = 0; } if (@$fld['free']) { $fld['free'] = 1; } else { $fld['free'] = 0; } if (@$fld['auth']) { $fld['auth'] = 1; } else { $fld['auth'] = 0; } } if ((int) sql_getValue("SELECT auth FROM {$this->table} WHERE id=\"{$client_id}\"") == 0 && $fld['auth'] > 0) { SendNotify('CLIENT_REGISTRATION', $id, $fld); } // updating information foreach ($fld as $k => $v) { $res = sql_query("UPDATE {$this->table} SET {$k}=\"" . htmlspecialchars($v) . "\" WHERE id=\"{$client_id}\""); if (!$res) { return "<script>alert('" . $this->str('error') . ": " . mysql_error() . "');</script>"; } } return "<script>alert('" . $this->str('saved') . "');" . $reload . "</script>"; } else { return "<script>alert('" . $this->str('error') . "');" . $reload . "</script>"; } }