Exemplo n.º 1
0
 /**
  * Обработчик действия: Заказ.
  */
 function Order()
 {
     if (empty($_REQUEST['captcha']) || md5(strtolower($_REQUEST['captcha'])) != A_Session::get('captcha')) {
         $this->errors['captcha'] = true;
         return false;
     }
     A_Session::unregister('captcha');
     ///////////////////////////////////////////////////////////////////////
     if (isset($_REQUEST['id'])) {
         $_REQUEST['count'] = 1;
         $this->AddBasket(false);
     }
     ///////////////////////////////////////////////////////////////////////
     if (empty(A::$OPTIONS['useorder'])) {
         A::goUrl(getSectionLink(SECTION));
     }
     $basket = A_Session::get("shoplite_basket", array());
     $all = array('count' => 0, 'oldsum' => 0, 'sum' => 0, 'discount' => 0);
     foreach ($basket as $i => $brow) {
         $basket[$i]['data'] = $brow['data'] = A::$OBSERVER->Modifier('shoplite_prepareValues', $brow['section'], $brow['data']);
         $basket[$i]['id'] = $i;
         $basket[$i]['oldsum'] = $brow['oldsum'] = $brow['data']['oldprice'] * $brow['count'];
         $basket[$i]['sum'] = $brow['sum'] = $brow['data']['price'] * $brow['count'];
         $basket[$i]['discount'] = $brow['discount'] = !empty($brow['data']['discount']) ? $brow['data']['discount'] * $brow['count'] : 0;
         foreach ($brow['dynamic'] as $key => $value) {
             $basket[$i]['data'][$key] = !empty($brow['data'][$key . '_options'][$value]) ? $brow['data'][$key . '_options'][$value] : "";
         }
         $all['count'] += $brow['count'];
         $all['oldsum'] += $brow['oldsum'];
         $all['sum'] += $brow['sum'];
         $all['discount'] += $brow['discount'];
     }
     $basket = A::$OBSERVER->Modifier('shoplite_orderBasket', SECTION, $basket);
     $order = array('date' => time(), 'userdata' => serialize($_REQUEST), 'basket' => serialize($basket), 'count' => $all['count'], 'sum' => $all['sum'], 'pay' => !empty($_REQUEST['pay']) ? (int) $_REQUEST['pay'] : 0);
     if (A::$AUTH->isLogin()) {
         $order['iduser'] = A::$AUTH->id;
     }
     $order['id'] = A::$DB->Insert(SECTION . "_orders", $order);
     $order['pay'] = function_exists('pay_getname') ? pay_getname($order['pay']) : "Наличные";
     $mail = new A_Mail(A::$OPTIONS['mail_toadmin']);
     if (!empty($_REQUEST['email'])) {
         $mail->setFrom($_REQUEST['email'], !empty($_REQUEST['name']) ? $_REQUEST['name'] : '');
     }
     $mail->Assign("order", $order);
     $mail->Assign('basket', $basket);
     $mail->Assign('all', $all);
     $mail->Assign("data", $_REQUEST);
     $mail->Assign("valute", A::$OPTIONS['valute']);
     $mail->send(A::$OPTIONS['email']);
     $content = preg_replace("/\r/", "", $mail->fetch($mail->template));
     $content = preg_replace("/^[^\n]*\n/i", "", $content);
     A::$DB->Update(SECTION . "_orders", array('content' => $content), "id=" . $order['id']);
     if (!empty($_REQUEST['email']) && !empty(A::$OPTIONS['mail_touser'])) {
         $mail = new A_Mail(A::$OPTIONS['mail_touser']);
         $mail->Assign("order", $order);
         $mail->Assign('basket', $basket);
         $mail->Assign('all', $all);
         $mail->Assign("data", $_REQUEST);
         $mail->Assign("valute", A::$OPTIONS['valute']);
         $mail->send($_REQUEST['email']);
     }
     A_Session::set(SECTION . "_idorder", $order['id']);
     A_Session::unregister("shoplite_basket");
     if ($section = getSectionByModule('robopay')) {
         A::goUrl(getSectionLink($section));
     } elseif ($section = getSectionByModule('pay')) {
         if (!empty($_REQUEST['pay'])) {
             A::goUrl(getSectionLink($section));
         }
     } else {
         A::goUrl(getSectionLink(SECTION) . "?sendorder=ok");
     }
 }
