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'); } } }
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}(); } }
/** * Выгружает содержание всего каталога в 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; }
/** * Выгружает список пользоватеоей в 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; }