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

lavka

Користувачі
  
  • Публікації

    240
  • З нами

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

Усі публікації користувача lavka

  1. Подскажите, ваш модуль может получать данные от симплы или опенкарта о выбранном регионе (городе)? Если клиент пришел не из Москвы, то он щелкает на выбор постамата и ему по умолчанию отображается именно Москва, что смутит клиента (не все способны найти ссылку "выбор города", к сожалению)
  2. Понял. А зачем я это делаю? :) Просто это сообщение возникает произвольно, хоть и редко, например позавчера в пол-третьего ночи, когда ни нагрузки нет, ничего.
  3. Обнаружил неведомо откуда взявшуюся проблему. В коде файла filterpro.tpl всем тегам опций и атрибутов добавляется класс "collapsible" и видимо из-за этого мой сторонний шаблон магазина оборачивает содержимое в лишние теги div То есть вместо <div class="attribute_box option_box"> <div class="option_name hided"> <span class="b-gurufilters__filter-name">Диаметр, см</span> </div> <div class="collapsible" style="display: none;"> <table style="width:100%"> У меня становится <div class="attribute_box option_box"> <div class="option_name hided"> <span class="b-gurufilters__filter-name">Диаметр, см</span> </div> <div class="collapsible" style="display: none; [b]overflow: hidden; padding: 0px; width: 18px;[/b]"> [b]<div class="jspContainer" style="width: 18px; height: 51px;"><div class="jspPane" style="padding: 0px; top: 0px; width: 18px;">[/b]<table style="width:100%"> Плюс фильтр перестал работать в IE. Не могу вспомнить никаких существенных правок сайта, которые могли бы коснуться этой темы. МОжет, кто подскажет?
  4. В логе появилось следующее 2014-08-02 15:37:41 - PHP Warning: is_dir() expects parameter 1 to be a valid path, string given in /system/engine/action.php on line 16 2014-08-02 15:37:41 - PHP Warning: is_file() expects parameter 1 to be a valid path, string given in /system/engine/action.php on line 24 Поясните, пожалуйста, о чем речь?
  5. Я пожадничал платить за модуль с цветными статусами и сделал такую правку: В файлах admin\view\template\sale\order_list.tpl и admin\view\template\common\home.tpl после цикла <?php foreach ($orders as $order) { ?>В столбце вместо <?php echo $order['status']; ?>Вставить <?php if ($order['status'] == 'Ожидание') { echo '<font color="red">'.$order['status'].'</font>'; } elseif ($order['status'] == 'В обработке') { echo '<font color="blue">'.$order['status'].'</font>'; } elseif ($order['status'] == 'Сделка завершена') { echo '<font color="green">'.$order['status'].'</font>'; } else { echo $order['status']; } ?>Сельское решение, зато работает бесплатно.
  6. Сделал для себя правку, чтобы сгруппировать однотипные способы оплаты под заголовком - иначе покупатель путался. Выглядит, как в выборе доставки: жирный заголовок и под ним, например, пара способов этого типа. Вроде, оплата при получении наличными и оплата при получении картой объединены под заголовком оплата при получении. Делал для Simple. В файле catalog\view\theme\ВАШАТЕМА\template\checkout\simplecheckout_payment.tpl после <?php foreach ($payment_methods as $payment_method) { ?> вставить <?php if (!empty($payment_method['payhead'])) { ?> <tr> <td colspan="3" class="simplecheckout-methods-shipping-title"><b><?php echo $payment_method['payhead']; ?></b></td> </tr> <?php } ?> В файле catalog\model\payment\НУЖНАЯ-ОПЛАТА.php в массив после строки $method_data = array( добавить 'payhead' => $this->language->get('text_payhead'), Также нужно проверить, чтобы в начале файла подгружался языковой файл: public function getMethod($address, $total) { $this->language->load('payment/НУЖНАЯ-ОПЛАТА'); В файле catalog\language\russian\payment\НУЖНАЯ-ОПЛАТА.php добавить $_['text_payhead'] = 'Оплата при получении'; Правки делать только с первым отображаемым способом оплаты этого типа (при получении или, там, робокасса), чтобы заголовок не дублировался.
  7. 1 июля 2014 г., 22:03 отправлял вам на gmail А вы одобряете решение выше или есть лучше?
  8. Если речь об атрибутах, то в нужное место в product.tpl вставить типа <?php if ($attribute_groups) { ?> <?php foreach ($attribute_groups as $attribute_group) { ?> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <li><span><?php echo $attribute['name']; ?></span><?php echo $attribute['text']; ?></li> <?php } ?> <?php } ?> <?php } ?>
  9. Ништяк, работает! Благодарю вас, красота в урле здесь и правда не нужна.
  10. Если при поиске выбрать категорию, то после нажатия кнопки "поиск" просто перебрасывает в выбранную категорию, а не ищет в ней товары. В чем может быть проблема? Писал автору в почту, но ответа так и не дождался.
  11. Не, морковный сок в постель и снижение паводков в центральной полосе :) Будет. Я думаю, профессионалы плачут горючими слезами от этого куска кода, но у меня он прекрасно работает и выполняет то, что мне было нужно. Единственное - об ответе 404 в этом случае можете забыть, категория скажет поисковику 200 OK, но я не особо согласен, что это плохо. PS. У меня 1.5.5.1.1, про остальные версии утверждать не буду.
  12. Я обнаружил, что обработка нужной мне темы ведется в controller/common/seo_pro.php: if (count($rows) == sizeof($parts)) { $queries = array(); foreach ($rows as $row) { $queries[utf8_strtolower($row['keyword'])] = $row['query']; } reset($parts); foreach ($parts as $part) { $url = explode('=', $queries[$part], 2); if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } elseif (count($url) > 1) { $this->request->get[$url[0]] = $url[1]; } } } else { $this->request->get['route'] = 'error/not_found'; } Вместо этого я сделал следующий код: if (count($rows) == sizeof($parts)) { /* тут без изменения */ } else { $queries = array(); foreach ($rows as $row) { $queries[utf8_strtolower($row['keyword'])] = $row['query']; } reset($parts); foreach ($parts as $part) { $url = explode('=', $queries[$part], 2); if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } elseif (count($url) > 1) { $this->request->get[$url[0]] = $url[1]; } } if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/category'; } else { $this->request->get['route'] = 'error/not_found'; } } Короче, скопировал функцию из первого условия и кусочек кода далее после этого условия, заменив подстановку категорий, если есть код продукта и 404 страницы в остальных случаях. Все работает. Как и в большинстве случаев на этом форуме - бесплатную помощь можно ждать лишь от себя.
  13. Посетитель найдет свой товар в категории. Ведь по сути у товара просто изменился адрес, а имя модели и фотография остались, так что клиент узнает, что ему нужно. А если у меня и правда нет того товара - мне нечего терять, если он уйдет из категории или с 404 страницы. Сейчас страница 404 есть, но никто не стал искать потерянный товар. Поэтому и хочу приводить их в категорию.
  14. Но а если я не отследил изменение урла и не подсунул боту редирект, то теряю клиентов, которые не хотят искать, куда пропал товар. А почему категория упадет?
  15. Неправильно сделал. Так как это округление прописано в цикле, получается, что несколько товаров имеет дробную скидку 222,50 р, например и эти 50 копеек откидываются у каждого, снижая размер скидки на несколько рублей. Вместо 983 рублей скидки выходит, к примеру 980. Округление надо ставить в самом конце условия if ($coupon_info) { } строку $total -= $discount_total; заменить на $total -= floor($discount_total);
  16. Ладно. Кто готов сделать это за деньги? Пожалуйста, указывайте сумму и срок сразу.
  17. В основном то, что использую модуль Coupon Filter, который меняет ровно те же файлы, что и предложенный выше - боюсь конфликта. Плюс смутило отличие в коде типа: в исходном файле $this->language->load(checkout/coupon) в файле этого модуля $this->load->language(checkout/coupon) я подумал, что это семантика старой версии опенкарта и опасаюсь устанавливать :)
  18. Классная штука, но для 1.5.4 Она будет работать с 1.5.5.1?
  19. Хочу сделать систему скидочных карт с накоплением - сначала 5%, а после определенного оборота 10%. Существует ли модуль для автоматического отслеживания этого порога? И еще вопрос - как лучше реализовать скидочные карты вообще - генерация их номеров и прочее?
  20. Да какой там - вы ддоса не видели?) Минутная нагрузка это разве ддос?) Может быть, возможно что-то настроить в MySQL, чтобы он не ложился от такого?
  21. Сервер Xeon 1500 МГц и 1 ГБ памяти у хостера. В панели управления сервером периодически возникает следующий график: В этот момент магазин еле шевелится, в логах магазина ошибки MySQL типа Error No: 2013. В access.log апача следующая картина: 77.75.105.67 - - [18/Jun/2014:13:23:15 +0400] "GET / HTTP/1.0" 200 136442 "-" "-" 77.75.105.67 - - [18/Jun/2014:13:23:15 +0400] "GET /wp-login.php HTTP/1.0" 404 38569 "-" "-" 77.75.105.67 - - [18/Jun/2014:13:23:15 +0400] "GET /administrator/index.php HTTP/1.0" 404 38580 "-" "-" 77.75.105.67 - - [18/Jun/2014:13:23:16 +0400] "GET /favicon.png HTTP/1.0" 200 834 "-" "-" 77.75.105.67 - - [18/Jun/2014:13:23:16 +0400] "GET /favicon.ico HTTP/1.0" 200 1490 "-" "-" 77.75.105.67 - - [18/Jun/2014:13:23:17 +0400] "GET /contact-us HTTP/1.0" 200 42694 "-" "-" 77.75.105.67 - - [18/Jun/2014:13:23:17 +0400] "GET /my-account HTTP/1.0" 302 650 "-" "-" 77.75.105.67 - - [18/Jun/2014:13:23:18 +0400] "GET /wishlist HTTP/1.0" 200 37948 "-" "-" 77.75.105.67 - - [18/Jun/2014:13:23:18 +0400] "GET /compare-products HTTP/1.0" 200 39067 "-" "-" 77.75.105.67 - - [18/Jun/2014:13:23:18 +0400] "GET /cart HTTP/1.0" 200 45734 "-" "-" И так далее, перебор подряд всех-всех страниц магазина (плюс, прощупывание wp-admin и других админских путей). Занимает это около одной-двух минут, после чего активность исчезает. Как вы видите на картинке выше, в этот момент заканчивает оператива, подскакивает своп и потом перегружаются все службы (апач, мускул и прочее). Айпишники каждый раз разные, так что просто так не заблокировать. Как это победить, может кто знает?

×
×
  • Створити...

Important Information

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