Raino

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

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

  • Посещение

Весь контент Raino

  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. ТС создал топик с определенным названием и задал конкретный вопрос: "где стоит лимит на ввод сео полей", на что получил ответ. ТС не заказывал краткий экскурс в историю и консультаций по сео, и если он считает что ему это нужно - это его личное дело. Причину по которой "магазин оставляет пять ключевых фраз" я обозначил, а то что толку от этого не будет для поисковиков - другой вопрос. Мне рассказывать о том как эти теги обрабатываются ПС не нужно, спасибо, я в курсе. Если автору всё-таки требуется мануал, то и вопрос нужно формулировать соответствующий. Доступное описание заполнения этих полей простым матерным языком с наглядными примерами можно изучить тут
  16. В базе данных магазина в таблице product_description у всех мета полей стоит ограничение в 255 символов -тип varchar(255). Если длины в 255 символов Вам не хватает, можете изменить тип полей например на text, по аналогии с полем tag.
  17. Metro UI CSS 3.0 и с чем его едят.

    Возможно ТС имеет ввиду дополнение https://opencartforum.com/files/file/705-metro-ui-mod-%D0%B4%D0%BB%D1%8F-ocstore-151x-ocstore-155x/
  18. Недавно обнаружил пару подозрительных файлов в папке downloads вида "1024.php.jpg.рандомный набор", внутри оказался не зловред, а игрушка 1024, причем рядом валялся файл с лицензией на нее, такого-же формата :). Однако прецедент пугающий. Детальнее проблема описана здесь http://forum.opencart.com/viewtopic.php?f=179&t=135903 и судя по всему носит массовый характер. И если на чистом opencart проблема решается запретом загрузки файлов в магазин, то в ocstore эти настройки в админке я не нашел http://www.webhostinghub.com/help/images/stories/opencart/opencart15-options/opencart15-options-allowed-uploadextensions.gif и пришлось потанцевать с бубном. В общем, будьте внимательны граждане.
  19. У клиента 1с -семерка, реализовывал через файловый обмен. Схема вкратце: по некоему условию (например после подтверждения оплаты заказа или по таймеру) в интернет-магазине отрабатывает скрипт, который экспортирует необходимых данные из базы (по сути таблицы отвечающие за заказ в csv формате, с заказами соответствующими заданным критериям), это добро затем отправляется на фтп организации. На сервере клиента, где стоит 1ска, работает служба, которая мониторит наличие файлов на фтпшке (по факту соседний каталог), и при их обнаружении скармливает их 1сной обработке. По такой же схеме данные отправляются назад, только там на хостинге не мониторится каталог на предмет появления файлов, а просто после обмена запускается скрипт, который обрабатывает полученные данные, вот на этом этапе идут уведомления клиентам о смене статусе заказов. Собственно все, профит. При желании можно и не файловый обмен сделать, если научить службу на сервере, где стоит 1с, ловить запросы (1ска восьмерка вроде как это сама умеет, без всяких левых костылей в виде самописных служб), чтобы было более "красиво" и быстро, но у меня такой задачи не стояло.
  20. filter Pro

    Беда-беда-огорчение:( Фильтр остро нужен для нового проекта, а с лицензией засада, хотя раньше в течении суток все вопросы решали. Возможно с автором в "физическом" плане что-то случилось? (очень надеюсь, что нет и он жив-здоров, но все же мало ли). Может быть кто-нибудь из OCTeam сможет с ним связаться?
  21. По поводу "не влияет". Цитата из google search console: Поэтому те замечания, которые дает PageSpeed именно касательно удобства мобильной версии (а не уберите js и т.д.) все же стоит исправить.
  22. Если "эта информация может быть недостоверной и сейчас проверяется", может стоит сначала проверить информацию, прежде чем делать подобные заявления? Потому что, возможно, скорее-всего, наверное, быть может, вероятно это некрасиво? P.S. Уважаемый freelancer, прошу почистить ящик на форуме (т.к нет возможности отправить Вам сообщение) или проверить e-mail, т.к нужно решить вопрос с лицензией.
  23. Могу задать встречный вопрос. С чтением или анализом информации у Вас какие-то непонятные проблемы в данном случае, т.к Вы на протяжении топика повторяете мне перефразированную информацию из моих сообщений, отдельными кусками и вырванную из контекста, представляя ее как опровержение этой же самой информации:). Печаль-беда какая-то. В общем, проверяйте где хотите и игнорируйте что хотите)
  24. Еще раз. Пейдж спид дает три оценки, скорость десктопа, скорость мобильной версии и "УДОБСТВО МОБИЛЬНОЙ ВЕРСИИ" и если пейдж спид показывает удобство пользователя 100 из 100, то и этот тест https://www.google.c...obile-friendly/ Вы пройдете. Это одни и те же правила- в пейджспиде "удобство мобильного пользователя" и ту ссыль что Вы даете. А если в пейдж спиде 0 из 100 за удобство ( не скорость блин, А УДОБСТВО -нижняя часть мобильной ветки пейджспида), то те же самые ошибки будут и по Вашему линку. С чем Вы не согласны?
  25. Лично я ничего не перепутал, как, думаю, и автор. Плюс Вы зачем-то сообщаете в ответе на мой пост, "что это влияет только в мобильной выдаче", хотя я Выше собственно и написал в сообщении, "что это блин влияет только в мобильной выдаче", которая по моим ресурсам к примеру от 30 до 50% составляет. Зайдите на https://developers.google.com/speed/pagespeed/insights/ и проверьте что-нибудь - там две вкладки после тестирования: для мобильной версии и для десктопной, для каждой свои рекомендации и своя оценка. Тот линк что Вы дали по сути "мобильная ветка" пейдж спида и рекомендации там полностью совпадают, это одно и тоже. Пейдж спид помимо совета дает еще и весьма полезный архив с оптимизированными картинками, скриптами и прочим для проверяемого сайта и некоторые картинки (бэкграунды для стилей к примеру, спрайты) стоит оттуда взять, так это как халявное уменьшение размера страницы, без потери качества (из картинок просто срезается инфа об авторе, и т.д.). В общем, если автор спрашивает конкретно про PageSpeed, для чего за него додумывать что он имел ввиду нечто другое?