Пример #1
0
 function __construct()
 {
     if (User::isAuth()) {
         MG::redirect('/');
     }
     // Шаг первый.
     $form = 1;
     $fPass = new Models_Forgotpass();
     // Ввторой шаг, производящий проверку введеного электронного адреса.
     if (URL::getQueryParametr('forgotpass')) {
         $email = URL::getQueryParametr('email');
         if ($userInfo = USER::getUserInfoByEmail($email)) {
             //Если введенных адрес совпадает с зарегистрированным в системе, то
             $form = 0;
             $message = 'Инструкция по восстановлению пароля была отправлена на <strong>' . $email . '</strong>';
             $hash = $fPass->getHash($email);
             //а) Случайный хэш заносится в БД.
             $fPass->sendHashToDB($email, $hash);
             $siteName = MG::getOption('sitename');
             $emailMessage = MG::layoutManager('email_forgot', array('siteName' => $siteName, 'email' => $email, 'hash' => $hash, 'userId' => $userInfo->id, 'link' => SITE . '/forgotpass?sec=' . $hash . '&id=' . $userInfo->id));
             $emailData = array('nameFrom' => $siteName, 'emailFrom' => MG::getSetting('noReplyEmail'), 'nameTo' => 'Пользователю сайта ' . $siteName, 'emailTo' => $email, 'subject' => 'Восстановление пароля на сайте ' . $siteName, 'body' => $emailMessage, 'html' => true);
             //б) На указанный электронный адрес отправляется письмо со сылкой на страницу восстановления пароля.
             $fPass->sendUrlToEmail($emailData);
         } else {
             $form = 0;
             $error = 'К сожалению, такой логин не найден<br>
       Если вы уверены, что данный логин существует, пожалуйста, свяжитесь с нами.';
         }
     }
     // Шаг 3. Обработка перехода по ссылки. Принимается id пользователя и сгенерированный хэш.
     if ($_GET) {
         $userInfo = USER::getUserById(URL::getQueryParametr('id'));
         $hash = URL::getQueryParametr('sec');
         // Если присланный хэш совпадает с хэшом из БД для соответствующего id.
         if ($userInfo->restore == $hash) {
             $form = 2;
             // Меняе в БД случайным образом хэш, делая невозможным повторный переход по ссылки.
             $fPass->sendHashToDB($userInfo->email, $fPass->getHash('0'));
             $_SESSION['id'] = URL::getQueryParametr('id');
         } else {
             $form = 0;
             $error = 'Некорректная ссылка. Повторите заново запрос восстановления пароля.';
         }
     }
     // Шаг 4. обрабатываем запрос на ввод нового пароля
     if (URL::getQueryParametr('chengePass')) {
         $form = 2;
         $person = new Models_Personal();
         $msg = $person->changePass(URL::getQueryParametr('newPass'), $_SESSION['id'], true);
         if ('Пароль изменен' == $msg) {
             $form = 0;
             $message = $msg . '! ' . 'Вы можете войти в личный кабинет по адресу <a href="' . SITE . '/enter" >' . SITE . '/enter</a>';
             $fPass->activateUser($_SESSION['id']);
             unset($_SESSION['id']);
         } else {
             $error = $msg;
         }
     }
     $this->data = array('error' => $error, 'message' => $message, 'form' => $form, 'meta_title' => 'Восстановление пароля', 'meta_keywords' => $model->currentCategory['meta_keywords'] ? $model->currentCategory['meta_keywords'] : "забыли пароль, восстановить пароль, восстановление пароля", 'meta_desc' => $model->currentCategory['meta_desc'] ? $model->currentCategory['meta_desc'] : "Если вы забыли пароль от личного кабинета, его модно восстановить с помощью формы восстановления паролей.");
 }
Пример #2
0
 private function sendMail()
 {
     $msg = '';
     foreach ($_POST as $k => $v) {
         $msg .= '<b>' . $k . ':' . '</b> ' . htmlspecialchars($v) . '<br>';
     }
     $msg .= "<b>Отвечать на письмо не нужно</b>";
     $siteName = MG::getOption('sitename');
     return Mailer::sendMimeMail(array('nameFrom' => $siteName, 'emailFrom' => MG::getSetting('noReplyEmail'), 'nameTo' => 'Администратору сайта ' . $siteName, 'emailTo' => MG::getOption('adminEmail'), 'subject' => 'Форма обратного звонка ' . $siteName, 'body' => $msg, 'html' => true));
 }
Пример #3
0
 private function getComments()
 {
     $result = array();
     // Если запрос был со стороны сайта выполняется первая ветка условия. Иначе - вторая.
     if (isset($_POST['showComments']) && isset($_POST['uri'])) {
         $uri = explode('/', $_POST['uri']);
         if (!empty($uri[1])) {
             unset($uri[0]);
             $uri = implode('/', $uri);
         } else {
             $uri = $uri[0];
         }
         // Запрос для генерации блока пагинации
         $sql = "\n\t\t\t\tSELECT id, name, comment, UNIX_TIMESTAMP(date) as date\n\t\t\t\tFROM `comments` \n\t\t\t\tWHERE uri = " . DB::quote($uri) . " AND approved = '1'\n\t\t\t\tORDER BY `id` DESC";
         $res = DB::query($sql);
         //Получаем блок пагинации
         if ($_POST["page"]) {
             $page = $_POST["page"];
         }
         //если был произведен запрос другой страницы, то присваиваем переменной новый индекс
         $navigator = new Navigator($sql, $page, MG::getOption('countPrintRowsComments'));
         //определяем класс
         $pagination = $navigator->getPager('forAjax');
         /* Получаем непосредственно комментарии.
            	 Если была запрошена не первая страница комментариев, выполняем вторую ветку условия.
            */
         if (empty($_POST['page'])) {
             $sql = "\n\t\t\t\tSELECT id, name, comment, UNIX_TIMESTAMP(date) as date\n\t\t\t\tFROM `comments` \n\t\t\t\tWHERE uri = " . DB::quote($uri) . " AND approved = '1'\n\t\t\t\tORDER BY `id` DESC\n\t\t\t\tLIMIT 0, " . MG::getOption('countPrintRowsComments');
             $res = DB::query($sql);
         } else {
             $start = ($_POST['page'] - 1) * MG::getOption('countPrintRowsComments');
             $amount = MG::getOption('countPrintRowsComments');
             $sql = "\n\t\t\t\tSELECT id, name, comment, UNIX_TIMESTAMP(date) as date\n\t\t\t\tFROM `comments` \n\t\t\t\tWHERE uri = " . DB::quote($uri) . " AND approved = '1'\n\t\t\t\tORDER BY `id` DESC\n\t\t\t\tLIMIT " . $start . ", " . $amount;
             $res = DB::query($sql);
         }
         while ($row = DB::fetchAssoc($res)) {
             $row['date'] = date('d.m.Y H:i', $row['date']);
             $result['comments'][] = $row;
         }
         $result['pagination'] = $pagination;
         echo json_encode($result);
         exit;
     } else {
         $sql = "\n\t\t\t\tSELECT id, name, comment, date\n\t\t\t\tFROM `comments`\n\t\t\t\tORDER BY date DESC";
         $res = DB::query($sql);
         while ($row = DB::fetchAssoc($res)) {
             $row['date'] = date('d.m.Y H:i', $row['date']);
             $result[$row['id']] = $row;
         }
         return $result;
     }
 }