Exemplo n.º 2
0
 /**
  * Обработчик действия: Отправка сообщения.
  */
 function sendMessage()
 {
     if (empty($_REQUEST['captcha']) || md5(strtolower($_REQUEST['captcha'])) != A_Session::get('captcha')) {
         $this->errors['captcha'] = true;
         return false;
     }
     A_Session::unregister('captcha');
     $mail = new A_Mail(A::$OPTIONS['template'], "html");
     if (!empty($_REQUEST['email'])) {
         $mail->setFrom($_REQUEST['email'], !empty($_REQUEST['name']) ? $_REQUEST['name'] : '');
     }
     $mail->Assign("data", $_REQUEST);
     $fields = array();
     A::$DB->query("SELECT * FROM " . DOMAIN . "_fields WHERE item='" . SECTION . "' ORDER BY sort");
     while ($row = A::$DB->fetchRow()) {
         if ($row['type'] == "select" || $row['type'] == "mselect") {
             $row['options'] = loadList($row['property']);
             if ($row['type'] == "mselect") {
                 $row['value'] = array();
                 $values = isset($_REQUEST[$row['field']]) ? $_REQUEST[$row['field']] : array();
                 foreach ($values as $value) {
                     $row['value'][] = isset($row['options'][$value]) ? is_array($row['options'][$value]) ? $row['options'][$value]['name'] : $row['options'][$value] : "";
                 }
                 $row['value'] = implode(", ", $row['value']);
             } else {
                 $row['value'] = isset($_REQUEST[$row['field']]) ? (int) $_REQUEST[$row['field']] : 0;
                 $row['value'] = isset($row['options'][$row['value']]) ? $row['options'][$row['value']] : "";
                 if (is_array($row['value'])) {
                     $row['data'] = $row['value'];
                     $row['value'] = !empty($row['data']['name']) ? $row['data']['name'] : "";
                 }
             }
         } elseif ($row['type'] == "file") {
             if (isset($_FILES[$row['field']]['tmp_name']) && is_file($_FILES[$row['field']]['tmp_name'])) {
                 $mail->addAttachment($_FILES[$row['field']]['tmp_name'], $_FILES[$row['field']]['name'], $_FILES[$row['field']]['type']);
             }
         } else {
             $row['value'] = isset($_REQUEST[$row['field']]) ? strip_tags($_REQUEST[$row['field']]) : "";
         }
         if ($row['type'] == "float") {
             $row['value'] = round($row['value'], 2);
         }
         $row['name'] = $row['name_' . LANG];
         $fields[$row['field']] = $row;
     }
     A::$DB->free();
     $mail->Assign("fields", $fields);
     if (isset($fields['subject'])) {
         $mail->setSubject($fields['subject']['value']);
     }
     if (isset($_REQUEST['mailto']) && isset($fields['mailto']['options'][$_REQUEST['mailto']]['email'])) {
         $mail->send($fields['mailto']['options'][$_REQUEST['mailto']]['email']);
     } elseif (!empty(A::$OPTIONS['email'])) {
         $mail->send(A::$OPTIONS['email']);
     }
     $data = array('date' => time(), 'message' => $mail->getContent(), 'data' => serialize($fields));
     if (A::$AUTH->isLogin()) {
         $data['iduser'] = A::$AUTH->id;
     }
     if ($id = A::$DB->Insert(SECTION . "_arch", $data)) {
         A_Session::set(SECTION . "_id", $id);
         A::goUrl(getSectionLink(SECTION) . "message.html");
     } else {
         return false;
     }
 }