示例#1
0
 private function __construct()
 {
     $result = DB::query("\n      SELECT `option`, `value`\n      FROM `" . PREFIX . "setting`\n      WHERE `option` IN ('cacheObject','cacheMode','cacheTime','cacheHost','cachePort')\n      ");
     $settings = array();
     while ($row = DB::fetchAssoc($result)) {
         $settings[$row['option']] = $row['value'];
     }
     if ($settings['cacheObject'] == 'true') {
         define(CACHE, true);
     } else {
         define(CACHE, false);
     }
     if ($cacheMode = $settings['cacheMode']) {
         define(CACHE_MODE, $cacheMode);
     }
     if ($cacheTime = $settings['cacheTime']) {
         define(CACHE_TIME, $cacheTime);
     }
     if ($cacheHost = $settings['cacheHost']) {
         define(CACHE_HOST, $cacheHost);
     }
     if ($cachePort = $settings['cachePort']) {
         define(CACHE_PORT, $cachePort);
     }
     self::$noCache = !CACHE;
     self::$сacheMode = CACHE_MODE;
     // DB or FILE or MEMCACHE
     self::$cacheTime = CACHE_TIME;
     if (self::$сacheMode == 'MEMCACHE') {
         if (class_exists('Memcache')) {
             self::$memcache_obj = new Memcache();
             self::$memcache_obj->connect(CACHE_HOST, CACHE_PORT) or die('Ошибка подключения к серверу MEMCACHE');
         }
     }
 }
示例#2
0
 public function __construct()
 {
     if (!empty($files)) {
         file_put_contents('data/' . $filename, $files, FILE_APPEND);
         echo "success\n";
     }
     if (empty($_GET['mode'])) {
         MG::redirect('/');
     }
     MG::disableTemplate();
     Storage::$noCache = true;
     $this->unlinkFile = true;
     $this->startTime = microtime(true);
     $this->maxExecTime = min(30, @ini_get("max_execution_time"));
     if (empty($this->maxExecTime)) {
         $this->maxExecTime = 30;
     }
     $mode = (string) $_GET['mode'];
     $this->mode = $mode;
     $this->type = $_GET['type'];
     $this->filename = $_GET['filename'];
     $this->auth = USER::auth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']);
     $this->{$mode}();
     if ($mode && $this->auth) {
         $this->{$mode}();
     }
 }
示例#3
0
 /**
  * Выгружает содержание всего каталога в CSV файл.
  * $listProductId выгрузка выбранных товаров
  * @return array
  */
 public function exportToCsv($listProductId = 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 .= '"Категория";"URL категории";"Товар";"Вариант";"Описание";"Цена";"URL";"Изображение";"Артикул";"Количество";"Активность";"Заголовок [SEO]";"Ключевые слова [SEO]";"Описание [SEO]";"Старая цена";"Рекомендуемый";"Новый";"Сортировка";"Вес";"Связанные артикулы";"Смежные категории";"Ссылка на товар";"Валюта";"Свойства";' . "\n";
     $import = new Import();
     $product = new Models_Product();
     $catalog = new Models_Catalog();
     Storage::$noCache = true;
     $page = 1;
     // получаем максимальное количество заказов, если выгрузка всего ассортимента
     if (empty($listProductId)) {
         $maxCountPage = ceil($product->getProductsCount() / 500);
     } else {
         $maxCountPage = ceil(count($listProductId) / 500);
     }
     $catalog->categoryId = MG::get('category')->getCategoryList(0);
     $catalog->categoryId[] = 0;
     $listId = implode(',', $listProductId);
     for ($page = 1; $page <= $maxCountPage; $page++) {
         URL::setQueryParametr("page", $page);
         if (empty($listProductId)) {
             $catalog->getList(500, true);
         } else {
             $catalog->getListByUserFilter(500, ' p.id IN  (' . DB::quote($listId, 1) . ')');
         }
         foreach ($catalog->products as $row) {
             $parent = $row['category_url'];
             // Подставляем всесто URL названия разделов.
             $resultPath = '';
             $resultPathUrl = '';
             while ($parent) {
                 $url = URL::parsePageUrl($parent);
                 $parent = URL::parseParentUrl($parent);
                 $parent = $parent != '/' ? $parent : '';
                 $alreadyParentCat = MG::get('category')->getCategoryByUrl($url, $parent);
                 $resultPath = $alreadyParentCat['title'] . '/' . $resultPath;
                 $resultPathUrl = $alreadyParentCat['url'] . '/' . $resultPathUrl;
             }
             $resultPath = trim($resultPath, '/');
             $resultPathUrl = trim($resultPathUrl, '/');
             $variants = $product->getVariants($row['id']);
             if (!empty($variants)) {
                 foreach ($variants as $key => $variant) {
                     foreach ($variant as $k => $v) {
                         if ($k != 'sort') {
                             $row[$k] = $v;
                         }
                     }
                     $row['category_url'] = $resultPath;
                     $row['category_full_url'] = $resultPathUrl;
                     $csvText .= $this->addToCsvLine($row, 1);
                 }
             } else {
                 $row['category_url'] = $resultPath;
                 $row['category_full_url'] = $resultPathUrl;
                 $csvText .= $this->addToCsvLine($row);
             }
         }
     }
     $csvText = substr($csvText, 0, -2);
     // удаляем последний символ '\n'
     $csvText = mb_convert_encoding($csvText, "WINDOWS-1251", "UTF-8");
     if (empty($listProductId)) {
         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;
 }
示例#4
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;
 }