Raino

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

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

  • Посещение

Репутация

4 Обычный

4 Подписчика

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

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

Информация

  • Пол
    Мужчина

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

4 389 просмотров профиля
  • Delic

  • kruk

  • Styud

  • sesame

  • twice

  • JHush

  1. Если увеличиваете время жизни через 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')); }
  2. Похоже, что это он и есть, т.к. в модулях с родного сайта главпункта совместимости с симплой как раз нет, да и в целом модуль их родной был кривой как вьетнамский летчик (мне пришлось в свое время для клиента знатно дорабатывать под симплу их модуль ПВЗ). Поэтому на текущий момент покупать сие имеет смысл, только если очень нужно под 1.5 ветку с дефолтным оформлением заказа (маловероятный вариант).
  3. Вам нужно создать свою функцию в модели 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 это не нужно.
  4. Врожденный баг чпу в опенкарте. В версии 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 можно подставить любой существующий урл от статей и не только от статей. пофиксить можно доработав сеопро, штатный наверняка тоже можно, но кому он нужен) В индекс такие страницы попадают через счетчики метрики, аналитики и им подобные. при прямом посещении страницы кем-либо они скорее всего добавятся в индекс. По хорошему надо бы не внешними модулями решать, а в сборке пофиксить, т.к. штука неприятная.
  5. Raino

    @MinMart , личное сообщение на форуме- отличный способ контактировать на начальном этапе)
  6. Самые простые варианты: Использовать параметр ?ver=xx для изменившегося css или js в шапке , только потом не забудьте удалить этот параметр, т.к. статические ресурсы с параметрами не кешируются вообще. Т.е. если у Вас время жизни css стоит неделя- через неделю уберите данный параметр, тогда гарантированно у всех пользователей будет актуальная версия. Либо просто переименуйте изменившийся css/js файл, например в stylesheet-v2.css.(и сам файл и ссылку на него в коде страницы).
  7. Декодируйте описание в контроллере. 'description' => html_entity_decode($category['description'], ENT_QUOTES, 'UTF-8'),
  8. Или не там добавили, или не там выводите. Вы записали минимальную цену для каждой дочерней категории текущей родительской (те которые выводятся над товарами, как правило), а в 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 Само собой в функции в модели не должно быть ошибок (ее код не смотрел).
  9. https://opencartforum.com/topic/10263-modul-dobavliaet-vozmozhnost-vybora-kolichestv/ посмотрите этот топик, там детально описан пример как сделать самому поля ввода кол-ва в категориях, в Вашем случае, просто слайдеры еще добавить нужно. Был и готовый модуль, на этом форуме, но увы название не вспомню а по поиску не найти.
  10. Странное замечание. А мне вот не нужно. Если у меня мультимагазины то там и так для каждого была своя настройка размеров изображения для магазина в целом. Повторюсь, настройка размеров конкретного шаблона - сомнительной полезности функционал и если бы он шел бонусом, не ухудшая удобство, то и проблем бы не было. Как часто меняется шаблон на магазине работающем? Нечасто, примерно никогда, только обновляется изредка. Если пойти дальше-то с чего тогда настройки фавика и лого оставили как было, может мне для разных тем разные лого и фавик потребуются? Непонятно. Задумка может и хорошая, но реализация как-то подкачала в плане удобства. В чём сложность разместить этот блок непосредственно на вкладке изображений с выборами настроек для темы для данного магазина? Или хотя бы линк там сделать на соответствующий раздел? Я без претензий к разработчикам сборки, как было в 2.3 так и сделали, но почему этот момент столь непродуман мне непонятно. Повторюсь, продукт делается для людей. Людям как мы видим- неудобно, вот и всё. Я думаю Вы согласитесь, что ни разу не очевидное расположение теперь этих настроек. И если влепить в сборку простой линк на новое место/текстовое описание как найти/скрин с пометками на вкладке "изображения" настроек магазина (если уже не охота заморачиваться с переносом блока), то вопросов у людей не будет, все всё найдут.
  11. К сожалению разработчики решили, что жизненно необходимо взять и выдрать привычное и логичное расположение данного функционала и поместили его в жжж... , пардон, в раздел админки "дополнения" - фильтр "шаблоны", где Вы и можете их найти сейчас. Теперь изображения индивидуально настраиваются для каждой темы (незаменимая вещь, ведь на каждом магазине как правило стоит шаблонов по десять, которые регулярно переключаются). P.S. темы с этим вопросом "где картинки изображений?!" плодятся практически ежедневно. На мой взгляд это говорит о том, что решение было неудачным, пользователи его не понимают. Да в теории, это замечательно и удобно, независимые настройки изображений для каждой темы! Просто мечта, если ты каждый день сидишь и переключаешь шаблоны в магазине, а вот если не переключаешь (а как правило шаблон ставится настраивается и забывается)- бесполезная, неудобно расположенная вещь.
  12. http://docs.myopencart.com/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0
  13. Также недавно столкнулся у клиента с данной проблемой на oc 1.5.5.1.2 Проблема заключается в методе построения ключа товара при добавлении его в корзину в файле system\library\cart.php функция add строка 258 ....$key = (int)$product_id . ':' . base64_encode(serialize($option));... этот самый base64_encode на выходе дает строку, которая согласно спецификации может содержать символы +/=. А т.к потом этот ключ используется в гет запросах для удаления товара, то эти символы там недопустимы отсюда и "неудаление", по сути идет попытка удалить товар с несуществующим ключом. воспроизвести в 1.5 можно следующим образом - добавьте к товару опцию текстового ввода и вручную в базе присвойте ей номер 12960, забейте в поле текст "напол" к примеру и добавьте в корзину- данное сочетание опции и значения опции приведет к формированию ключа, содержащего + и товар не удалится из корзины стандартной кнопкой. encodeURIComponent для исправления как предлагалось выше не совсем корректно. Как вариант можно "доработать" функции для генерации ключа: public function base64_url_encode($input) { return strtr(base64_encode($input), '+/=', '-_,'); } public function base64_url_decode($input) { return base64_decode(strtr($input, '-_,', '+/=')); } . их необходимо прописать в библиотеку корзины и заменить стандартный вызов base64_decode / base64_encode на них и товар будет удалятся с любым набором опций. В теории может к коллизиям привести, но вероятность куда меньше, чем генерация "кривого ключа". P.S. прошу прощения за некропост, но может пригодится кому-нибудь. Да и бага по факту устойчивая и гарантированно воспроизводится, можно и пофиксить в сборке.
  14. Мультидоставка FREE

    Попробуйте увеличить на хостинге в настройках php параметр max_input_vars, должно помочь.
  15. ТС создал топик с определенным названием и задал конкретный вопрос: "где стоит лимит на ввод сео полей", на что получил ответ. ТС не заказывал краткий экскурс в историю и консультаций по сео, и если он считает что ему это нужно - это его личное дело. Причину по которой "магазин оставляет пять ключевых фраз" я обозначил, а то что толку от этого не будет для поисковиков - другой вопрос. Мне рассказывать о том как эти теги обрабатываются ПС не нужно, спасибо, я в курсе. Если автору всё-таки требуется мануал, то и вопрос нужно формулировать соответствующий. Доступное описание заполнения этих полей простым матерным языком с наглядными примерами можно изучить тут