示例#1
0
 function __construct()
 {
     if (!USER::isAuth() || '1' != USER::getThis()->role) {
         MG::redirect('/');
     }
     $this->data = array('content' => $_POST['content']);
 }
示例#2
0
 /**
  * Проверяет корректность ввода данных в форму обратной связи и регистрацию в системе покупателя.
  *
  * @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);
 }
示例#3
0
        ?>
" 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'];
示例#4
0
    /**
     * Вывод списка аккаунтов пользователя
     * @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 '';
    }
示例#5
0
  <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 
示例#6
0
 /**
  * Отдает 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;
 }
示例#7
0
    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;
        }
    }
示例#8
0
/**
 * Регистрация на сайте и в таблице 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;
}
示例#9
0
 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);
         }
     }
 }
示例#10
0
 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;
 }
示例#11
0
			</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>
示例#12
0
文件: mg.php 项目: nellka/mebel
    /**
     * Устанавливает 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 . '&amp;mgBaseDir=' . SITE . '&amp;currency=' . MG::getSetting('currency') . '&amp;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 . '&currency=' . 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);
    }