Esempio n. 1
0
 static function getEntity()
 {
     $result = array();
     $sql = "SELECT * FROM `" . PREFIX . "call_back` ORDER BY id ASC";
     if ($_POST["page"]) {
         $page = $_POST["page"];
     }
     $navigator = new Navigator($sql, $page);
     $entity = $navigator->getRowsSql();
     $pagination = $navigator->getPager('forAjax');
     $result = array('entity' => $entity, 'pagination' => $pagination);
     return $result;
 }
Esempio n. 2
0
 /**
  * Выводит страницу настроек плагина в админке
  */
 static function pageSettingsPlugin()
 {
     if ($_POST["page"]) {
         $page = $_POST["page"];
         //если был произведен запрос другой страницы, то присваиваем переменной новый индекс
     }
     $navigator = new Navigator("\n      SELECT p. * , u.email, COUNT( p.id ) as count_orders\n      FROM  `" . PREFIX . "partner` AS p\n      LEFT JOIN  `" . PREFIX . "user` AS u ON u.id = p.user_id\n      LEFT JOIN  `" . PREFIX . "partner_order` AS po ON po.partner_id = p.id\n      GROUP BY p.id\n      ORDER BY p.payments_amount DESC  ", $page, 20);
     //определяем класс
     $partners = $navigator->getRowsSql();
     $pagination = $navigator->getPager('forAjax');
     $option = MG::getSetting('partners-program');
     $option = stripslashes($option);
     $options = unserialize($option);
     // подключаем view для страницы плагина
     include 'pagePlugin.php';
 }
Esempio n. 3
0
 public 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 = "\r\n\t\t\t\tSELECT id, name, comment, date\r\n\t\t\t\tFROM `" . PREFIX . "comments` \r\n\t\t\t\tWHERE (uri = " . DB::quote($uri) . " OR uri = " . DB::quote($uri . ".html") . ") AND approved = '1'\r\n\t\t\t\tORDER BY `id` DESC";
         $res = DB::query($sql);
         //Получаем блок пагинации
         if ($_POST["page"]) {
             $page = $_POST["page"];
         }
         //если был произведен запрос другой страницы, то присваиваем переменной новый индекс
         $navigator = new Navigator($sql, $page, MG::getSetting('countPrintRowsComments'));
         //определяем класс
         $comments = $navigator->getRowsSql();
         $pagination = $navigator->getPager('forAjax');
         /*
         * Получаем непосредственно комментарии.
          Если была запрошена не первая страница комментариев, выполняем вторую ветку условия.
         */
         foreach ($comments as $key => $value) {
             $comments[$key]['date'] = date('d.m.Y H:i', $result['comments']['date']);
         }
         $result['pagination'] = $pagination;
         $this->data = $result;
         return true;
     } else {
         $sql = "\r\n\t\t\t\tSELECT id, name, comment, date\r\n\t\t\t\tFROM `" . PREFIX . "comments`\r\n\t\t\t\tORDER BY date DESC";
         $res = DB::query($sql);
         while ($row = DB::fetchAssoc($res)) {
             $result[$row['id']] = $row;
         }
         return $result;
     }
 }
Esempio n. 4
0
 /**
  * Вывод страницы плагина в админке
  */
 static function pagePluginComments()
 {
     $lang = PM::plugLocales('comments');
     if ($_POST["page"]) {
         $page = $_POST["page"];
     }
     //если был произведен запрос другой страницы, то присваиваем переменной новый индекс
     $countPrintRowsComments = MG::getSetting('countPrintRowsComments');
     $navigator = new Navigator("SELECT  *  FROM `" . PREFIX . "comments` ORDER BY `id` DESC", $page, $countPrintRowsComments);
     //определяем класс
     $comments = $navigator->getRowsSql();
     $pagination = $navigator->getPager('forAjax');
     // подключаем view для страницы плагина
     include 'pagePlugin.php';
 }
Esempio n. 5
0
 public static function getListNews($count = 100)
 {
     //Получаем список новостей
     if ($_GET["page"]) {
         $page = $_GET["page"];
     }
     //если был произведен запрос другой страницы, то присваиваем переменной новый индекс
     $navigator = new Navigator("SELECT  *  FROM `mpl_news` ORDER BY `add_date` DESC", $page, $count);
     //определяем класс
     $news = $navigator->getRowsSql();
     $pagination = $navigator->getPager();
     return array('listNews' => $news, 'pagination' => $pagination);
 }
