Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Yesvik

Ветеран сообщества
  
  • Posts

    1,939
  • Joined

  • Last visited

Everything posted by Yesvik

  1. public function __construct() { return; public function get($key) { return; public function set($key, $value) { return; public function delete($key) { return;
  2. Ты с кучей сайтов заморачиваешся для раскидывания товаров одного производителя или одной категории по разным доменам, а на морде основного сайта и в модулях используются товары со всех поддоменов? Если я прав и с изображениями всё получится - то имеет смысл на поддомене для изображений включить кеширование на стороне браузера.... В корне поддомена для изображений создай .htaccess с такими строками <IfModule mod_expires.c> ExpiresActive On ## Кэшировать браузером все файлы в течении двух недель (в секундах). ExpiresDefault A1209600 </IfModule>Получится пародия на CDN. Изображения будут отдаваться с правильными заголовками и кешироваться на стороне браузера для всех магазинов. Параллельная загрузка будет за счет того что изображения на другом домене. Кроме этого, учитывая что OpenCart ставит куки на узел, а не на домен - HTTP-запросы изображений будут без кук.
  3. Нет, всё будет нормально... при записи и считывании кеша учитывается store_id и для каждого магазина будет свой кеш, а при удалении будет зачищаться кеш всех магазинов.Вот чтение кеша $product_data = $this->cache->get('product.latest.' . $this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . $limit);а вот запись $this->cache->set('product.latest.' . $this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . $limit, $product_data);как видиш в ключе кеша присутствует $this->config->get('config_store_id'), а когда удаляется кеш - $this->config->get('config_store_id') не учитывается $this->cache->delete('product');
  4. Кстати о птичках... Попробуй на всех сайтах константе DIR_CACHE прописать путь в папку кеша какого-то одного сайта... должно получиться.
  5. В 1.х это делается легко, а в 0.х прийдётся изголяться Создай поддомен типа images.domain.tld и папке этого поддомена сделай папку для изображений Почему отдельный поддомен, а не один из существующих - объяснять лень, но так лучше. В конфигах константе DIR_IMAGE присвой путь в папку с изображениями на созданном поддомене. В конфиге админки константам HTTP_IMAGE и HTTPS_IMAGE пропиши созданный поддомен define('HTTP_IMAGE', 'http://images.domain.tld/image/'); define('HTTPS_IMAGE', 'http://images.domain.tld/image/'); Потом в корневом index.php ищеш такие строки define('HTTP_SERVER', $config->get('config_url')); define('HTTP_IMAGE', HTTP_SERVER . 'image/'); if ($config->get('config_ssl')) { define('HTTPS_SERVER', 'https://' . substr($config->get('config_url'), 7)); define('HTTPS_IMAGE', HTTPS_SERVER . 'image/'); } else { define('HTTPS_SERVER', HTTP_SERVER); define('HTTPS_IMAGE', HTTP_IMAGE); }изменяеш константы HTTP_IMAGE и HTTPS_IMAGE так же как в конфиге админки, что бы вот так получилось: define('HTTP_SERVER', $config->get('config_url')); define('HTTP_IMAGE', 'http://images.domain.tld/image/'); if ($config->get('config_ssl')) { define('HTTPS_SERVER', 'https://' . substr($config->get('config_url'), 7)); define('HTTPS_IMAGE', 'http://images.domain.tld/image/'); } else { define('HTTPS_SERVER', HTTP_SERVER); define('HTTPS_IMAGE', HTTP_IMAGE); }У себя не проверял, но вроде не ошибся и должно работать...
  6. Если у тебя посещаемость не очень большая - то лучше отрубить кеш как я описывал.Смотри что будет происходить: сделали запись в кеш, а следующий запрос пришел через 61 секунду... кеш прочитали, а он протухший и пошли в базу за данными. Промахов будет очень много... смысла нет в таком кеше - это сплошные тормоза.
  7. У тебя магазины на разных серваках?
  8. Да... уж... лёгких путей не ищем. freelancer я поражен твоим мастерством всё ставить с ног на голову... Этож надо было додуматься исправить 24 файла.... boomfox неужели так критично что-бы новые товары появлялись на сайтах моментально? Время жизни кеша - 1 час, и новые товары появятся во всех магазинах не позднее чем через час. Или у тебя посещаемость такая что за час теряеш продажи? Если 1 час всё таки очень долго - уменьш время жизни кеша до 10-15 минут. В файле system/library/cache.php найди строку private $expire = 3600;вместо 3600 напиши 900 или 600 (это время жизни кеша в секундах)Ну а если тебе действительно надо отрубить кеш - то это делается без тех извратов которые тебе предложили Самый простой способ - сделать время жизни кеша 0 и все данные будут браться из базы, но при этом кеш будет записываться, считываться с диска, удаляться... а это медленные операции. Так что лучше сделать так: В файле system/library/cache.php ищеш строки которые начинаются с public function ......таких строк там 4 После каждой найденной строки добавь строку return;всё... раз уж кеш не используем - то и файловую систему дергать смысла нет...Если захочеш включить кеш - то гораздо проще восстановить один файл, а не 24.
  9. Такого функционала в стандартной поставке нет
  10. Вроде нет ничего что могло бы дать пустую строку...
  11. В логах есть какая-то ругань?
  12. У тебя не только сайтмеп со второй строки... везде первой идёт пустая строка
  13. По состоянию сайта на данный момент я не вижу в robots.txt ничего закрывающего доступ к категориям. Возможно это старое сообщение.
  14. Рекомендую http://www.opencart.com/index.php?route=extension/extension/info&extension_id=264Создаёш категорию статей "Советы", объясняеш админу что советы надо писать в этой категории и всё... в итоге будет примерно так http://www.opencart.su/index.php?route=information/infocategory&path=1_2
  15. Попробуй в поиск форума забить рекурсив и будет подробнее... из последнего Жуткие тормоза (100 категорий , 10 000 товаров)
  16. Возможно проблема в том что переделан шаблон и не используется fancybox
  17. По барабану уровень вложенности.... функция array_shift предполагает в качестве аргумента - массив.Что бы предложенный код заработал - path должен быть массивом с идентификаторами категорий в обратном порядке... Примерно такая строка нужна перед твоей $this->request->get['path'] = array_reverse(explode('_', $this->request->get['path']));Но так делать нельзя....
  18. У тебя 3212 категорий, до 10 уровней вложенности. При использовании стандартных алгоритмов OpenCart'a ты имееш - безобразное количество запросов, которое ставит раком БД - безобразное количество файлов в папке cache и алгоритм кешера упирается в быстродействие ФС Читай форум и избавляйся от рекурсивных функций + снижай количество файлов в кеше.
  19. Описание правильное, а код - нет...И ещё желательно проверять наличие path if (!empty($this->request->get['path'])) { $parts = explode('_', $this->request->get['path']); $category_id = end($parts); }
  20. Технически нет разницы как хранить проект в репозитории, а структура trunk, branches и tags это просто условность о которой договорились... trunk - основная рабочая ветка branches - здесь обычно создают ответвления для экспериментальных или существенных и длительных разработок которые в случае успеха вливаются в основную ветку tags - предназначена для меток (временных срезов состояния проекта) В репе ocStore только trunk используется в соответствии с договорённостями, а остальное либо ведётся не должным образом, либо используется не по назначению... так исторически сложилось. Ориентируйся на trunk.
  21. Я не буду уточнять что именно надо отрывать за решение поставленной задачи средствами движка.
  22. Не занимайтесь хернёй... В файле .htaccess перед строками: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] добавить эти строки: RewriteCond %{REQUEST_URI} ^/(index\.php)?$ [NC] RewriteCond %{QUERY_STRING} ^(route=common/home)?$ [NC] RewriteRule .* index.php?route=product/all [L,R=301]
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.