Пример #4
0
 /**
  * Сохраняет  опции плагина
  *
  * @return boolean
  */
 public function saveBaseOption()
 {
     $this->messageSucces = $this->lang['SAVE_BASE'];
     $this->messageError = $this->lang['NOT_SAVE_BASE'];
     if (!empty($_POST['data'])) {
         @($oldData = unserialize(stripslashes(MG::getOption('pozvonimOption'))));
         $oldData = is_array($oldData) ? $oldData : array();
         $data = $_POST['data'];
         if (isset($data['reset'])) {
             $data = unserialize(stripslashes(MG::getOption('pozvonimOption')));
             if (is_array($data)) {
                 unset($data['id']);
                 MG::setOption(array('option' => 'pozvonimOption', 'value' => addslashes(serialize($data))));
             }
             $this->removeShortCode();
             $this->messageSucces = 'reload';
             return true;
         }
         if (isset($data['code']) && !empty($data['code'])) {
             $data['token'] = $oldData['token'];
             if (!preg_match('/\\/([a-z0-9]{32})\\/connect/iu', $data['code'], $code)) {
                 $this->messageError = $this->lang['BAD_CODE'];
                 return false;
             }
             $code = $code[1];
             $data['key'] = $code;
             MG::setOption(array('option' => 'pozvonimOption', 'value' => addslashes(serialize($data))));
             $this->messageSucces = $this->lang['CODE_SAVED'];
             $this->installShortCode();
             return true;
         }
         if ($data = $this->valid($data)) {
             if (isset($data['code'])) {
                 unset($data['code']);
             }
             MG::setOption(array('option' => 'pozvonimOption', 'value' => addslashes(serialize($data))));
             if ($data = $this->register($data)) {
                 if (isset($data['code'])) {
                     unset($data['code']);
                 }
                 MG::setOption(array('option' => 'pozvonimOption', 'value' => addslashes(serialize($data))));
                 $this->messageSucces = 'reload';
             } else {
                 $this->messageError = $this->apiError ? $this->apiError : $this->lang['EMAIL_EXIST'];
                 return false;
             }
         } else {
             return false;
         }
     }
     return true;
 }
Пример #5
0
 function __construct($x, $kop = true, $currencyString = ' рублей', $kopShort = 'коп.')
 {
     $this->kopShort = $kopShort;
     $this->currencyString = $currencyString;
     $propertyOrder = MG::getOption('propertyOrder');
     $propertyOrder = stripslashes($propertyOrder);
     $propertyOrder = unserialize($propertyOrder);
     $rankUser = explode(",", $propertyOrder["currency"]);
     if (count($rankUser) == 3) {
         $this->rank[1] = $rankUser;
     }
     $this->num = $this->prepare($x);
     $this->test();
     $this->rub($kop);
 }
Пример #6
0
 public function __construct($ckeditMode = true)
 {
     include 'mg-admin/locales/' . MG::getOption('languageLocale') . '.php';
     $this->lang = $lang;
     if ($ckeditMode) {
         $uploaddir = 'uploads';
         $arrData = $this->addImage();
         $msg = $arrData['msg'];
         if ($arrData['status'] == "error") {
             echo '<script type="text/javascript">window.parent.CKEDITOR.tools.callFunction(' . $_REQUEST['CKEditorFuncNum'] . ',  "' . $full_path . '","' . $arrData['msg'] . '" );</script>';
         } else {
             $full_path = SITE . '/uploads/' . $arrData['actualImageName'];
             echo '<script type="text/javascript">window.parent.CKEDITOR.tools.callFunction("' . $_REQUEST['CKEditorFuncNum'] . '",  "' . $full_path . '","' . $arrData['msg'] . '" );</script>';
         }
     }
 }
Пример #7
0
 static function createTable()
 {
     DB::query("\n\t     CREATE TABLE IF NOT EXISTS `" . PREFIX . "call_back` (\n\t      `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Порядковый номер записи',\n\t\t  `name` text NOT NULL COMMENT 'Имя',\n\t      `phone` text NOT NULL COMMENT 'Телефон',      \n\t      `time` timestamp DEFAULT NOW() COMMENT 'Время добавления заявки',\n\t      `invisible` int(1) NOT NULL COMMENT 'Просмотр заявки',\n\t      `comment` text NULL COMMENT 'Комментарий к заявке',\n\t      PRIMARY KEY (`id`)\n\t    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;");
     DB::query("\n\t    \tCREATE TABLE IF NOT EXISTS `" . PREFIX . "call_back_config` (\n\t    \t`id` int(11) NOT NULL AUTO_INCREMENT ,\n\t    \t`send_mail` ENUM('0','1') DEFAULT '0',\n\t    \t`email_address` VARCHAR(200) NOT NULL DEFAULT '" . MG::getOption('adminEmail') . "',\n\t    \tPRIMARY KEY (`id`)\n\t    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;");
     $seeds = DB::query("SELECT * FROM `" . PREFIX . 'call_back_config' . "`");
     $numb = DB::numRows($seeds);
     if ($numb == 0) {
         DB::query("\n\t    \t\tINSERT INTO `" . PREFIX . 'call_back_config' . "` VALUES(NULL, '0', '" . MG::getOption('adminEmail') . "')\n\t    \t");
     }
     // Был ли плагин активирован ранее?
     $res = DB::query("\n\t    \tSELECT id\n\t    \tFROM `" . PREFIX . "call_back`\n\t    \tWHERE id in (1,2,3)\n\t    ");
     // Если плагин впервые активирован, то задаются настройки по умолчанию
     if (!DB::numRows($res)) {
         $array = array('countRows' => '10');
         MG::setOption(array('option' => 'call-backOption', 'value' => addslashes(serialize($array))));
     }
 }
Пример #8
0
<?php

mgAddMeta('<link type="text/css" href="' . SCRIPT . 'standard/css/layout.cart.css" rel="stylesheet"/>');
mgAddMeta('<script type="text/javascript" src="' . PATH_SITE_TEMPLATE . '/js/layout.cart.js"></script>');
?>

