Вход Регистрация
Файл: mg-core/controllers/personal.php
Строк: 90
<?php

/**
 * Контроллер: Personal
 *
 * Класс Controllers_Personal обрабатывает действия пользователей на странице личного кабинета.
 * - подготавливает данных пользователя для их отоббражения;
 * - обрабатывает запрос на изменения пароля;
 * - обрабатывает запрос на изменения способа оплаты;
 * - обрабатывает запрос на изменение данных пользователя.
 * 
 * @package moguta.cms
 * @subpackage Controller
 */
class Controllers_Personal extends BaseController {

  function 
__construct() {
    
$lang MG::get('lang');
    
$settings MG::get('settings');
    
$this->lang $lang;
    
$status 0;
    if (
User::isAuth()) {
      
$order = new Models_Order;
      
$status 3;

      
//обработка запроса на изменение данных пользователя
      
if (URL::getQueryParametr('userData')) {
        
$customer URL::getQueryParametr('customer');
        
$userData = array(
          
'name' => URL::getQueryParametr('name'),
          
'sname' => URL::getQueryParametr('sname'),
          
'address' => URL::getQueryParametr('address'),
          
'phone' => URL::getQueryParametr('phone'),
          
'nameyur' => $customer == 'yur' URL::getQueryParametr('nameyur') : '',
          
'adress' => $customer == 'yur' URL::getQueryParametr('adress') : '',
          
'inn' => $customer == 'yur' URL::getQueryParametr('inn') : '',
          
'kpp' => $customer == 'yur' URL::getQueryParametr('kpp') : '',
          
'bank' => $customer == 'yur' URL::getQueryParametr('bank') : '',
          
'bik' => $customer == 'yur' URL::getQueryParametr('bik') : '',
          
'ks' => $customer == 'yur' URL::getQueryParametr('ks') : '',
          
'rs' => $customer == 'yur' URL::getQueryParametr('rs') : '',
        );

        if (
USER::update(User::getThis()->id$userData)) {
          
$message 'Данные успешно сохранены';
        } else {
          
$error 'Не удалось сохранить данные '.$this->_newUserData['sname'];
        }
      }

      
// Обработка запроса на изменения пароля.
      
if (URL::getQueryParametr('chengePass')) {
        if (
USER::auth(User::getThis()->emailURL::getQueryParametr('pass'))) {
          
$person = new Models_Personal;
          
$message $person->changePass(URL::getQueryParametr('newPass'), User::getThis()->id);
        } else {
          
$error 'Неверный пароль';
        }
      }

      
// Обработка запроса на изменения способа оплаты.
      
if (URL::getQueryParametr('changePaymentId')) {
        
$order = new Models_Order();
        
$status $order->updateOrder(array('payment_id' => $_POST['changePaymentId'], 'id' => $_POST['orderId']));
        
$result = array(
          
'status' => $status,
          
'comment' => 2,
          
'orderStatus' => 3
        
);

        echo 
json_encode($result);
        
MG::disableTemplate();
        exit;
      }

      
// Обработка AJAX запроса на закрытие заказа.
      
if (URL::getQueryParametr('delOK')) {
        
$comment 'Отменено покупателем, по причине <br>"'.URL::getQueryParametr('comment').'"';
        
// Пересчитываем остатки продуктов из заказа.
        
$orderModel = new Models_Order();
        
$orderModel->refreshCountProducts(URL::getQueryParametr('delID'), 4);

        
$res DB::query('
          UPDATE `'
.PREFIX.'order`
          SET close_date = now(), status_id = 4, comment = "%s"
          WHERE id = %d AND user_email = "%s"'
$commentURL::getQueryParametr('delID'), User::getThis()->email);

        if (
$res) {
          
$status true;
        }

        if (
$comment) {
          
$comm "<b>Комментарий: ".$comment."</b>";
        }

        
$result = array(
          
'status' => $status,
          
'comment' => $comm,
          
'orderStatus' => $lang[$order->getOrderStatus(array('status_id' => 4))]
        );

        
$orderModel->sendMailOfUpdateOrder(URL::getQueryParametr('delID'));

        echo 
json_encode($result);
        
MG::disableTemplate();
        exit;
      }

      
// Отображение данных пользователя.
      
$orderArray $order->getOrder('user_email = "'.User::getThis()->email.'"');
      if (
is_array($orderArray)) {

        foreach (
$orderArray as $orderId => $orderItems) {
          
$orderArray[$orderId]['string_status_id'] = $order->getOrderStatus($orderItems);
          
$paymentArray $order->getPaymentMethod($orderItems['payment_id']);
          
$orderArray[$orderId]['name'] = $paymentArray['name'];
          
$orderArray[$orderId]['paided'] = $order->getPaidedStatus($orderItems);
        }
      }

      if (!
User::getThis()->activity) {
        
$status 2;
        unset(
$_SESSION['user']);
      }

      if (
User::getThis()->blocked) {
        
$status 1;
        unset(
$_SESSION['user']);
      }
      
$paymentListTemp $order->getPaymentBlocksMethod();
      
$paymentList[] = array();
      foreach (
$paymentListTemp as $item) {
        if(
$item['activity']!='0'){
          
$paymentList[$item['id']]=$item;
        }        
      }
    }

    
$this->data = array(
      
'error' => !empty($error) ? $error ''// Сообщение об ошибке.
      
'message' => !empty($message) ? $message ''// Информационное сообщение.
      
'status' => !empty($status) ? $status ''// Статус пользователя.
      
'userInfo' => User::getThis(), // Информация о пользователе.
      
'orderInfo' => !empty($orderArray) ? $orderArray ''// Информация о заказе.
      
'currency' => $settings['currency'],
      
'paymentList' => $paymentList,
      
'meta_title' => 'Личный кабинет',
      
'meta_keywords' => !empty($model->currentCategory['meta_keywords']) ? $model->currentCategory['meta_keywords'] : "заказы,личные данные, личный кабинет",
      
'meta_desc' => !empty($model->currentCategory['meta_desc']) ? $model->currentCategory['meta_desc'] : "В личном кабинете нашего сайта вы сможете отслеживать состояние заказов и менять свои данные",
    );
  }

}
Онлайн: 0
Реклама