Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

vico7

Новичок
  
  • Posts

    8
  • Joined

  • Last visited

Recent Profile Visitors

1,140 profile views

vico7's Achievements

Rookie

Rookie (2/14)

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

Recent Badges

0

Reputation

  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 пока есть :(
×
×
  • 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.