<?php 
if (MG::getOption('popupCart') == 'true') {
    ?>
  <?php 
    mgAddMeta('<link type="text/css" href="' . SCRIPT . 'standard/css/layout.fake.cart.css" rel="stylesheet"/>');
    ?>
  <div class="mg-fake-cart" style="display: none;">
    <a class="mg-close-fake-cart mg-close-popup" href="javascript:void(0);"></a>
    <div class="popup-header">
      <h2>Корзина товаров</h2>
    </div>
    <div class="popup-body">
      <table class="small-cart-table">

        <?php 
    if (!empty($data['cartData']['dataCart'])) {
        ?>

          <?php 
        foreach ($data['cartData']['dataCart'] as $item) {
            ?>
            <tr>
              <td class="small-cart-img">
                  <a href="<?php 
            echo SITE . "/" . (isset($item['category_url']) ? $item['category_url'] : 'catalog/') . $item['product_url'];
Пример #9
0
 /**
  * Метод отправки письма для активации пользователя.
  * @param type $userEmail
  * @return void 
  */
 private function _sendActivationMail($userEmail)
 {
     $userId = USER::getUserInfoByEmail($userEmail)->id;
     $hash = $this->fPass->getHash($userEmail);
     $this->fPass->sendHashToDB($userEmail, $hash);
     $siteName = MG::getOption('sitename');
     $link = '<a href="' . SITE . '/registration?sec=' . $hash . '&id=' . $userId . '" target="blank">' . SITE . '/registration?sec=' . $hash . '&id=' . $userId . '</a>';
     $paramToMail = array('siteName' => $siteName, 'userEmail' => $userEmail, 'link' => $link);
     $message = MG::layoutManager('email_registry', $paramToMail);
     $emailData = array('nameFrom' => $siteName, 'emailFrom' => MG::getSetting('noReplyEmail'), 'nameTo' => 'Пользователю сайта ' . $siteName, 'emailTo' => $userEmail, 'subject' => 'Активация пользователя на сайте ' . $siteName, 'body' => $message, 'html' => true);
     $this->fPass->sendUrlToEmail($emailData);
 }
Пример #10
0
 */
$lang = MG::get('lang');
$model = new Models_Order();
$listStatus['null'] = 'Не выбрано';
$ls = Models_Order::$status;
foreach ($ls as $key => $value) {
    $listStatus[$key] = $lang[$value];
    $listStatusTemp[$key] = $lang[$value];
}
$this->statusList = $listStatusTemp;
$listStatus['null'] = 'Не выбрано';
$dateFilterValues = array('default' => $lang['FILTER_ORDER_START_DEFAULT'], 'month' => $lang['FILTER_ORDER_START_MOUNTH'], 'year' => $lang['FILTER_ORDER_START_YEAR']);
$maxPrice = $model->getMaxPrice();
$minPrice = $model->getMinPrice();
$maxDate = $model->getMaxDate();
$propertyOrder = unserialize(stripslashes(MG::getOption('propertyOrder')));
if (!empty($propertyOrder['default_date_filter'])) {
    switch ($propertyOrder['default_date_filter']) {
        case 'month':
            $minDate = date('Y-m') . '-01 00:00:00';
            break;
        case 'year':
            $minDate = date('Y') . '-01-01 00:00:00';
            break;
        default:
            $minDate = $model->getMinDate();
    }
} else {
    $minDate = $model->getMinDate();
}
$property = array('id' => array('type' => 'text', 'label' => $lang['EDIT_ORDER_13'], 'value' => !empty($_POST['id']) ? $_POST['id'] : null), 'number' => array('type' => 'text', 'label' => $lang['EDIT_ORDER_16'], 'value' => !empty($_POST['number']) ? $_POST['number'] : null), 'user_email' => array('type' => 'text', 'label' => 'email', 'value' => !empty($_POST['user_email']) ? $_POST['user_email'] : null), 'name_buyer' => array('type' => 'text', 'special' => 'like', 'label' => $lang['ORDER_BUYER'], 'value' => !empty($_POST['name_buyer'][0]) ? $_POST['name_buyer'][0] : null), 'status_id' => array('type' => 'select', 'option' => $listStatus, 'selected' => !empty($_POST['status_id']) || $_POST['status_id'] === '0' ? $_POST['status_id'] : 'null', 'label' => $lang['ORDER_STATUS']), 'summ' => array('type' => 'beetwen', 'label1' => $lang['EDIT_ORDER_12'], 'label2' => $lang['FILTR_PRICE4'], 'min' => !empty($_POST['summ'][0]) ? $_POST['summ'][0] : $minPrice, 'max' => !empty($_POST['summ'][1]) ? $_POST['summ'][1] : $maxPrice, 'factMin' => $minPrice, 'factMax' => $maxPrice, 'class' => 'price numericProtection'), 'add_date' => array('type' => 'beetwen', 'label1' => $lang['FILTR_PRICE5'], 'label2' => $lang['FILTR_PRICE6'], 'min' => !empty($_POST['add_date'][0]) ? $_POST['add_date'][0] : $minDate, 'max' => !empty($_POST['add_date'][1]) ? $_POST['add_date'][1] : $maxDate, 'factMin' => '', 'factMax' => '', 'special' => 'date', 'class' => 'date'), 'sorter' => array('type' => 'hidden', 'label' => 'сортировка по полю', 'value' => !empty($_POST['sorter']) ? $_POST['sorter'] : null));
Пример #11
0
 static function getPanelCode($place = 0)
 {
     /*
      * Выводит в форму html для генерации виджета
      */
     $redirect_uri = urlencode(SITE . '/socialauth?backurl=' . urlencode(ULoginAuth::ulogin_get_current_page_url()));
     $ulogin_default_options = array();
     $ulogin_default_options['display'] = 'small';
     $ulogin_default_options['providers'] = 'vkontakte,odnoklassniki,mailru,facebook';
     $ulogin_default_options['fields'] = 'first_name,last_name,email,photo,photo_big';
     $ulogin_default_options['optional'] = 'sex,bdate,country,city';
     $ulogin_default_options['hidden'] = 'other';
     $ulogin_options = array();
     if (!URL::isSection('mg-admin')) {
         $option = MG::getSetting('uLoginSettings');
     } else {
         $option = MG::getOption('uLoginSettings');
     }
     $option = stripslashes($option);
     $options = unserialize($option);
     $ulogin_options['ulogin_id1'] = $options['uloginid1'];
     $ulogin_options['ulogin_id2'] = $options['uloginid2'];
     $default_panel = false;
     switch ($place) {
         case 0:
             $ulogin_id = $ulogin_options['ulogin_id1'];
             break;
         case 1:
             $ulogin_id = $ulogin_options['ulogin_id2'];
             break;
         default:
             $ulogin_id = $ulogin_options['ulogin_id1'];
     }
     if (empty($ulogin_id)) {
         $ul_options = $ulogin_default_options;
         $default_panel = true;
     }
     $panel = '';
     $panel .= '<div class="ulogin_panel"';
     if ($default_panel) {
         $ul_options['redirect_uri'] = $redirect_uri;
         unset($ul_options['label']);
         $x_ulogin_params = '';
         foreach ($ul_options as $key => $value) {
             $x_ulogin_params .= $key . '=' . $value . ';';
         }
         if ($ul_options['display'] != 'window') {
             $panel .= ' data-ulogin="******"></div>';
         } else {
             $panel .= ' data-ulogin="******" href="#"><img src="https://ulogin.ru/img/button.png" width=187 height=30 alt="МультиВход"/></div>';
         }
     } else {
         $panel .= ' data-uloginid="' . $ulogin_id . '" data-ulogin="******"></div>';
     }
     $panel = '<div class="ulogin_block place' . $place . '">' . $panel . '</div><div style="clear:both"></div>';
     return $panel;
 }
Пример #12
0
 /**
  * Аутентифицирует данные, с помощью криптографического алгоритма
  * @param $email - емайл.
  * @param $pass - пароль.
  * @return bool
  */
 public static function auth($email, $pass, $cap)
 {
     // проверка заблокирована ли авторизация,
     if (isset($_SESSION['blockTimeStart'])) {
         $period = time() - $_SESSION['blockTimeStart'];
         if ($period < 15 * 60) {
             return false;
         } else {
             unset($_SESSION['loginAttempt']);
             unset($_SESSION['blockTimeStart']);
         }
     }
     $result = DB::query('
   SELECT *
   FROM `' . PREFIX . 'user`
   WHERE email = "%s"
 ', $email, $pass);
     // если был введен код капчи,
     if ($cap && ($cap == '' || strtolower($cap) != strtolower($_SESSION['capcha']))) {
         $_SESSION['loginAttempt'] += 1;
         return false;
     }
     if ($row = DB::fetchObject($result)) {
         if ($row->pass == crypt($pass, $row->pass)) {
             self::$_instance->auth = $row;
             $_SESSION['userAuthDomain'] = $_SERVER['SERVER_NAME'];
             $_SESSION['user'] = self::$_instance->auth;
             $_SESSION['loginAttempt'] = '';
             return true;
         }
     }
     // если в настройках блокировка отменена, то количество попыток не суммируется.
     $lockAuth = MG::getOption('lockAuthorization') == 'false' ? false : true;
     if ($lockAuth) {
         if (!isset($_SESSION['loginAttempt'])) {
             $_SESSION['loginAttempt'] = 0;
         }
         $_SESSION['loginAttempt'] += 1;
     }
     return false;
 }
Пример #13
0
 /**
  * Выводит на экран печатную форму для печати заказа в админке.
  * @param int $id - id заказа.
  * @param boolean $sign использовать ли подпись.
  * @return array 
  */
 public function printOrder($id, $sign = true)
 {
     $orderInfo = $this->getOrder('id=' . DB::quote($id, true));
     $order = $orderInfo[$id];
     $perOrders = unserialize(stripslashes($order['order_content']));
     $currency = MG::getSetting('currency');
     $totSumm = $order['summ'] + $order['cost'];
     $paymentArray = $this->getPaymentMethod($order['payment_id']);
     $order['name'] = $paymentArray['name'];
     $propertyOrder = MG::getOption('propertyOrder');
     $propertyOrder = stripslashes($propertyOrder);
     $propertyOrder = unserialize($propertyOrder);
     $paramArray = $this->getParamArray(7, $order['id'], $order['summ']);
     foreach ($paramArray as $k => $field) {
         $paramArray[$k]['value'] = htmlentities($paramArray[$k]['value'], ENT_QUOTES, "UTF-8");
     }
     $customer = unserialize(stripslashes($order['yur_info']));
     $customerInfo = $customer['inn'] . ', ' . $customer['kpp'] . ', ' . $customer['nameyur'] . ', ' . $customer['adress'] . ', ' . $customer['bank'] . ', ' . $customer['bik'] . ', ' . $customer['ks'] . ', ' . $customer['rs'] . ', ' . $customer['nameyur'];
     //var_dump(json_decode($order['yur_info']));
     //viewData(json_decode(stripslashes($order['yur_info'])));
     $ylico = false;
     if (empty($customer['inn']) || empty($customer['bik'])) {
         $fizlico = true;
         $userInfo = USER::getUserInfoByEmail($order['user_email']);
         $customerInfo = $order['name_buyer'] . ',' . $order['address'] . ', тел. ' . $order['phone'] . ', ' . $order['email'];
     }
     // $customerInfo = '0';
     $customerInfo = htmlspecialchars($customerInfo);
     $data['propertyOrder'] = $propertyOrder;
     $data['order'] = $order;
     $data['customerInfo'] = $customerInfo;
     $data['perOrders'] = $perOrders;
     $data['currency'] = $currency;
     $html = MG::layoutManager('print_order', $data);
     return $html;
 }
Пример #14
0
 /**
  * Отключает публичную часть сайта. Обычно требуется для внесения изменений администратором.
  * @return bool
  */
 public function downTime()
 {
     $downtime = MG::getOption('downtime');
     if ('Y' == $downtime) {
         $activ = 'N';
     } else {
         $activ = 'Y';
     }
     $res = DB::query('
   UPDATE `' . PREFIX . 'setting`
   SET `value` = "' . $activ . '"
   WHERE `option` = "downtime"
 ');
     if ($res) {
         return true;
     }
 }
Пример #15
0
    /**
     * Выводит на экран печатную форму для печати заказа в админке.
     * @param int $id - id заказа.
     * @param boolean $sign использовать ли подпись.
     * @return array 
     */
    public function printOrder($id, $sign = true)
    {
        $orderInfo = $this->getOrder('id=' . DB::quote($id, true));
        $order = $orderInfo[$id];
        $perOrders = unserialize(stripslashes($order['order_content']));
        $currency = MG::getSetting('currency');
        $totSumm = $order['summ'] + $order['cost'];
        $paymentArray = $this->getPaymentMethod($order['payment_id']);
        $order['name'] = $paymentArray['name'];
        $propertyOrder = MG::getOption('propertyOrder');
        $propertyOrder = stripslashes($propertyOrder);
        $propertyOrder = unserialize($propertyOrder);
        $paramArray = $this->getParamArray(7, $order['id'], $order['summ']);
        foreach ($paramArray as $k => $field) {
            $paramArray[$k]['value'] = htmlentities($paramArray[$k]['value'], ENT_QUOTES, "UTF-8");
        }
        $customer = unserialize(stripslashes($order['yur_info']));
        $customerInfo = $customer['inn'] . ', ' . $customer['kpp'] . ', ' . $customer['nameyur'] . ', ' . $customer['adress'] . ', ' . $customer['bank'] . ', ' . $customer['bik'] . ', ' . $customer['ks'] . ', ' . $customer['rs'] . ', ' . $customer['nameyur'];
        $ylico = false;
        if (empty($order['yur_info'])) {
            $fizlico = true;
            $userInfo = USER::getUserInfoByEmail($order['user_email']);
            $customerInfo = $userInfo->name . ' ' . $userInfo->sname . ',' . $order['address'] . ', тел. ' . $order['phone'] . ', ' . $order['email'];
        }
        $html = '
      <style type="text/css">
       .form-wrapper table{border-collapse: collapse;width:100%;color:#000;}
       .form-wrapper small-table{border-collapse: separate;}
       .form-wrapper table tr th{padding: 10px;border: 1px solid #000;background:#FFFFE0;}
	     .form-wrapper .who-pay tr td{padding: 5px;}
	     .form-wrapper .who-pay tr td.name{width: 110px;}
	     .form-wrapper .who-pay{margin: 10px 0 0 0;}
       .form-wrapper table tr td{padding: 5px;border: 1px solid #000;}
       .form-wrapper table tr td.bottom{border: none;text-align: right;}
	     .form-wrapper .order-total{margin: 10px 0 0 0;color:#000;}
	     .form-wrapper .title{text-align:center;font-size:24px;color:#000;}
	     .form-wrapper .total-list{list-style:none;}
	     .form-wrapper .no-border, .form-wrapper .who-pay tr td, .form-wrapper .small-table tr td{border:none;}
	     .form-wrapper .colspan4{border:none;text-align:right;}
	     .form-wrapper .rowspan2{vertical-align:bottom;}
	     .form-wrapper .nowrap{white-space:nowrap;}
       .yur-table td {height:30px;}
       .form-table td {height:30px; vertical-align: baseline;}
       .p {height:30px; vertical-align: baseline;}
     </style>
     <div class="form-wrapper">
	   <strong>' . $propertyOrder['nameyur'] . '</strong><br>
	   ' . $propertyOrder['adress'] . '
	   <br/>
	   <br/>
	   <table class="yur-table">
			<tr>
				<td>
          ИНН  ' . $propertyOrder['inn'] . '
        </td>
				<td>КПП ' . $propertyOrder['kpp'] . '</td>
				<td rowspan="2" class="rowspan2 nowrap" valign="middle">Сч. №</td>
				<td rowspan="2" class="rowspan2" valign="bottom">' . $propertyOrder['rs'] . '</td>
			</tr>
			<tr>
				<td colspan="2">Получатель <br>' . $propertyOrder['nameyur'] . '</td>
			</tr>
			<tr>
				<td colspan="2" rowspan="2">Банк получателя <br>' . $propertyOrder['bank'] . '</td>
				<td>БИК</td>
				<td>' . $propertyOrder['bik'] . '</td>
			</tr>
			<tr>
				<td class="nowrap">Сч. №</td>
				<td>' . $propertyOrder['ks'] . '</td>
			</tr>
	   </table>
         <h1 class="title">
           Счет <strong>№ ' . $propertyOrder['prefix'] . $order['id'] . '</strong>
           от ' . date('d.m.Y', strtotime($order['add_date'])) . '						
         </h1>
		 <table class="who-pay">
			<tr>
				<td class="name" width="100">Плательщик:</td>
				<td width="760">' . $customerInfo . '</td>
			</tr>
		 </table>
		 <br />
		 <br />
     <table class="form-table">
       <tr>
         <th bgcolor="#FFFFE0" width="40">№</th>
         <th bgcolor="#FFFFE0" width="327">Товар</th>
         <th bgcolor="#FFFFE0" >Артикул</th>
         <th bgcolor="#FFFFE0" >Цена</th>
         <th bgcolor="#FFFFE0" width="70">Кол-во</th>
         <th bgcolor="#FFFFE0" width="50">НДС</th>
         <th bgcolor="#FFFFE0" >Сумма</th>
       </tr>';
        $i = 1;
        $ndsPercent = is_numeric($propertyOrder['nds']) ? $propertyOrder['nds'] : 0;
        $totalNds = 0;
        if ($ndsPercent === 0) {
            $totalNds = '-';
        }
        if (!empty($perOrders)) {
            foreach ($perOrders as $perOrder) {
                if ($totalNds !== '-') {
                    $marginNds = $perOrder['price'] * $ndsPercent / (100 + $ndsPercent);
                    $perOrder['price'] -= $marginNds;
                    $totalNds += $marginNds;
                }
                $html .= '<tr>
            <td style="padding: 5px;">' . $i++ . '</td>
            <td cellpadding="5">
              ' . $perOrder['name'] . '
              ' . htmlspecialchars_decode(str_replace('&amp;', '&', $perOrder['property'])) . '
            </td>
            <td >' . $perOrder['code'] . '</td>
            <td >' . sprintf('%2.2f', $perOrder['price']) . '  ' . $currency . '</td>
            <td >' . $perOrder['count'] . ' шт.</td>
            <td >' . ($propertyOrder['nds'] >= 0 && is_numeric($propertyOrder['nds']) ? $propertyOrder['nds'] . '%' : '---') . '</td>
            <td >' . sprintf('%2.2f', $perOrder['price'] * $perOrder['count']) . '  ' . $currency . '</td>
          </tr>';
            }
        }
        $html .= '
      <tr>
        <td colspan="6" class="colspan4">
          <strong>Итого без НДС:</strong>
        </td>
        <td>' . sprintf('%2.2f', $order['summ'] - $totalNds) . '  ' . $currency . '</td>
      </tr>
      <tr>
		<td colspan="6" class="colspan4">
			<strong>Итого НДС:</strong>
		</td>';
        if ($totalNds !== '-') {
            $html .= '<td>' . sprintf('%2.2f', $totalNds) . '  ' . $currency . '</td>';
        } else {
            $html .= '<td>---</td>';
        }
        $html .= '</tr>
   <tr>
		<td colspan="6" class="colspan4">
			<strong>Доставка:</strong>
		</td>';
        $html .= '<td><strong>' . $order['delivery_cost'] . '  ' . $currency . '</strong></td>';
        $totalsumm = $order['summ'] + $order['delivery_cost'];
        $html .= '</tr>
      <tr>
        <td colspan="6" class="colspan4">
          <strong>Всего к оплате:</strong>
        </td>
        <td><strong>' . sprintf('%2.2f', $totalsumm) . '  ' . $currency . '</strong></td>
      </tr>
      </table>
    <p>Всего наименований ' . $i . ', на сумму ' . $totalsumm . '  ' . $currency . '</p>
    ';
        include 'int2str.php';
        $sumToWord = new int2str($totalsumm);
        $sumToWord->ucfirst($sumToWord->rub);
        $html .= '<p><strong style="font-size: 18px;">' . $sumToWord->ucfirst($sumToWord->rub) . '</strong></p>    
    <div class="clear">&nbsp;</div>
    </div>';
        $imgSing = '';
        if (file_exists($propertyOrder['sing'])) {
            $imgSing = '<img src="' . SITE . '/' . $propertyOrder['sing'] . '">';
        } else {
            if (file_exists('uploads/sing.jpg')) {
                $imgSing = '<img src="' . SITE . '/uploads/sing.jpg">';
            }
        }
        $imgStamp = '';
        if (file_exists($propertyOrder['stamp'])) {
            $imgStamp = '<img src="' . SITE . '/' . $propertyOrder['stamp'] . '">';
        } else {
            if (file_exists('uploads/stamp.jpg')) {
                $imgStamp = '<img src="' . SITE . '/uploads/stamp.jpg">';
            }
        }
        if (empty($propertyOrder['usedsing'])) {
            $imgSing = '';
            $imgStamp = '';
        }
        $html .= '
          <br /> 
					<br />           
          <table>
          
          <tr>
            <td width="240"></td>
            <td width="10"></td> 
            <td width="140" align="center">' . $imgSing . '</td>
            <td width="30"></td> 
            <td width="240"></td>
          </tr>
          
          <tr>
            <td width="240">Генеральный директор</td>
            <td width="10"></td>        
            <td width="140"></td>
            <td width="30"></td> 
            <td width="240" align="center">/' . $propertyOrder['general'] . '/</td>
          </tr>
          
          <tr>
            <td width="240"></td>
            <td width="10"></td>
            <td width="140"><hr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;подпись</td>        
            <td width="30"></td> 
            <td width="240"><hr><strong style="font-size: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;расшифровка подписи</strong></td>
          </tr>
          
          <tr>
            <td width="240"></td>
            <td width="10"></td>
            <td width="140"></td>   
            <td width="30"></td> 
            <td width="240"></td>
          </tr>
          
          <tr>
            <td width="240"></td>
            <td width="10"></td>
            <td width="140"></td> 
            <td width="30"></td> 
            <td width="240">М.П.' . $imgStamp . '</td>
          </tr>
          
          <tr>
          </tr>
          
          </table>
       ';
        return $html;
    }
Пример #16
0
    ?>
</a>
                    <?php 
}
?>
                </li>
                <li>
                    <span class="error-key link-fail" style="display: <?php 
echo $updataDisabled != "disabled" ? 'none' : 'block';
?>
"><?php 
echo $lang['SETTING_LOCALE_1'];
?>
</span>
                    <?php 
$dateActivate = MG::getOption('dateActivateKey');
if ($dateActivate != '0000-00-00 00:00:00') {
    $now_date = strtotime($dateActivate);
    $future_date = strtotime(date("Y-m-d"));
    $dayActivate = 365 - floor(($future_date - $now_date) / 86400);
    if ($dayActivate <= 0) {
        $dayActivate = 0;
        $extend = " [<a href='http://moguta.ru/extendcenter'>Продлить</a>]";
    }
    $activeDate = " " . $lang['SETTING_BASE_4'] . " <span class='key-days-number'>" . $dayActivate . " " . $lang['SETTING_BASE_5'] . "</span>" . $extend;
} else {
    $activeDate = " <span class='link-result'>" . $lang['SETTING_LOCALE_2'] . "</span>";
}
?>
                    <?php 
echo $activeDate;
Пример #17
0
						<li><a href="">Акции</a></li>
						<li><a href="">Карта сайта</a></li>
					</ul>
				</div>
				<div class="left-big">
					<p class="title">О нас</p>
					<?php 
echo TplInfo::getOption('aboutFooter');
?>
				</div>
			</div><!-- !div.footer-wrapper -->
		</div><!-- !div#footer-top-bg -->
		<div id="footer-bottom-bg">
			<div id="copyright-info" class="footer-wrapper">
				<p><span>&#169; 2014</span> <?php 
echo MG::getOption('sitename');
?>
 <span><?php 
echo TplInfo::getOption('slogan');
?>
</span></p>
			</div>
		</div><!-- !#footer-bottom-bg -->	
	</div><!-- !div#footer -->
	<div id="bottom-basket" class="static-basket">
		<div class="title clearfix">
			<span class="left">Корзина</span>
			<span class="right count">цена</span>
			<span class="right count-static"><?php 
echo $data['cartCount'] ? $data['cartCount'] : 0;
?>
Пример #18
0
$this->itemsCount = $navigator->getNumRowsSql();
$sql = "\r\n  SELECT  SUM(o.summ+o.delivery_cost) as totalsum  FROM `" . PREFIX . "order` as o\r\n  LEFT JOIN `" . PREFIX . "user` as u ON o.user_email = u.email\r\n  WHERE " . $userFilter . "\r\n";
$res = DB::query($sql);
if ($row = DB::fetchAssoc($res)) {
    $totalSumm = $row['totalsum'];
}
$this->totalSumm = $totalSumm;
// Десериализация строки в массив (состав заказа)
foreach ($orders as $k => $order) {
    $orders[$k]['order_content'] = unserialize(stripslashes($order['order_content']));
    if ($orders[$k]['number'] == '') {
        $orders[$k]['number'] = $orders[$k]['id'];
        DB::query("UPDATE `" . PREFIX . "order` SET `number`= " . DB::quote($orders[$k]['number']) . " WHERE `id`=" . DB::quote($orders[$k]['id']) . "");
    }
}
$propertyOrder = MG::getOption('propertyOrder');
$propertyOrder = stripslashes($propertyOrder);
$propertyOrder = unserialize($propertyOrder);
$product = new Models_Product();
$exampleName = $product->getProductByUserFilter(' 1=1 LIMIT 0,1');
$ids = array_keys($exampleName);
$this->exampleName = $exampleName[$ids[0]]['title'];
$this->assocStatus = Models_Order::$status;
$this->assocStatusClass = array('get-paid', 'get-paid', 'paid', 'get-paid', 'dont-paid', 'paid', 'get-paid');
// цветная подсветка статусов
$model = new Models_Order();
$this->assocDelivery = $model->getListDelivery();
$this->assocPay = $model->getListPayment();
$this->orders = $orders;
$this->pager = $navigator->getPager('forAjax');
$this->orderCount = $model->getOrderCount();
Пример #19
0
 /**
  * Обработчик шотркода вида [slider-action] 
  * выполняется когда при генерации страницы встречается [slider-action] 
  */
 static function sliderAction()
 {
     if (!URL::isSection('mg-admin')) {
         $option = MG::getSetting('sliderActionOption');
     } else {
         $option = MG::getOption('sliderActionOption');
     }
     $option = stripslashes($option);
     $options = unserialize($option);
     $options["width"] = $options["width"] ? $options["width"] . 'px' : '100%';
     $options["height"] = $options["height"] ? $options["height"] . 'px' : 'auto';
     if ($options["position"] == 'right') {
         $options["position"] = "float:right;";
     }
     if ($options["position"] == 'left') {
         $options["position"] = "float:left;";
     }
     if ($options["position"] == 'center') {
         $options["position"] = "margin: 0 auto;";
     }
     $slides = self::getEntity();
     $html = '<div class="m-p-slider-wrapper" style="width:' . $options["width"] . '; height:' . $options["height"] . '; ' . $options["position"] . '">';
     if ($options["titleslider"] != "") {
         $html .= '<h2>' . $options["titleslider"] . '</h2>';
     }
     $html .= '<div class="m-p-slider-contain">';
     foreach ($slides as $slide) {
         if (!$slide['invisible']) {
             continue;
         }
         if ($slide["type"] == "img" && !empty($slide["href"])) {
             $slide["value"] = '<a href="' . $slide["href"] . '">' . $slide["value"] . '</a>';
         }
         $html .= "<div class='m-p-slide-unit'>" . $slide["value"];
         if ($options["nameaction"] == 'true') {
             $html .= "<div class='nameaction'>" . $slide["nameaction"] . "</div>";
         }
         $html .= "</div>";
     }
     $html .= "</div>\r\n\t\t\t</div>\r\n      <div class='clear fix-slider-block' style='display:inline-block'></div>\r\n    ";
     $options["pause"] = $options["pause"] ? $options["pause"] : '1500';
     $options["mode"] = $options["mode"] ? $options["mode"] : 'horizontal';
     $options["speed"] = $options["speed"] ? $options["speed"] : '3000';
     $html .= '
   <script type="text/javascript">       
     $(document).ready(function() {
     $(".m-p-slider-contain").bxSlider({
       minSlides: 1,
       maxSlides: 1,
       pager:true,
       adaptiveHeight: false,
       auto:true,
       pause: ' . $options["pause"] . ',
       useCSS: false,
       speed:' . $options["speed"] . ',
       mode: "' . $options["mode"] . '",				  
     });
    });
   </script>
 ';
     $html .= '<div class="after-slider-content"></div>';
     return $html;
 }
Пример #20
0
 /**
  * Обработчик шотркода вида [pozvonim]
  * выполняется когда при генерации страницы встречается [pozvonim]
  */
 static function handleShortCode()
 {
     if (!URL::isSection('mg-admin')) {
         $option = MG::getSetting('pozvonimOption');
     } else {
         $option = MG::getOption('pozvonimOption');
     }
     // преобразование строки опций в массив
     $option = stripslashes($option);
     $options = unserialize($option);
     if (isset($options['key']) && !empty($options['key'])) {
         return '<script crossorigin="anonymous" async type="text/javascript" src="//api.pozvonim.com/widget/callback/v3/' . $options['key'] . '/connect" id="check-code-pozvonim" charset="UTF-8"></script>';
     }
     return '';
 }
Пример #21
0
/**
 * Возвращает значение для запрошенной опции (настройки).
 * Имеет два режима:
 * 1. getOption('optionName') - вернет только значение;
 * 2. getOption('optionName' , true) - вернет всю информацию об опции в
 * виде массива.
 * <code>
 * $data = array(
 *   option => 'идентификатор опции например: sitename'
 *   value  => 'значение опции например: moguta.ru'
 *   active => 'в будущем будет отвечать за автоподгрузку опций в кеш Y/N'
 *   name => 'Метка для опции например: Имя сайта'
 *   desc => 'Описание опции: Настройа задает имя для сайта'
 * )
 * </code>
 * @return void
 */
function getOption($option, $data = false)
{
    return MG::getOption($option, $data);
}
Пример #22
0
 /**
  * Метод отправки письма администратору с сcылкой для отмены блокировки авторизации .
  * @param type $unlockCode
  * @return void 
  */
 private function sendUnlockMail($unlockCode)
 {
     $link = '<a href="' . SITE . '/enter?unlock=' . $unlockCode . '" target="blank">' . SITE . '/enter?unlock=' . $unlockCode . '</a>';
     $siteName = MG::getOption('sitename');
     $paramToMail = array('siteName' => $siteName, 'link' => $link);
     $message = MG::layoutManager('email_unclockauth', $paramToMail);
     $emailData = array('nameFrom' => $siteName, 'emailFrom' => MG::getSetting('noReplyEmail'), 'nameTo' => 'Администратору сайтй ' . $siteName, 'emailTo' => MG::getSetting('adminEmail'), 'subject' => 'Подбор паролей на сайте ' . $siteName . ' предотвращен!', 'body' => $message, 'html' => true);
     if (Mailer::sendMimeMail($emailData)) {
         return true;
     }
     return false;
 }
Пример #23
0
 public static function preDownload($version)
 {
     $post = 'step=1' . '&sName=' . $_SERVER['SERVER_NAME'] . '&sIP=' . ($_SERVER['SERVER_ADDR'] == "::1" ? '127.0.0.1' : $_SERVER['SERVER_ADDR']) . '&sKey=' . MG::getOption('licenceKey') . '&ver=' . $version;
     $res = self::sendCurl(self::$_updataServer . '/updataserver', $post);
     try {
         $data = json_decode($res, true);
     } catch (Exception $exc) {
         $data['msg'] = $exc;
         $data['status'] = 'error';
     }
     MG::setOption(array('option' => 'dateActivateKey ', 'value' => $data['dateActivateKey']));
     if ('succes' == $data['status']) {
         $file = self::updataSystem($data['msg'], $version);
         if (!file_exists($file)) {
             $data['msg'] = 'Обновление не удалось!';
             $data['status'] = 'error';
         }
     }
     return $data;
 }
Пример #24
0
$groups = array('STNG_GROUP_1' => array('sitename', 'adminEmail', 'noReplyEmail', 'templateName', 'currencyShopIso', 'priceFormat', 'phoneMask', 'widgetCode'), 'STNG_GROUP_2' => array('horizontMenu', 'actionInCatalog', 'printRemInfo', 'printProdNullRem', 'printStrProp', 'printCompareButton', 'compareCategory', 'useCaptcha', 'autoRegister', 'printFilterResult', 'lockAuthorization', 'orderNumber', 'popupCart', 'catalogIndex', 'productInSubcat', 'copyrightMoguta', 'picturesCategory', 'requiredFields'), 'STNG_GROUP_3' => array('mainPageIsCatalog', 'countСatalogProduct', 'countNewProduct', 'countRecomProduct', 'countSaleProduct', 'randomProdBlock', 'buttonBuyName', 'buttonMoreName', 'buttonCompareName'), 'STNG_GROUP_4' => array('heightPreview', 'widthPreview', 'heightSmallPreview', 'widthSmallPreview', 'waterMark', 'waterMarkVariants'), 'STNG_GROUP_5' => array('smtp', 'smtpHost', 'smtpLogin', 'smtpPass', 'smtpPort'), 'STNG_GROUP_6' => array('shopName', 'shopPhone', 'shopAddress', 'shopLogo', 'backgroundSite'), 'STNG_GROUP_7' => array('cacheObject', 'cacheMode', 'cacheTime', 'cacheHost', 'cachePort', 'cacheCssJs'));
foreach (MG::getSetting('currencyRate') as $key => $val) {
    $currencySettings[$key]['rate'] = $val;
}
foreach (MG::getSetting('currencyShort') as $key => $val) {
    $currencySettings[$key]['short'] = $val;
}
$this->groups = $groups;
$this->data = array('setting-shop' => array('options' => $options, 'templates' => $templates), 'setting-system' => array('options' => array('downtime' => MG::getOption('downtime', true), 'licenceKey' => $licenceKey)), 'setting-template' => array('files' => array('template.php' => array('/template.php', 'Каркас шаблона сайта'), 'functions.php' => array('/functions.php', 'Пользовательские функции'), 'ajaxuser.php' => array('/ajaxuser.php', 'Пользовательская обработка ajax'), '404.php' => array('/404.php', 'Страница с 404 ошибкой'), 'style.css' => array('/css/style.css', 'Стили сайта'), 'script.js' => array('/js/script.js', 'Javascript сайта'), 'cart.php' => array('/views/cart.php', 'Верстка страницы корзины'), 'catalog.php' => array('/views/catalog.php', 'Верстка страницы каталога'), 'enter.php' => array('/views/enter.php', 'Верстка страницы авторизации'), 'feedback.php' => array('/views/feedback.php', 'Верстка страницы обратной связи'), 'forgotpass.php' => array('/views/forgotpass.php', 'Верстка страницы восстановления пароля'), 'index.php' => array('/views/index.php', 'Верстка главной страницы'), 'personal.php' => array('/views/personal.php', 'Верстка личного кабинета'), 'product.php' => array('/views/product.php', 'Верстка карточки товара'), 'registration.php' => array('/views/registration.php', 'Верстка страницы регистрации пользователя'), 'order.php' => array('/views/order.php', 'Верстка страницы оформления заказа')), 'email_layout' => array('email_template.php' => array('/layout/email_template.php', 'Каркас шаблона писем'), 'email_feedback.php' => array('/layout/email_feedback.php', 'Письма с обратной связи'), 'email_forgot.php' => array('/layout/email_forgot.php', 'Письмо восстановления пароля'), 'email_order.php' => array('/layout/email_order.php', 'Письмо оформления заказа'), 'email_registry.php' => array('/layout/email_registry.php', 'Письмо регистрации'), 'email_order_electro.php' => array('/layout/email_order_electro.php', 'Письмо электронных товаров')), 'layout' => array('layout_cart.php' => array('/layout/layout_cart.php', 'Верстка блока с маленькой корзиной'), 'layout_contacts.php' => array('/layout/layout_contacts.php', 'Верстка блока с контактами'), 'layout_related.php' => array('/layout/layout_related.php', 'Верстка блока связанных товаров'), 'layout_search.php' => array('/layout/layout_search.php', 'Верстка блока с поиском'), 'layout_topmenu.php' => array('/layout/layout_topmenu.php', 'Верстка блока с верхним меню'), 'layout_leftmenu.php' => array('/layout/layout_leftmenu.php', 'Верстка блока с левым меню'), 'layout_images.php' => array('/layout/layout_images.php', 'Верстка блока с галерей товара'), 'layout_compare.php' => array('/layout/layout_compare.php', 'Верстка блока сравнений'), 'layout_auth.php' => array('/layout/layout_auth.php', 'Верстка блока с элементами авторизации')), 'print_layout' => array('print_order.php' => array('/layout/print_order.php', 'Верстка PDF счета по заказу'), 'print_qittance.php' => array('/layout/print_qittance.php', 'Верстка квитанции сбербанка'))), 'interface-settings' => array('options' => array('themeColor' => MG::getOption('themeColor', true), 'themeBackground' => MG::getOption('themeBackground', true), 'staticMenu' => MG::getOption('staticMenu', true))), 'paymentMethod-settings' => array('paymentArray' => $paymentArray), 'deliveryMethod-settings' => array('deliveryArray' => $deliveryArray), 'currency-settings' => $currencySettings, 'numericFields' => array('countСatalogProduct', 'countNewProduct', 'countRecomProduct', 'countSaleProduct'), 'checkFields' => array('horizontMenu', 'mainPageIsCatalog', 'actionInCatalog', 'printRemInfo', 'printProdNullRem', 'smtp', 'waterMark', 'printStrProp', 'noneSupportOldTemplate', 'printCompareButton', 'cacheObject', 'randomProdBlock', 'compareCategory', 'useCaptcha', 'autoRegister', 'printFilterResult', 'lockAuthorization', 'orderNumber', 'popupCart', 'catalogIndex', 'productInSubcat', 'copyrightMoguta', 'picturesCategory', 'requiredFields', 'waterMarkVariants', 'cacheCssJs'), 'textFields' => array('widgetCode'));
// для отображения текущего шаблона
$this->pathTemplate = 'mg-templates' . DIRECTORY_SEPARATOR . MG::getSetting('templateName');
/**
 * Раздел управления системой
 *
 */
$downtime = MG::getOption('downtime');
if ('Y' == $downtime) {
    $checked = 'checked';
}
$this->checked = $checked;
if (!($checkLibs = MG::libExists())) {
    $newVer = Updata::checkUpdata();
    preg_match('/Ближайшая версия для обновления:(.*)/', $newVer['msg'], $m);
    if (!empty($m[1])) {
        $this->newFirstVersiov = $m[1];
    }
    preg_match('/Последняя версия системы:(.*)/', $newVer['msg'], $m);
    if (!empty($m[1])) {
        $this->newLastVersiov = $m[1];
    }
    $this->newVersionMsg = 'none';
Пример #25
0
 /**
  * Вывод страницы плагина в админке
  */
 static function pagePluginComments()
 {
     $lang = PM::plugLocales('comments');
     if ($_POST["page"]) {
         $page = $_POST["page"];
     }
     //если был произведен запрос другой страницы, то присваиваем переменной новый индекс
     $countPrintRowsComments = MG::getOption('countPrintRowsComments');
     $navigator = new Navigator("SELECT  *  FROM `" . PREFIX . "comments` ORDER BY `id` DESC", $page, $countPrintRowsComments);
     //определяем класс
     $comments = $navigator->getRowsSql();
     $pagination = $navigator->getPager('forAjax');
     // подключаем view для страницы плагина
     include 'pagePlugin.php';
 }
Пример #26
0
 /**
  * Метод отправки письма для активации пользователя.
  * @param type $userEmail
  * @return void 
  */
 private function _sendActivationMail($userEmail)
 {
     $userId = USER::getUserInfoByEmail($userEmail)->id;
     $hash = $this->fPass->getHash($userEmail);
     $this->fPass->sendHashToDB($userEmail, $hash);
     $siteName = MG::getOption('sitename');
     $message = '
   Здравствуйте!<br>
     Вы получили данное письмо так как зарегистрировались на сайте ' . $siteName . ' с логином ' . $userEmail . '.<br>
     Для активации пользователя и возможности пользоваться личным кабинетом пройдите по ссылке: <a href="' . SITE . '/registration?sec=' . $hash . '&id=' . $userId . '" target="blank">' . SITE . '/registration?sec=' . $hash . '&id=' . $userId . '</a>.<br>
     Отвечать на данное сообщение не нужно.';
     $emailData = array('nameFrom' => $siteName, 'emailFrom' => MG::getSetting('noReplyEmail'), 'nameTo' => 'Пользователю сайта ' . $siteName, 'emailTo' => $userEmail, 'subject' => 'Активация пользователя на сайте ' . $siteName, 'body' => $message, 'html' => true);
     $this->fPass->sendUrlToEmail($emailData);
 }