Esempio n. 6
0
 /**
  * Возвращает список найденных продуктов соответствующих поисковой фразе.
  * @param string $keyword - поисковая фраза.
  * @param string $allRows - получить сразу все записи.
  * @param string $onlyActive - учитывать только активные продукты.
  * @param boolean $adminPanel - запрос из публичной части или админки.
  * @return array
  */
 public function getListProductByKeyWord($keyword, $allRows = false, $onlyActive = false, $adminPanel = false, $mode = false)
 {
     $result = array('catalogItems' => array(), 'pager' => null, 'numRows' => null);
     $keyword = htmlspecialchars($keyword);
     $keywordUnTrim = $keyword;
     $keyword = trim($keyword);
     if (empty($keyword) || strlen($keyword) <= 2) {
         return $result;
     }
     $currencyRate = MG::getSetting('currencyRate');
     $currencyShopIso = MG::getSetting('currencyShopIso');
     // Поиск по точному соответствию.
     // Пример $keyword = " 'красный',   зеленый "
     // Убираем начальные пробелы и конечные.
     $keyword = trim($keyword);
     //$keyword = "'красный',   зеленый"
     if (SEARCH_FULLTEXT) {
         // Вырезаем спец символы из поисковой фразы.
         $keyword = preg_replace('/[`~!#$%^*()=+\\\\|\\/\\[\\]{};:"\',<>?]+/', '', $keyword);
         //$keyword = "красный   зеленый"
         // Замена повторяющихся пробелов на на один.
         $keyword = preg_replace('/ +/', ' ', $keyword);
         //$keyword = "красный зеленый"
         // Обрамляем каждое слово в звездочки, для расширенного поиска.
         $keyword = str_replace(' ', '* +', $keyword);
         //$keyword = "красный* *зеленый"
         // Добавляем по краям звездочки.
         $keyword = '+' . $keyword . '*';
         //$keyword = "*красный* *зеленый*"
         $sql = "\n      SELECT distinct p.code, CONCAT(c.parent_url,c.url) AS category_url,\n        p.url AS product_url, p.*, pv.product_id as variant_exist, pv.id as variant_id, rate,(p.price_course + p.price_course * (IFNULL(rate,0))) as `price_course`\n      FROM  `" . PREFIX . "product` AS p\n      LEFT JOIN  `" . PREFIX . "category` AS c ON c.id = p.cat_id\n      LEFT JOIN  `" . PREFIX . "product_variant` AS pv ON p.id = pv.product_id";
         if (!$adminPanel) {
             $sql .= " LEFT JOIN (\n        SELECT pv.product_id, SUM( pv.count ) AS varcount\n        FROM  `" . PREFIX . "product_variant` AS pv\n        GROUP BY pv.product_id\n      ) AS temp ON p.id = temp.product_id";
         }
         $prod = new Models_Product();
         $fulltext = "";
         $sql .= " WHERE ";
         $match = " MATCH (\n      p.`title` , p.`code`, p.`description` " . $fulltextInVar . " " . $fulltext . "\n      )\n      AGAINST (\n      '" . $keyword . "'\n      IN BOOLEAN\n      MODE\n      ) ";
         DB::query("SELECT id FROM `" . PREFIX . "product_variant` LIMIT 1");
         //Если есть варианты товаров то будеи искать и в них.
         if (DB::numRows(DB::query("SELECT id FROM `" . PREFIX . "product_variant` LIMIT 1"))) {
             $fulltextInVar = ', pv.`title_variant`, pv.`code` ';
             $match = "(" . $match . " OR MATCH (pv.`title_variant`, pv.`code`)\n        AGAINST (\n        '" . $keyword . "'\n        IN BOOLEAN\n        MODE\n        )) ";
         }
         $sql .= $match;
         // Проверяем чтобы в вариантах была хотябы одна единица.
         if (!$adminPanel) {
             if (MG::getSetting('printProdNullRem') == "true") {
                 $sql .= " AND (temp.`varcount` > 0 OR temp.`varcount` < 0 OR p.count>0 OR p.count<0)";
             }
         }
         if ($onlyActive) {
             $sql .= ' AND p.`activity` = 1';
         }
     } else {
         $sql = "\n       SELECT distinct p.id, CONCAT(c.parent_url,c.url) AS category_url,\n         p.url AS product_url, p.*, pv.product_id as variant_exist, pv.id as variant_id, rate,(p.price_course + p.price_course * (IFNULL(rate,0))) as `price_course`, \n         p.currency_iso\n       FROM  `" . PREFIX . "product` AS p\n       LEFT JOIN  `" . PREFIX . "category` AS c ON c.id = p.cat_id\n       LEFT JOIN  `" . PREFIX . "product_variant` AS pv ON p.id = pv.product_id";
         if (!$adminPanel) {
             $sql .= " LEFT JOIN (\n         SELECT pv.product_id, SUM( pv.count ) AS varcount\n         FROM  `" . PREFIX . "product_variant` AS pv\n         GROUP BY pv.product_id\n       ) AS temp ON p.id = temp.product_id";
         }
         $prod = new Models_Product();
         $fulltext = "";
         //Если есть варианты товаров то будеи искать и в них.
         if (DB::numRows(DB::query("SELECT id FROM `" . PREFIX . "product_variant` LIMIT 1"))) {
             $fulltextInVar = " OR\n             pv.`title_variant` LIKE '%" . DB::quote($keyword, true) . "%'\n           OR\n             pv.`code` LIKE '%" . DB::quote($keyword, true) . "%'";
         }
         $sql .= " WHERE (\n             p.`title` LIKE '%" . DB::quote($keyword, true) . "%'\n           OR\n             p.`code` LIKE '%" . DB::quote($keyword, true) . "%'\n        " . $fulltextInVar . ')';
         // Проверяем чтобы в вариантах была хотябы одна единица.
         if (!$adminPanel) {
             if (MG::getSetting('printProdNullRem') == "true") {
                 $sql .= " AND (temp.`varcount` > 0 OR temp.`varcount` < 0 OR p.count>0 OR p.count<0)";
             }
         }
         if ($onlyActive) {
             $sql .= ' AND p.`activity` = 1';
         }
     }
     $page = URL::get("page");
     $settings = MG::get('settings');
     //if ($mode=='groupBy') {
     $sql .= ' GROUP BY p.id';
     //}
     if ($allRows) {
         $sql .= ' LIMIT 15';
     }
     $navigator = new Navigator($sql, $page, $settings['countСatalogProduct'], $linkCount = 6, $allRows);
     // Определяем класс.
     $this->products = $navigator->getRowsSql();
     // добавим к полученым товарам их свойства
     $this->products = $this->addPropertyToProduct($this->products);
     $this->pager = $navigator->getPager();
     $result = array('catalogItems' => $this->products, 'pager' => $this->pager, 'numRows' => $navigator->getNumRowsSql());
     if (count($result['catalogItems']) > 0) {
         // упорядочивание списка найденых  продуктов
         // первыми в списке будут стоять те товары, у которых полностью совпала поисковая фраза
         // затем будут слова в начале которых встретилось совпадение
         // в конце слова в середине которых встретилось совпадение
         //
         //
         $keyword = str_replace('*', '', $keyword);
         $resultTemp = $result['catalogItems'];
         $prioritet0 = array();
         $prioritet1 = array();
         $prioritet2 = array();
         foreach ($resultTemp as $key => $item) {
             $title = mb_convert_case($item['title'], MB_CASE_LOWER, "UTF-8");
             $keyword = mb_convert_case($keyword, MB_CASE_LOWER, "UTF-8");
             if (trim($title) == $keyword) {
                 $prioritet0[] = $item;
                 continue;
             }
             if (strpos($title, $keyword) === 0) {
                 $prioritet1[] = $item;
             } else {
                 $prioritet2[] = $item;
             }
         }
         $result['catalogItems'] = array_merge($prioritet0, $prioritet1, $prioritet2);
     }
     $args = func_get_args();
     return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args);
 }
