Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

vico7

Новачок
  
  • Публікації

    8
  • З нами

  • Відвідування

Відвідувачі профілю

1 247 переглядів профілю

vico7's Achievements

Rookie

Rookie (2/14)

  • First Post
  • Week One Done
  • One Month Later
  • One Year In
  • Reacting Well Rare

Recent Badges

0

Репутація

  1. Вопрос по запросам к БД. Фильтр версии 2.3.7.2. На локальном сервере все прекрасно, время отклика БД = 0.01 сек. На удаленном сервере - до 10-12 сек !!! Всего идет 5 запросов и 3 из них по 3 сек. остальные - 2 сек и 0.5 сек. Это вызов getProducts() по аякс. На локалке и в внешнем сервере все файлы и БД одинаковые. Один из запросов (первый) в готовом виде : SELECT count(*) as total FROM (SELECT DISTINCT p.product_id, coalesce((SELECT price FROM oc_product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '1' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1), (SELECT price FROM oc_product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1), p.price) as realprice FROM oc_product p LEFT JOIN oc_product_option_value pov ON (pov.product_id=p.product_id) LEFT JOIN oc_product_to_store p2s ON (p2s.product_id=p.product_id) LEFT JOIN oc_product_to_category p2c ON (p2c.product_id=p.product_id) WHERE 1 AND p2c.category_id = '2' AND EXISTS (select 1 FROM oc_product_option_value pov0 WHERE pov0.product_id=pov.product_id AND pov0.option_value_id IN(139,140,141,142,143,111)) AND p.price >=160 AND p.price <=520 AND p.status = '1' AND p.date_available <= NOW( ) AND p2s.store_id = 0) as innertable WHERE 1 AND realprice >=160 AND realprice <=520 Хостинг - Dominant Telecom. Тариф - "Оптимальный". в базе порядка 500 товаров. Фильтрация по обуви - в категории 70 товаров + 10 размеров. Проверил на другом сервере - ukraine.com.ua. Время уменьшилось до 3-5 сек. Анализ запроса с помощью EXPLAIN показал, что на внешних серверах MySQL разбирают запрос почти одинаково, а на локалке - совсем по другому и в тысячи раз быстрее. В архиве результат EXPLAIN на внешнем сервере и на локальном запросы.zip ========== Решение: Добавить индексы к столбцам тех таблиц, которые участвуют в секциях WHERE, ON и сравнениях. Время уменьшилось до 0.1 сек и меньше.
  2. Что означает "довесок" в конце файла info.php ??? пардон.... это - ionCube. Удалите пост, пожалуйста. <?php //0046b if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');if(function_exists('dl')){@dl($__ln);}if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)>1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file <b>'.__FILE__.'</b> requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the <a href="http://www.ioncube.com/lw/">ionCube Loader Wizard</a> to assist with installation.');exit(199); ?> HR+cPrnpPQffn5sEOChmYGHgGPptD+3qbvMZlQMiMZfgD2ZuNLHSJu5zQLJ2da/xz/jvc8mkfE99 3JOeMjAZlJhnhLAL6gQ4L3NZa0Mq5bwXcMQW1jmrRO5PFhCJoj/+z27Cne1BUFpfN7HRa3sKWCIN s+T2zaX7hvh45YtyzLbwkYwNujgMkw2AalbRs35I1udwMmP7lelDyKiMLar1l3I9vsMFRYoMfRyf mW2QhFLv9Wm63E9HWcfVCMD+csrG6eIjFyqxd/qEDqraAmm/asfs/pfEkLCIDii5PgUVS/rXYDYY XBcsqOdI1cMebpZMht/HUcidpF/QQd0H6J0d5h0X3F/n15ZH72i0xuE9I5XMjg1GZUbx8wbii4mF qYqU1UTubt8CpLx6TwRDhsiz5EW2vKyK0d8a1I8Ym4FB/mncV8KmSmTnQthSB6wjkTeqxQW=
  3. Нашел решение с отключением не нужных (пока) языков, если они есть в базе данных. В файл модели admin\model\localisation\language.php добавил функцию getLanguagesBD. Она копия изначальной функции getLanguages. А в getLanguages вставил фильтр на status='1' стр. 297 было $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "language ORDER BY sort_order, name"); новое $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "language WHERE status='1' ORDER BY sort_order, name"); // фильтр на не активные языки К getLanguagesBD обращается только контроллер admin\controller\localisation\language.php для получения данных о языках в базе данных , в котором в строке 175 $results = $this->model_localisation_language->getLanguages($data); заменено на $results = $this->model_localisation_language->getLanguagesBD ($data); Теперь, если на вкладке "Языки" перейти по "изменить" и установить в Отключено "Статус: Показывать/Скрывать в переключателе языков витрины магазина" , то в Админке не будет табов с не активными языками. Теперь не нужно обязательно заполнять еще один язык - он не показывается. Вообще то, надо сделать отдельный выключатель, чтобы не привязываться к отображению языка в магазине.
  4. Здравствуйте! При отключении в админке в "Локализация" не нужного языка, все равно остается вкладка с отключенным языком на страницах админки и приходиться заполнять поле "Название товара" на всех языках. Иначе - ошибка. Может это поведение только у меня? Вот кусок кода со страниц шаблонов админки, где выводятся вкладки языков <div id="tab-general"> <div id="languages" class="htabs"> <?php foreach ($languages as $language) { ?> <a href="#language<?php echo $language['language_id']; ?>"><img src="view/image/flags/<?php echo $language['image']; ?>" title="<?php echo $language['name']; ?>" /> <?php echo $language['name']; ?></a> <?php } ?> </div> Информация о вкл/выкл языка хранится в $language['status']. Как видим, никакой проверки по 'status' нет и выводятся все языки. Добавим проверку и в этом блоке все ОК. Но в каждом шаблоне админки надо две проверки и шаблонов - море... <div id="tab-general"> <div id="languages" class="htabs"> <?php foreach ($languages as $language) { if($language['status'] !=0) { /* @@@ */ ?> <a href="#language<?php echo $language['language_id']; ?>"><img src="view/image/flags/<?php echo $language['image']; ?>" title="<?php echo $language['name']; ?>" /> <?php echo $language['name']; ?></a> <?php } } /* @@@ */ ?> </div> Я еще очень поверхностно знаком с системой. Есть еще класс ControllerLocalisationLanguage, но там нет нужного фильтра по 'status'. Вопрос: как и где стратегически правильно с точки зрения всей системы ставить фильтр на отключенный язык?
  5. У меня на локалке установлено без всяких ошибок bitrix drupal insta opencart prestashop LegoShop и только при установке сегодня OcStore выдало подобную ошибку. Так что, теперь будет не корректно работать без session.sql_mode = 'MYSQL40' ? MySQL Версия программы: 5.5.27
  6. Здравствуйте! во время установки на шаге "Окончание" вот такое сообщение: Notice: Error: Variable 'sql_mode' can't be set to the value of 'MYSQL40' Error No: 1231 SET @@session.sql_mode = 'MYSQL40' in C:\xampp\htdocs\sites\ocstore_15512.local\www\system\database\mysql.php on line 50 PS. Закомментировал в install.php строка 35 $db->query("SET @@session.sql_mode = 'MYSQL40'"); и установка завершилась. Неужели, до сих пор, используется MYSQL 4 ?. Или это принципиально для OcStore ?
  7. Всем привет! wwizard - пост 16 RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] заменить на RewriteRule ^([^?]*)$ index.php?_route_=$1 [L,QSA] был пропущен символ доллара после скобок. ^([^?]*)$ Но http://opencart.local/index.php?route=common/home пока есть :(
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.