Перейти к содержанию

Raino

Пользователи
  • Публикаций

    66
  • Зарегистрирован

  • Посещение

Репутация

15 Хороший

4 Подписчика

Информация о Raino

  • Звание
    Пользователь

Информация

  • Пол
    Мужчина

Посетители профиля

5 636 просмотров профиля
  1. Raino

    2 и 3

    Тон больно борзый у топикстартера "мне в лом читать топик, где все разжовано, я спрашивал не совета, бистра мне ответил" и т.д., это что за формат общения? Ну так и отвечать такому чОткому поцыку наверняка тоже "влом" порядочным гражданам. Вообще удивительно, что такой конкретный персонаж не семки щелкает в подворотне, а постит что-то на данном ресурсе. Но я по доброте душевной Вам отвечу, в доступной фанатам абибаса форме, сообразно Вашему образу мышления: 3 отличается в лучшую сторону самым главным параметром и вообще всем остальным. Там релиз на целую единицу больше, 3 по определению круче 2, а еще там модный магазин дополнений и сможете хвастаться крутым словом TWIG, использовать нужно строго самую новую версию (даже из альфа билда и не смотреть на красный ярлык "НЕ ИСПОЛЬЗОВАТЬ В ПРОДАКШЕНЕ", ставится то в 1 клик!), так как не просто так она появилась, это также верно, как и то что win 8 надо было использовать вместо win 7. В общем, смело берите тройку, никого не слушайте, не читайте многостраничные топики со сравнением "ибо влом" и дальше выгибайте пальцы, а потом завозите деньги чемоданами на исправление детских болезней самой новой и лучшей версии. P.S. для всех остальных читателей, которым интересен данный вопрос и они случайно наткнулись на эту ветку - если хотите получить информацию о существенных различиях между второй и третьей версиями движка - все же ознакомьтесь с соответствующей веткой на этом форуме, там много информации о различиях версий, анализ и сравнение изменений. Если кратко - для простого пользователя тройка в данный момент не даст никаких существенных преимуществ в плане производительности или удобства работы, т.к. в плане работы с базой практически ничего не изменилось, все существенные изменения связаны с витриной, да и их однозначно положительными я лично не назову.
  2. Where итоговое должно идти после всех joinов. у вас оно в середине запроса да еще и в кол-ве двух штук. Должно быть так (если в самих джоинах нет ошибок): SELECT DISTINCT ps.product_id, (SELECT AVG(rating) FROM oc_review r1 WHERE r1.product_id = ps.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating FROM oc_product_special ps LEFT JOIN oc_product p ON (ps.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id)  LEFT JOIN oc_product_to_category p2c ON (p.product_id = p2c.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p2c.category='421' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' 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())) GROUP BY ps.product_id ORDER BY p.sort_order ASC, LCASE(pd.name) ASC LIMIT 0,27
  3. Raino

    Journal 3 - новый "шедевр"

    Journal определенно приносит бабки, даже разработчикам. Т.к. работа с этим шедевром лично у меня идет по тарифу х2 (хотя иногда хочется х20 ставить, за ментальное изнасилование). С третьим видимо придется ставить х30. Плюс людям иногда хочется странного... Кто-то плетки, наручники и кожаные костюмчики покупает, а можно просто попытаться поработать с этим поделием. Не поставить и сидеть на том, что есть из коробки, а именно попытаться впихнуть в него некий желаемый клиентом функционал, которого в нем изначально нет - масса незабываемых впечатлений обеспечена. Эдакое садо-мазо для мозга. И дело даже не только в том, что это уже не опенкарт - у него и на морде бреда полно. Помню, как на ранних версиях второго джорнала браузер раком вставал при кол-ве товара всего-лишь за 50, т.к. чтобы при наведении на плашку товара, повысить ее z-index использовалась функция, пробегающая по всем dom элементам, выискивая наибольшее значение, увеличивало его на единичку и вешало плашке. Прекрасный шаблон, "надежный, как швейцарские часы".
  4. Самое простое и бесплатное- это именно проставлять порядок сортировки нужному товару. Каждому товару в каталоге его проставлять нет необходимости. Поле позволяет ставить отрицательные значения, и если у всех прочих товаров стоит по умолчанию порядок 0, то желаемому ставите -1 и он будет выше прочих. Когда это перестало быть актуальным - поставили ему снова 0 и всё.
  5. Raino

    Этично ли?

    Интересная позиция. А если заказчик попросил поправить некий баг, который мешал ему жить и работа заключается именно в поиске и устранения ошибки присутствующей в сборке изначально, но с которой столкнулся первый именно он, то значит нигде нельзя постить багрепорт о ней, чтобы она была исправлена в сборке? Он ведь заплатил, зачем ее исправлять глобально или постить на форумах решение - это ведь будет не честно по такой логике, т.к. кто-то ранее за эту работу уже заплатил, а теперь другие получат бесплатно, так получается?
  6. Если Вы недавно ничего не меняли в контрольной панели хостинга, не создавали там почтовый домен, не пытались его самостоятельно настраивать и т.д., то могу посоветовать гвоздь в голову вбить техподдержке, если она не видит проблему со своей стороны, 2 и 3 строка в приведенном логе четко описывает проблему. Почта делегирована на внешний сервер, на него указывают mx записи и т.д. и при этом на хостинге естественно находится одноименный домен. При отправке сообщения из магазина хост не отправляет его на тот внешний почтовый сервер, куда делегирована почта, не проверяет mx записи, а просто шлет его сам себе, т.к. имеет это же доменное имя и сам себе отвечает, что у него такого почтового ящика нет. Поэтому, когда указываете в настройках другие почтовые ящики - письма идут отлично, т.к. сервер перестает направлять их сам себе и по этой же причине если отправить на эти доменные ящики письма не их магазина, а из любого другого источника- они доходят. И если раньше этого не было, а сейчас есть, значит хостер (если Вы сами ничего не меняли в панели хостинга) "меняя настройки" доменялся эти самые настройки и почтовика в придачу. И еще ТП можете сообщить что функция php mail() не требует никаких особых данных для простой отправки, которые могут быть "указаны неверно", кроме исходящего мыла, которое проблематично указать неверно. Более того, они даже в приведенном тесте проверяют вообще не тот случай, который вызывает проблему. Если бы они через свой тест скрипт отправили мыло не на некий гмейловский адрес, а на тот, куда блин письма у Вас не доходят в логе, т.е. на info@datiko.ru - получили бы ту же самую ошибку. Если техподдержка все равно не в состоянии будет решить проблему то гуглить на предмет XXX disable local delivery, где XXX - используемая для отправки служба, в данном случае это судя по логу exim.
  7. Если увеличиваете время жизни через session_set_cookie_params(XXX, '/') то все сессии умирают сразу в момент создания, т.к. на 2.3 есть ошибка в установке сессионной куки. В этом файле есть код вида if ($key != 'PHPSESSID') { setcookie($key, $this->session_id, ini_get('session.cookie_lifetime'), ini_get('session.cookie_path'), ini_get('session.cookie_domain'), ini_get('session.cookie_secure'), ini_get('session.cookie_httponly')); } В нем время жизни куки устанавливается неверно. Правильно так if ($key != 'PHPSESSID') { setcookie($key, $this->session_id, time() + ini_get('session.cookie_lifetime'), ini_get('session.cookie_path'), ini_get('session.cookie_domain'), ini_get('session.cookie_secure'), ini_get('session.cookie_httponly')); } либо же напрямую указать желаемое время ХХХ в секундах, если по каким-то причинам нет возможности изменить параметр session.cookie_lifetime. if ($key != 'PHPSESSID') { setcookie($key, $this->session_id, time() + XXX, ini_get('session.cookie_path'), ini_get('session.cookie_domain'), ini_get('session.cookie_secure'), ini_get('session.cookie_httponly')); }
  8. Похоже, что это он и есть, т.к. в модулях с родного сайта главпункта совместимости с симплой как раз нет, да и в целом модуль их родной был кривой как вьетнамский летчик (мне пришлось в свое время для клиента знатно дорабатывать под симплу их модуль ПВЗ). Поэтому на текущий момент покупать сие имеет смысл, только если очень нужно под 1.5 ветку с дефолтным оформлением заказа (маловероятный вариант).
  9. Вам нужно создать свою функцию в модели product, например getMainCategory($product_id) которая будет выбирать из базы данные по ней и потом вызывать ее по необходимости в произвольных местах. public function getMainCategory($product_id) { $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "product_to_category ptc LEFT JOIN " . DB_PREFIX . "category_description cd ON (ptc.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (ptc.category_id = c2s.category_id) WHERE ptc.product_id = '" . (int)$product_id . "' AND ptc.main_category = '1' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "'"); return $query->row; } что-нибудь вроде такого, где вместо * можно оставить только те данные, которые Вам нужны по главной категории и работать с полученным массивом. Если нужны какие-то доп поля кроме названия, вроде картинки- нужно в запрос подцепить еще и выборку из таблицы category, но для GA это не нужно.
  10. Врожденный баг чпу в опенкарте. В версии 1.5. еще был, распространяется на категории и производителей, присутствует как при включенном штатном чпу формирователе, так и при включенном сео про.как пример демо сайт ocstore производители https://demo.ocstore.com/delivery/apple https://demo.ocstore.com/apple/delivery категории https://demo.ocstore.com/desktops/mac/terms https://demo.ocstore.com/terms/desktops/mac можно подставить любой существующий урл от статей и не только от статей. пофиксить можно доработав сеопро, штатный наверняка тоже можно, но кому он нужен) В индекс такие страницы попадают через счетчики метрики, аналитики и им подобные. при прямом посещении страницы кем-либо они скорее всего добавятся в индекс. По хорошему надо бы не внешними модулями решать, а в сборке пофиксить, т.к. штука неприятная.
  11. Raino

    Raino

    @MinMart , личное сообщение на форуме- отличный способ контактировать на начальном этапе)
  12. Самые простые варианты: Использовать параметр ?ver=xx для изменившегося css или js в шапке , только потом не забудьте удалить этот параметр, т.к. статические ресурсы с параметрами не кешируются вообще. Т.е. если у Вас время жизни css стоит неделя- через неделю уберите данный параметр, тогда гарантированно у всех пользователей будет актуальная версия. Либо просто переименуйте изменившийся css/js файл, например в stylesheet-v2.css.(и сам файл и ссылку на него в коде страницы).
  13. Декодируйте описание в контроллере. 'description' => html_entity_decode($category['description'], ENT_QUOTES, 'UTF-8'),
  14. Или не там добавили, или не там выводите. Вы записали минимальную цену для каждой дочерней категории текущей родительской (те которые выводятся над товарами, как правило), а в tpl обращаетесь к ней, как будто хотели вывести это значение для родительской. Соответственно, если хотите вывести мин. цену для каждой дочки, то в шаблоне нужно выводить например так: <?php foreach ($categories as $category) { ?> <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?><span><?php echo $category['min_price']; ?></span></a></li> <?php } ?> Кстати, запрос довольно тяжелый и при большом кол-ве товара-категорий будет создавать нагрузку, поэтому, если без этого никак- то хорошо бы это дело кешировать хотя бы. Если же нужно выводить мин цену только для текущей категории, то тогда в контроллере надо ее задавать иначе: $data['min_price'] = $this->model_catalog_product->getMinPriceFromCategory($category_id); и потом уже выводить в тпльке через $min_price Само собой в функции в модели не должно быть ошибок (ее код не смотрел).
  15. https://opencartforum.com/topic/10263-modul-dobavliaet-vozmozhnost-vybora-kolichestv/ посмотрите этот топик, там детально описан пример как сделать самому поля ввода кол-ва в категориях, в Вашем случае, просто слайдеры еще добавить нужно. Был и готовый модуль, на этом форуме, но увы название не вспомню а по поиску не найти.
×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.