Esempio n. 7
0
$filter = new Filter($property);
$arr = array('date_add' => array(!empty($_POST['date_add'][0]) ? $_POST['date_add'][0] : $minDate, !empty($_POST['date_add'][1]) ? $_POST['date_add'][1] : $maxDate, 'date'), 'email' => !empty($_POST['email']) ? $_POST['email'] : null, 'role' => !empty($_POST['role']) ? $_POST['role'] : 'null');
$userFilter = $filter->getFilterSql($arr, explode('|', $_POST['sorter']));
$sorterData = explode('|', $_POST['sorter']);
if ($sorterData[1] > 0) {
    $sorterData[3] = 'desc';
} else {
    $sorterData[3] = 'asc';
}
$countPrintRowsUser = MG::getSetting('countPrintRowsUser');
if (empty($_POST['sorter'])) {
    if (empty($userFilter)) {
        $userFilter .= ' 1=1 ';
    }
    $userFilter .= "ORDER BY `date_add` DESC";
}
$navigator = new Navigator("SELECT  *  FROM `" . PREFIX . "user` WHERE " . $userFilter . "", $page, $countPrintRowsUser);
//определяем класс
$users = $navigator->getRowsSql();
$this->accessStatus = USER::$accessStatus;
$this->groupName = USER::$groupName;
$this->users = $navigator->getRowsSql();
$this->pagination = $navigator->getPager('forAjax');
$this->countPrintRowsUser = $countPrintRowsUser;
$res = DB::query("SELECT id  FROM `" . PREFIX . "user`");
$count = DB::numRows($res);
$this->usersCount = $count;
$this->displayFilter = $_POST['role'] != "null" && !empty($_POST['role']) || isset($_POST['applyFilter']);
// так проверяем произошол ли запрос по фильтрам или нет
$this->filter = $filter->getHtmlFilter();
$this->sorterData = $sorterData;
Esempio n. 8
0
 /**
  * Выгружает список пользоватеоей в CSV файл.
  * $listUserId выгрузка выбранных пользователей
  * @return array
  */
 public function exportToCsvUser($listUserId = array())
 {
     header("Content-Type: application/force-download");
     header("Content-Type: application/octet-stream;");
     header("Content-Type: application/download");
     header("Content-Disposition: attachment;filename=data.csv");
     header("Content-Transfer-Encoding: binary ");
     $csvText = '';
     $csvText .= '"email";"Имя";"Фамилия";"Адрес";"Телефон";"День рождения";"Статус";"Группа";"Дата регистрации";"Доступ к кабинету";"Юр.лицо";"Юр.адрес";"ИНН";"КПП";"Банк";"БИК";"К/Сч";"Р/Сч";"IP";' . "\n";
     Storage::$noCache = true;
     $page = 1;
     // получаем максимальное количество заказов, если выгрузка всего ассортимента
     if (empty($listUserId)) {
         $res = DB::query('
     SELECT count(id) as count
     FROM `' . PREFIX . 'user`
     ');
         if ($user = DB::fetchAssoc($res)) {
             $count = $user['count'];
         }
         $maxCountPage = ceil($count / 500);
     } else {
         $maxCountPage = ceil(count($listUserId) / 500);
     }
     $listId = implode(',', $listUserId);
     for ($page = 1; $page <= $maxCountPage; $page++) {
         URL::setQueryParametr("page", $page);
         $sql = 'SELECT * FROM `' . PREFIX . 'user`';
         if (!empty($listUserId)) {
             $sql .= ' WHERE `id` IN (' . DB::quote($listId, 1) . ')';
         }
         $navigator = new Navigator($sql, $page, 500);
         //определяем класс
         $users = $navigator->getRowsSql();
         foreach ($users as $row) {
             $csvText .= self::addUserToCsvLine($row);
         }
     }
     $csvText = substr($csvText, 0, -2);
     // удаляем последний символ '\n'
     $csvText = mb_convert_encoding($csvText, "WINDOWS-1251", "UTF-8");
     if (empty($listUserId)) {
         echo $csvText;
         exit;
     } else {
         $date = date('m_d_Y_h_i_s');
         file_put_contents('data_csv_' . $date . '.csv', $csvText);
         $msg = 'data_csv_' . $date . '.csv';
     }
     return $msg;
 }
Esempio n. 9
0
 /**
  * Возвращает список найденных продуктов соответствующих поисковой фразе.
  * @param string $keyword - поисковая фраза.
  * @param string $allRows - получить сразу все записи.
  * @param string $onlyActive - учитывать только активные продукты.
  * @param boolean $adminPanel - запрос из публичной части или админки.
  * @return array
  */
 public function getListProductByKeyWord($keyword, $allRows = false, $onlyActive = false, $adminPanel = false, $sort = NULL, $isStock = NULL, $count = NULL)
 {
     $settings = MG::get('settings');
     if (!$count) {
         $count = $settings['countСatalogProduct'];
     }
     $result = array();
     // Поиск по точному соответствию.
     $model = new Models_Catalog();
     if (!isset($_GET["page"])) {
         $result = $model->getListByUserFilter(1, " p.title =" . DB::quote(trim($keyword)) . " OR p.code =" . DB::quote(trim($keyword)));
     }
     if (count($result['catalogItems']) !== 0) {
         foreach ($result['catalogItems'] as &$item) {
             $imagesUrl = explode("|", $item["image_url"]);
             $item["image_url"] = "";
             if (!empty($imagesUrl[0])) {
                 $item["image_url"] = $imagesUrl[0];
             }
             $item['currency'] = MG::getSetting('currency');
         }
         $args = func_get_args();
         return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args);
     }
     // Пример $keyword = " 'красный',   зеленый "
     // Убираем начальные пробелы и конечные.
     $keyword = trim($keyword);
     //$keyword = "'красный',   зеленый"
     // Вырезаем спец символы из поисковой фразы.
     $keyword = preg_replace('/[-`~!#$%^&*()_=+\\\\|\\/\\[\\]{};:"\',<>?]+/', '', $keyword);
     //$keyword = "красный   зеленый"
     // Замена повторяющихся пробелов на на один.
     $keyword = preg_replace('/ +/', ' ', $keyword);
     //$keyword = "красный зеленый"
     // Обрамляем каждое слово в звездочки, для расширенного поиска.
     $keyword = str_replace(' ', '* *', $keyword);
     //$keyword = "красный* *зеленый"
     // Добавляем по краям звездочки.
     $keyword = '*' . $keyword . '*';
     //$keyword = "*красный* *зеленый*"
     if ($sort == 'popular') {
         $sql = " \n        SELECT distinct p.code, v.views, CONCAT(c.parent_url,c.url) AS category_url, \n          p.url AS product_url, p.*, pv.product_id as variant_exist\n        FROM  `" . PREFIX . "product` AS p\n        LEFT JOIN `mg_popular-goods_visits` v ON v.id_product = p.id\n        LEFT JOIN  `" . PREFIX . "category` AS c ON c.id = p.cat_id\n        LEFT JOIN  `" . PREFIX . "product_variant` AS pv ON p.id = pv.product_id";
     } else {
         $sql = " \n        SELECT distinct p.code, CONCAT(c.parent_url,c.url) AS category_url, \n          p.url AS product_url, p.*, pv.product_id as variant_exist\n        FROM  `" . PREFIX . "product` AS p\n        LEFT JOIN  `" . PREFIX . "category` AS c ON c.id = p.cat_id\n        LEFT JOIN  `" . PREFIX . "product_variant` AS pv ON p.id = pv.product_id";
     }
     if (!$adminPanel) {
         $sql .= " LEFT JOIN (\n        SELECT pv.product_id, SUM( pv.count ) AS varcount\n        FROM  `" . PREFIX . "product_variant` AS pv\n        GROUP BY pv.product_id\n      ) AS temp ON p.id = temp.product_id";
     }
     $product = new Models_Product();
     $fulltext = "";
     // Проверяем наличие записей в вариантах если их нет, то не включаем
     // в поиск полнотекстовые индесты таблицы вариантов.
     if ($product->getVariants($id)) {
         $fulltext = ", pv.`code`, pv.`title_variant`";
     }
     $sql .= " WHERE MATCH (\n        p.`title` , p.`description` , p.`code` , p.`meta_title` , p.`meta_keywords` , p.`meta_desc` " . $fulltext . "\n        )\n        AGAINST (\n        '" . $keyword . "'\n        IN BOOLEAN\n        MODE\n        ) ";
     if ($onlyActive) {
         $sql .= ' AND p.`activity` = 1';
     }
     if ($isStock) {
         $sql .= " AND (temp.`varcount` > 0 OR temp.`varcount` < 0 OR p.count>0 OR p.count<0)";
     }
     if ($sort == 'desc') {
         $sql .= ' ORDER BY price DESC';
     } else {
         if ($sort == 'asc') {
             $sql .= ' ORDER BY price ASC';
         } else {
             if ($sort == 'popular') {
                 $sql .= ' ORDER BY v.views DESC';
             }
         }
     }
     $page = URL::get("page");
     $navigator = new Navigator($sql, $page, $count, $linkCount = 6, $allRows);
     // Определяем класс.
     $this->pages = $navigator->getRowsSql();
     $idsProduct = array();
     if (!empty($this->pages)) {
         foreach ($this->pages as $key => $product) {
             $idsProduct[$product['id']] = $key;
             // Назначаем для продукта позьзовательские характеристики по умолчанию, заданные категорией.
             $this->pages[$key]['thisUserFields'] = MG::get('category')->getUserPropertyCategoryById($product['cat_id']);
             $this->pages[$key]['currency'] = $settings['currency'];
             $this->pages[$key]['actionBuy'] = '<a href="' . SITE . '/catalog?inCartProductId=' . $product["id"] . '" class="addToCart product-buy" data-item-id="' . $product["id"] . '">В корзину</a>';
             $this->pages[$key]['actionView'] = '<a href="' . SITE . '/' . (isset($product["category_url"]) ? $product["category_url"] : 'catalog') . '/' . $product["product_url"] . '" class="product-info">Подробнее</a>';
             $imagesUrl = explode("|", $this->pages[$key]['image_url']);
             $this->pages[$key]["image_url"] = "";
             if (!empty($imagesUrl[0])) {
                 $this->pages[$key]["image_url"] = $imagesUrl[0];
             }
         }
     }
     if ($findPart = trim(DB::quote(implode(',', array_keys($idsProduct))), "'")) {
         // Формируем список id продуктов к которым нужно найти пользовательские характеристики.
         $where = ' IN (' . $findPart . ')';
     } else {
         $findPart = ' IN (0)';
     }
     $res = DB::query("\n      SELECT pup.property_id, pup.value, pup.product_id, pup.type_view, prop.*\n      FROM `" . PREFIX . "product_user_property` as pup\n      LEFT JOIN `" . PREFIX . "property` as prop\n        ON pup.property_id = prop.id\n      WHERE pup.`product_id` " . $where);
     while ($userFields = DB::fetchAssoc($res)) {
         if (!empty($this->pages)) {
             $this->pages[$idsProduct[$userFields['product_id']]]['thisUserFields'][$userFields['property_id']] = $userFields;
         }
     }
     $this->pager = $navigator->getPager();
     $result = array('catalogItems' => $this->pages, 'pager' => $this->pager, 'numRows' => $navigator->getNumRowsSql());
     if (count($result['catalogItems']) == 0) {
         //примитивный поиск по названию. 100% соответствие
         $sql = " \n        SELECT id\n        FROM  `" . PREFIX . "product` AS p\n        WHERE title = " . DB::quote($keyword) . " OR code = " . DB::quote($keyword);
         if ($row = DB::fetchAssoc($sql)) {
             $product = new Models_Product();
         }
     }
     $args = func_get_args();
     return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args);
 }
