function __construct() { if (!USER::isAuth() || '1' != USER::getThis()->role) { MG::redirect('/'); } $this->data = array('content' => $_POST['content']); }
/** * Проверяет корректность ввода данных в форму обратной связи и регистрацию в системе покупателя. * * @param array $arrayData массив в введнными пользователем данными. * @return bool|string $error сообщение с ошибкой в случае некорректных данных. */ public function isValidData($arrayData) { $result = null; // Если электронный адрес зарегистрирован в системе. $currenUser = USER::getThis(); if ($currenUser->email != trim($arrayData['email'])) { if (USER::getUserInfoByEmail($arrayData['email'])) { $error = "<span class='user-exist'>Пользователь с таким email существует. \n Пожалуйста <a href='" . SITE . "/enter'>войдите в систему</a> используя \n свой электронный адрес и пароль!</span>"; // Иначе новый пользователь. } else { $this->newUser = true; } } // Корректность емайл. if (!preg_match('/^[-._a-z0-9]+@(?:[a-z0-9][-a-z0-9]{0,61}+\\.)+[a-z]{2,6}$/', $arrayData['email'])) { $error = "<span class='order-error-email'>E-mail введен некорректно!</span>"; } // Наличие телефона. if (empty($arrayData['phone'])) { $error = "<span class='no-phone'>Введите верный номер телефона!</span>"; } // Если нет ошибок, то заносит информацию в поля класса. if (!empty($error)) { $result = $error; } else { $this->fio = trim($arrayData['fio']); $this->email = trim($arrayData['email']); $this->phone = trim($arrayData['phone']); $this->address = trim($arrayData['address']); $this->info = trim($arrayData['info']); $this->delivery = $arrayData['delivery']; $deliv = new Delivery(); $this->delivery_cost = $deliv->getCostDelivery($arrayData['delivery']); $this->payment = $arrayData['payment']; $cart = new Models_Cart(); $this->summ = $cart->getTotalSumm(); $result = false; $this->addNewUser(); } $args = func_get_args(); return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args); }
?> " class="tool-tip-bottom"><span class="pages-icon"></span><?php echo $lang['PAGES']; ?> </a></li><?php } ?> <li><a id="orders" href="javascript:void(0);" title="<?php echo $lang['T_TIP_ORDR']; ?> " class="tool-tip-bottom"><span class="orders-icon"></span><?php echo $lang['ORDERS']; ?> </a></li> <?php if ('1' == User::getThis()->role || '4' == USER::getThis()->role) { ?> <li class="no-right-border"><a id="users" href="javascript:void(0);" title="<?php echo $lang['T_TIP_USER']; ?> " class="tool-tip-bottom"><span class="users-icon"></span><?php echo $lang['USERS']; ?> </a></li><?php } ?> <li><a id="plugins" href="javascript:void(0);" title="<?php echo $lang['T_TIP_PLUG']; ?> " class="tool-tip-top"><span class="plugins-icon"></span><?php echo $lang['PLUGINS'];
/** * Вывод списка аккаунтов пользователя * @param int $user_id - ID пользователя (значение по умолчанию = текущий пользователь) * @return string */ static function getSyncPanelCode($user_id = 0) { $current_user = USER::isAuth() ? USER::getThis() : 0; $current_user = isset($current_user->id) ? $current_user->id : 0; $user_id = empty($user_id) ? $current_user : $user_id; if (empty($user_id)) { return ''; } $res = DB::query("SELECT * FROM " . PREFIX . "ulogin WHERE user_id = " . DB::quote($user_id)); foreach ($res as $network) { $networks[] = $network; } $output = ' <style> .big_provider { display: inline-block; margin-right: 10px; } </style> <p class="change-pass-title">' . self::$lang['ULOGIN_SYNC'] . '</p>' . self::getPanelCode(1) . '<p>' . self::$lang['ULOGIN_SYNC_HELP'] . '</p> <p class="change-pass-title">' . self::$lang['ULOGIN_SYNC_LIST'] . '</p>'; $output .= '<div id="ulogin_accounts">'; foreach ($networks as $network) { if ($network['user_id'] = $user_id) { $output .= "<div data-ulogin-network='{$network['network']}' data-ulogin-identity='{$network['identity']}' class='ulogin_network big_provider {$network['network']}_big'></div>"; } } $output .= '</div> <p>' . self::$lang['ULOGIN_SYNC_DELETE'] . '</p>'; return $output; return ''; }
<input type="hidden" id="uKop" name="uKop" maxlength="2"> <input type="hidden" id="day" name="day" value="<?php echo date('d'); ?> "> <input type="hidden" id="day" name="month" value="<?php echo date('m'); ?> "> <input type="hidden" name="printQittance"> <input type="submit" name="submit" value="Получить заполненный бланк для оплаты заказа"> </form> <?php } else { if (USER::getThis()->email == $data['userInfo']->email) { ?> <br/> <a href="<?php echo SITE; ?> /mg-admin?getOrderPdf=<?php echo $data['id']; ?> " >Скачать счет в PDF</a> <?php } else { ?> <br/>Скачать счет из личного кабинета, можно будет после подтверждения заказа, перейдя по ссылке в высланом вам письме. <?php
/** * Отдает pdf файл на скачивание. * @param $orderId - номер заказа id. * @return array */ public function getPdfOrder($orderId) { // Подключаем библиотеку tcpdf.php require_once 'mg-core/script/tcpdf/tcpdf.php'; $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); $pdf->setPrintHeader(false); $pdf->setPrintFooter(false); $pdf->setImageScale(1.53); $pdf->SetFont('arial', '', 10); $pdf->AddPage(); $orderInfo = $this->getOrder('id=' . DB::quote($orderId, true)); $access = false; if (USER::getThis()->email && (USER::getThis()->email == $orderInfo[$orderId]['user_email'] || USER::getThis()->role != 2)) { $access = true; } if (!$access) { MG::redirect('/404'); return false; } if (!empty($orderInfo[$orderId]['yur_info'])) { $html = $this->printOrder($orderId); } else { //$html = "Извините, функция сохранения квитанции в PDF на стадии разработки."; $html = $this->printOrder($orderId); //$html = $this->printQittance(false); } $pdf->writeHTML($html, true, false, true, false, ''); $pdf->Output('Order ' . $orderId . '.pdf', 'D'); exit; }
static function affiliatePanel() { $id = USER::getThis()->id; if (!$id) { return 'Пожалуйста, <a href="' . SITE . '/registration">зарегистрируйтесь</a>, чтобы принять участие в партнерской программе ' . MG::get('sitename') . ' и получать ' . self::$percent . '% от стоимости заказов ваших друзей и знакомых.'; } $parnterLink = false; $result = DB::query(' SELECT * FROM `' . PREFIX . 'partner` WHERE `user_id` = ' . DB::quote($id)); if ($row = DB::fetchAssoc($result)) { $parnterLink = SITE . "?partnerId=" . $row['id']; } if ($parnterLink) { return '<div class="accostPartner"><p>Уважаемый, партнер! Ваша реферальная ссылка: <span>' . $parnterLink . '</span></p><p>Передайте ее друзьям и знакомым и вы получите ' . self::$percent . '% от стоимости их заказа.</p></div>'; } else { $html = ' <script> function newPartner(){ $.ajax({ type: "POST", url: "ajax", data: { pluginHandler: "partners-program", actionerClass: "Partner", action: "becomePartner" }, dataType: "json", cache: false, success: function(response){ location="' . SITE . '/affiliate" ; } }); } </script> Здравствуйте, ' . USER::getThis()->name . ' ' . USER::getThis()->sname . ' мы предлагаем Вам стать нашим партнером и получать ' . self::$percent . '% от всех заказов привлеченных вами клентов. <a href="#" class="becomePartner" onclick="newPartner(); return false;">Получить реферальную сылку</a> '; return $html; } }
/** * Регистрация на сайте и в таблице uLogin * @param Array $u_user - данные о пользователе, полученные от uLogin * @param int $in_db - при значении 1 необходимо переписать данные в таблице uLogin * @return bool|int|Error */ function ulogin_registration_user($u_user, $in_db = 0) { if (!isset($u_user['email'])) { die("Через данную форму выполнить вход/регистрацию невозможно. </br>" . "Сообщиете администратору сайта о следующей ошибке: </br></br>" . "Необходимо указать <b>email</b> в возвращаемых полях <b>uLogin</b>"); } $u_user['network'] = isset($u_user['network']) ? $u_user['network'] : ''; $u_user['phone'] = isset($u_user['phone']) ? $u_user['phone'] : ''; // данные о пользователе есть в ulogin_table, но отсутствуют в Базе if ($in_db == 1) { DB::query("DELETE FROM " . PREFIX . "ulogin WHERE `identity` = " . DB::quote($u_user['identity'])); } $user_id = USER::getUserInfoByEmail($u_user['email']); $user_id = $user_id->id; // $check_m_user == true -> есть пользователь с таким email $check_m_user = $user_id > 0 ? true : false; $current_user = USER::isAuth() ? USER::getThis() : 0; // $isLoggedIn == true -> ползователь онлайн $isLoggedIn = isset($current_user->id) && $current_user->id > 0 ? true : false; if (!$check_m_user && !$isLoggedIn) { // отсутствует пользователь с таким email в базе -> регистрация $date = explode('.', $u_user['bdate']); $insert_user = array('pass' => md5(microtime(true)), 'email' => $u_user['email'], 'role' => 2, 'name' => $u_user['first_name'], 'sname' => $u_user['last_name'], 'address' => '', 'phone' => $u_user['phone'], 'birthday' => $date['2'] . '-' . $date['1'] . '-' . $date['0'], 'activity' => 1); $user_id = USER::add($insert_user); $user_id = DB::insertId(); $userData = USER::getUserById($user_id); $res = DB::query("INSERT INTO " . PREFIX . "ulogin (user_id, identity, network)\n\t\tVALUES (" . DB::quote($user_id) . "," . DB::quote($u_user['identity']) . "," . DB::quote($u_user['network']) . ")"); return $userData->id; } else { // существует пользователь с таким email или это текущий пользователь if (!isset($u_user["verified_email"]) || intval($u_user["verified_email"]) != 1) { die('<head></head><body><script src="//ulogin.ru/js/ulogin.js" type="text/javascript"></script><script type="text/javascript">uLogin.mergeAccounts("' . $_POST['token'] . '")</script>' . "Электронный адрес данного аккаунта совпадает с электронным адресом существующего пользователя. <br>Требуется подтверждение на владение указанным email.</br></br>" . "Подтверждение аккаунта" . "</body>"); } if (intval($u_user["verified_email"]) == 1) { $user_id = $isLoggedIn ? $current_user->id : $user_id; $other_u = DB::query("SELECT identity FROM " . PREFIX . "ulogin where `user_id` = " . DB::quote($user_id)); $other_u = DB::fetchAssoc($other_u); if ($other_u) { if (!$isLoggedIn && !isset($u_user['merge_account'])) { die('<head></head><body><script src="//ulogin.ru/js/ulogin.js" type="text/javascript"></script><script type="text/javascript">uLogin.mergeAccounts("' . $_POST['token'] . '","' . $other_u['identity'] . '")</script>' . "С данным аккаунтом уже связаны данные из другой социальной сети. <br>Требуется привязка новой учётной записи социальной сети к этому аккаунту.<br/>" . "Синхронизация аккаунтов" . "</body>"); } } DB::query("INSERT INTO " . PREFIX . "ulogin (user_id, identity, network)\n\t\t\tVALUES (" . DB::quote($user_id) . "," . DB::quote($u_user['identity']) . "," . DB::quote($u_user['network']) . ")"); return $user_id; } } return false; }
function __construct() { // Не существует обработки для прямого обращения. if (empty($_REQUEST)) { header('HTTP/1.0 404 Not Found'); exit; } // Отключаем вывод темы. MG::disableTemplate(); $actioner = URL::getQueryParametr('actionerClass'); if ('Ajaxuser' == $actioner) { $this->routeUserAction(URL::getQueryParametr('action')); } // Если этот аякс запрос направлен на выполнение // действия с БД, то пытаемся их выполнить. // Иначе подключается контролер из админки. $url = URL::getQueryParametr('mguniqueurl'); $type = URL::getQueryParametr('mguniquetype'); // Менеджерам запрещено работать с разделами. if (USER::getThis()->role == 3) { $accessDenied = array('category.php', 'page.php', 'catalog.php', 'users.php', 'settings.php', 'statistics.php'); if (in_array($url, $accessDenied)) { exit; } } // Модераторам запрещено работать с разделами. if (USER::getThis()->role == 4) { $accessDenied = array('settings.php', 'statistics.php'); if (in_array($url, $accessDenied)) { exit; } } // Незарегистрированным пользователям и клиентам запрещено работать с разделами. if (USER::getThis()->role == 2 || empty(USER::getThis()->role)) { exit; } // Если передана переменная $pluginFolder, то вся обработка // происходит в плагине из этой папки. $pluginHandler = URL::getQueryParametr('pluginHandler'); if (empty($pluginHandler)) { if (!$this->routeAction($url)) { if ('plugin' == $type) { if (!empty($_POST['request'])) { $_POST = $_POST['request']; } URL::setQueryParametr('view', ADMIN_DIR . 'section/views/plugintemplate.php'); } else { require_once ADMIN_DIR . 'section/controlers/' . $url; $this->lang = MG::get('lang'); URL::setQueryParametr('view', ADMIN_DIR . 'section/views/' . $url); } } } else { // Обработкой действия займется плагин, папка которого передана в $pluginHandler. $actioner = URL::getQueryParametr('actionerClass'); if (empty($actioner)) { // Если обработчик задан в параметре mguniqueurl , // то назначаем стандартный класс обработки, // который должен быть в каждом плагине. $actioner = 'Pactioner'; $this->routeAction($url, $pluginHandler, $actioner); } else { // Если задан уникальный обработчик, то // запускаем маршрутизатор действий. $this->routeAction($url, $pluginHandler, $actioner); } } }
public function becomePartner() { if (!USER::getThis()->id) { return false; } else { DB::query('INSERT INTO ' . PREFIX . 'partner (user_id,percent,payments_amount) VALUES(' . DB::quote(USER::getThis()->id) . ',' . PartnerProgram::$percent . ',0);'); } return true; }
</div><!-- !div#top-navigation --> <div id="header-info" class="clearfix"> <div class="left logo-box"> <h1><?php echo MG::getOption('sitename'); ?> </h1> <p class="slogan"><?php echo TplInfo::getOption('slogan'); ?> </p> </div> <div class="right cart-basket-box"> <table width="100%"> <?php if ($user = !USER::getThis()) { ?> <tr> <td> <p><i class="icon-lock"></i> <a href="<?php echo SITE; ?> /personal" class="orange b-d-ntd"> Личный кабинет</a></p> </td> </tr> <tr> <td> <p><i class="icon-lock"></i> <a href="<?php echo SITE; ?> /forgotpass" class="orange b-d-ntd"> Восстановление пароля</a></p>
/** * Устанавливает meta данные страницы. * @param string|bool $title заголовок страницы. * @return void. */ public static function meta() { $metaTitle = self::get('metaTitle'); $metaKeywords = self::get('metaKeywords'); $metaDescription = self::get('metaDescription'); $title = $metaTitle ? $metaTitle : self::get('title'); $meta = ' <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>' . $title . '</title> <meta name="keywords" content="' . $metaKeywords . '" /> <meta name="description" content="' . $metaDescription . '" /> '; $head = '<script type="text/javascript" src="' . SITE . '/mg-core/script/jquery-1.10.2.min.js"></script>'; if (!URL::isSection(null)) { $head .= '<script type="text/javascript" src="' . SITE . '/mg-core/script/jquery-ui-1.10.3.custom.min.js"></script>'; $head .= '<script type="text/javascript" src="' . SITE . '/mg-core/script/jquery.form.js"></script>'; $head .= '<script type="text/javascript" src="' . SITE . '/mg-core/script/engine-script.js?protocol=' . PROTOCOL . '&mgBaseDir=' . SITE . '&currency=' . MG::getSetting('currency') . '&phoneMask=' . MG::getSetting('phoneMask') . '"></script> '; } // поддержка js для старых шаблонов if (MG::getSetting('noneSupportOldTemplate') == 'true') { $head .= ' <script type="text/javascript" src="' . SITE . '/mg-core/script/old-engine-script.js"></script> '; } $userMeta = MG::get('register'); $currentController = MG::get('controller'); $head .= ' <!--Реестр определенных стилей в плагинах движка--> '; if (!empty($userMeta)) { foreach ($userMeta as $key => $headers) { //выводим мета заголовок, только если соответствует контролер или его нужно выводить всегда if ($key == 'all' || $key == $currentController) { foreach ($headers as $value) { // отдельно берем стили для мобильной версии, чтобы поместить их в нужном порядке, после всех остальных if (stripos($value, 'mobile.css') !== false) { $mobileCss .= $value . ' '; continue; } if (stripos($value, '<script') !== false) { $metaScript .= $value . ' '; } else { $head .= $value . ' '; } } } } } $head .= '<!--/Реестр определенных стилей в плагинах движка--> '; $head .= ' <!--Обязательный файл стилей для каждого шаблона--> <link rel="stylesheet" href="' . PATH_SITE_TEMPLATE . '/css/style.css" type="text/css" /> <!--/Обязательный файл стилей для каждого шаблона--> '; $colorScheme = MG::getSetting('colorScheme'); if (PREVIEW_TEMPLATE) { if (!empty($_GET['color'])) { SetCookie('color', $_GET['color'], time() + 3600 * 24 * 365); $colorScheme = $_GET['color']; } else { $colorScheme = $_COOKIE['color']; } } if ($colorScheme) { $head .= ' <!--Цветовая схема шаблона--> <link href="' . PATH_SITE_TEMPLATE . '/css/color-scheme/color_' . $colorScheme . '.css" rel="stylesheet" type="text/css" /> <!--/Цветовая схема шаблона--> '; } $head .= $mobileCss; $head .= ' <!--Реестр определенных скриптов в плагинах движка--> '; $head .= $metaScript; $head .= '<!--/Реестр определенных скриптов в плагинах движка--> '; // $meta .= $head; // $meta .= self::mergeStaticFile($head); if (USER::isAuth() && ('1' == USER::getThis()->role || USER::getThis()->role == '3' || '4' == USER::getThis()->role)) { // для админа подключаем все стили из отдельных файлов как есть. $meta .= $head; $meta .= ' <link rel="stylesheet" href="' . SITE . '/mg-admin/design/css/adminbar.css" type="text/css" /> <link rel="stylesheet" href="' . SITE . '/mg-admin/design/css/style.css" type="text/css" /> <script type="text/javascript" src="' . SITE . '/mg-core/script/admin/admin.js?mgBaseDir=' . SITE . '¤cy=' . MG::getSetting('currency') . '&lang=' . MG::getSetting('languageLocale') . '" /></script> <script> $(document).ready(function(){admin.publicAdmin();}); var lang = "";</script> '; } else { // если не админ, то отдаем сжатые файлы $meta .= self::mergeStaticFile($head); } $args = func_get_args(); return self::createHook(__CLASS__ . "_" . __FUNCTION__, $meta, $args); }