Esempio n. 10
0
} else {
    $sorterData[3] = 'asc';
}
$page = !empty($_POST["page"]) ? $_POST["page"] : 0;
//если был произведен запрос другой страницы, то присваиваем переменной новый индекс
$countPrintRowsOrder = MG::getSetting('countPrintRowsOrder');
if (empty($_POST['sorter'])) {
    if (empty($userFilter)) {
        $userFilter .= ' 1=1 ';
    }
    $userFilter .= "  ORDER BY `add_date` DESC";
}
$sql = "\r\n  SELECT  o.* ,u.sname, u.name FROM `" . PREFIX . "order` as o\r\n  LEFT JOIN `" . PREFIX . "user` as u ON o.user_email = u.email\r\n  WHERE " . $userFilter . "\r\n";
$navigator = new Navigator($sql, $page, $countPrintRowsOrder);
//определяем класс
$orders = $navigator->getRowsSql();
$this->itemsCount = $navigator->getNumRowsSql();
$sql = "\r\n  SELECT  SUM(o.summ+o.delivery_cost) as totalsum  FROM `" . PREFIX . "order` as o\r\n  LEFT JOIN `" . PREFIX . "user` as u ON o.user_email = u.email\r\n  WHERE " . $userFilter . "\r\n";
$res = DB::query($sql);
if ($row = DB::fetchAssoc($res)) {
    $totalSumm = $row['totalsum'];
}
$this->totalSumm = $totalSumm;
// Десериализация строки в массив (состав заказа)
foreach ($orders as $k => $order) {
    $orders[$k]['order_content'] = unserialize(stripslashes($order['order_content']));
    if ($orders[$k]['number'] == '') {
        $orders[$k]['number'] = $orders[$k]['id'];
        DB::query("UPDATE `" . PREFIX . "order` SET `number`= " . DB::quote($orders[$k]['number']) . " WHERE `id`=" . DB::quote($orders[$k]['id']) . "");
    }
}