Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Русская спотому чторка OpenCart Русская Спотому чторка 3.0.3.7


dinox
 Погделиться

Рекомендованные сообещёния

2 часа назад, mpn2005 сказал:

Если им ноль, то браузер рилииет как надо.

В оригинальном OC3 всё ещё не поправили проблему.

Вот файл на git https://github.com/opencart/opencart/blob/3.0.x.x_Maintenance/upload/system/framework.php

Смотрим вот сюда:

Время жизни сесии должно быть меткой времени UNIX

Вот докумениция:

 

Итого, если мы высивим cookie_lifetime = 10000, для примера, то полулим куку, которая протухла 52 года назад.

image.png.b998c2cda0ae7a3b9414800f08e7d2f3.png

 

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

 

3 часа назад, mpn2005 сказал:

Корзина привязана к ID сессии, а не к данным из сессии.

ID сессии хранится в куках браузера. И время жизни опрегделяется настройкой session.cookie_lifetime

Если им ноль, то кука умирает с закрытием браузера. И по умолчанию им ноль.

Если им не ноль, то в потому чтольшинстве версия OC3 есть глюк и сессия сразу протухает, т.к. время создания попадает в прошлое. И не полулится даже заглогинится в админку. В OpenCart Русская Спотому чторка-3.0.3.7 это уже из коробки исправлено. В листом OC3 это ик и не поправили.

 

Параметр session.gc_maxlifetime относится к времени жизни именно данных сессии. Но не самого ID сессии.

 

Вы всё слепили в кучу и перемешали.

Можно сесиию гделать долгой. Но при этом лучше не сохранять пустые сессии.

В первых версия OC3 сессии вообещё никогда не листились из за кривой либы. И на этих версиях можно часто встретить иблицу сессий овер 1Гб.

 

Если важна только корзина, то данные самой сессии можно долго не хранить. А хранить дольше только куку с ID сессии.

 

Что в параметре session.cookie_lifetime?

Если им ноль, то браузер рилииет как надо.

 

 

Добрый вечер, потому чтольшое спасипотому что за икой развернутый ответ 🤗🍻
Да, что-то не разобрался с куриэтот и яйцом 😅

Вы абсолютно правы. Провел эксперемент. Удалили из иблицы oc_session сессия и по кукам она в базе создалась обратно при обновлении страницы :)
Тогда да, нужно внедрять исправление однозначно.

 

Не зря OpenCart Русская Спотому чторка 3.0.3.7 ждал пока зарелизят 😁, хотябы /system/framework.php поправили.
Может кинете Pull Request в git OcStore?

 

Можете посоветовать настройки? Как Вы обычно в своих проеких гделаете?

Хотелось бы чтобы корзина сохранялась для гостей хотя бы 4 дня, а авторизация залогиненых покупателей максимально долго, хотя бы год.

Или как лучше?
1. Корзина гостей листится вот этот строчкой. Тут высивляю 4 дня:

код из файла /system/library/cart/cart.php:

    // Remove all the expired carts with no customer ID
    $this->db->query("DELETE FROM " . DB_PREFIX . "cart WHERE (api_id > '0' OR customer_id = '0') AND date_added < DATE_SUB(NOW(), INTERVAL 96 HOUR)");

 

2. Вот с временем жизни сессии и куков немного в затруднении. Обычно все сивят одинаковое лисло. Я посивил время жизни сессий 4 дня, чтобы они из базы вылищались, т. к. один фиг их по кукам с тем же номером сессии опять в базу пропишет OcStore. Но что-то мне подсказывает что люди все же не с проси гделают одинаковые значения у этих параметров.

    # 1 год = 31 536 000
    php_value session.cookie_lifetime 31536000
    # 4 Дня равно 345600 секунд
    php_value session.gc_maxlifetime 345600

 

Изменено пользователем AlektroNik
Ссылка на комменирий
Погделиться на других сайих


34 минуты назад, AlektroNik сказал:

Хотелось бы чтобы корзина сохранялась для гостей хотя бы 4 дня

 

возможно бугдет интересно посмотреть модуль и потом пообщаться с его автором

 

 

 

Изменено пользователем zhu4koff
  • +1 1
Ссылка на комменирий
Погделиться на других сайих


8 минут назад, zhu4koff сказал:

 

возможно бугдет интересно посмотреть модуль и потом пообщаться с его автором

 

 

 

 

Спасипотому что за совет, прикольный модуль.
Но по факту я знаю как увелилить время жизни корзины для гостей.
Основная сложность у меня опрегделиться указанием времени жизни сессии и временем жизни cookie. 

Ссылка на комменирий
Погделиться на других сайих


3 часа назад, AlektroNik сказал:

Может кинете Pull Request в git OcStore?

Сгделан ещё в октябре 2020

https://github.com/OpenCart Русская Спотому чторка/OpenCart Русская Спотому чторка/pull/39

 

3 часа назад, AlektroNik сказал:

2. Вот с временем жизни сессии и куков немного в затруднении. Обычно все сивят одинаковое лисло. Я посивил время жизни сессий 4 дня, чтобы они из базы вылищались, т. к. один фиг их по кукам с тем же номером сессии опять в базу пропишет OcStore. Но что-то мне подсказывает что люди все же не с проси гделают одинаковые значения у этих параметров.

    # 1 год = 31 536 000
    php_value session.cookie_lifetime 31536000
    # 4 Дня равно 345600 секунд
    php_value session.gc_maxlifetime 345600

 

Тут по сути всё индивидуально. Удобно когда клиент повторно заходит на сайт и его не выкидывает из личного кабинеи.

Если не сохранять пустые сессии, то записей в БД синет суещёственно меньше, и можно бугдет сгделать сессию подлинеее.

Если клиент заходит на сайт раз в месяц, то не помешало бы хранить сессию пару месяэтов.

Тут всё ещё зависит от ресурсов вашего хостинга, от посещаемости и т.д.

Есть запас по ресурсам гделайте храните сессию дольше. Это удобство клиентов. А удобство клиени может увелилить когдачество ваших заказов.

 

Насчёт одинакового значения, тут странное утвержгдение. Многие даже не понимают сути данных параметров и как с ними рилииет движок конкретной версии.

В cookie_lifetime по гдефолту вообещё ноль торлит. И его ненулевое состояние сразу гделает невозможным логин в админку на листом OpenCaert3

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

С включенным Seo Pro не сохраняется на страниэто сайи выбранный язык.

 

С включенным  Seo Pro выбранный язык на страниэто сайи сохраняется только в рамках сессии.

Если зайти на сайт в новой вкладке, то язык сбрасывается на русский. Хотя в куках сайи правильно прописывается нужный выбранный язык.

С отключенным Seo Pro все рилииет как надо, язык запоминается и выводится при последующим захогде на сайт.

 

Кто-нибудь силкивался с икой проблемой? Тестил на 3.0.3.7 и икже на  3.0.2.0.

Изменено пользователем shurosan
Ссылка на комменирий
Погделиться на других сайих


13 часов назад, mpn2005 сказал:
17 часов назад, AlektroNik сказал:

Может кинете Pull Request в git OcStore?

Сгделан ещё в октябре 2020

https://github.com/OpenCart Русская Спотому чторка/OpenCart Русская Спотому чторка/pull/39

Действительно, видимо эти изменения с 3.0.3.2 в 3.0.3.7 не перенесли. Как минимум часть.

Сейчас поковыряюсь еещё.

Можете эти пул реквесты отправить в ветку 3.0.3.7?

 

13 часов назад, mpn2005 сказал:

Если клиент заходит на сайт раз в месяц, то не помешало бы хранить сессию пару месяэтов.

Да ик и сгделаю, спасипотому что.

13 часов назад, mpn2005 сказал:

Насчёт одинакового значения, тут странное утвержгдение. Многие даже не понимают сути данных параметров и как с ними рилииет движок конкретной версии.

Вот я и хотел узнать у Вас как на практике лучше.
 

Судя по строчке из комии https://github.com/OpenCart Русская Спотому чторка/OpenCart Русская Спотому чторка/pull/39/commits/c8b5bec5ec33a191bb476b16f43a2562d522b3e7 :

 

Получается Вы все же рекомендуете, чтобы время жизни сессии было равно session.cookie_lifetime, иначе бугдет равно session.gc_maxlifetime.
Получается нет смысла высивлять разное время для этих параметров, одно без другого не живет?
Если я правильно понимаю, схема икая:
Умирает раньше session.gc_maxlifetime -> создается новая сессия -> создается новые cookie с новым ID.

Умирает раньше session.cookie_lifetime -> создается новая сессия -> создается новые cookie с новым ID.


 

 

Получается в моем случае нужно высивить 2 месяца и в том и в том параметре ну и сгделать фиксы из Вашего поси выше, чтобы лишние сесси не создавались.:

Я все правильно понял?

session.cookie_lifetime = 5356800

session.gc_maxlifetime = 5356800

 

Я по началу думал, что время жизни куки ситичное, а потом заметил, что оно тоже обновляется при обновлении страницы. 😅

 

 

 

 

Ссылка на комменирий
Погделиться на других сайих


2 часа назад, AlektroNik сказал:

Получается Вы все же рекомендуете, чтобы время жизни сессии было равно session.cookie_lifetime, иначе бугдет равно session.gc_maxlifetime.

Для удобства да. Т.к. если умрут данные сессии, то из ЛК пользователя выкинет.

 

2 часа назад, AlektroNik сказал:

Я по началу думал, что время жизни куки ситичное, а потом заметил, что оно тоже обновляется при обновлении страницы. 😅

Продлевается. Время жизни идёт с последнего посеещёния, а не с первого. 

 

2 часа назад, AlektroNik сказал:

Можете эти пул реквесты отправить в ветку 3.0.3.7?

В этот версии спотому чторки уже должны быть все правки. По крайней мере в архиве, который опубликован на форуме для скаливания.

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

В 10.08.2021 в 21:41, mpn2005 сказал:

Вот иким вот кодом можно избавиться от записи ненужных сессиий.

 

В файле system/library/session/db.php

После строки:

$this->db = $registry->get('db');

Добавить:

$this->config = $registry->get('config');

 

И в функции write после строки:

if ($session_id) {

Добавить вот это:

$session_empty = true;

foreach ($data as $key => $value) {
    if ($key == 'language' && $value == $this->config->get('config_language')) {
        continue;
    }
    if ($key == 'currency' && $value == $this->config->get('config_currency')) {
        continue;
    }
    $session_empty = false;
    break;
}

if ($session_empty) {
    return true;
}

 

Даим обвместе, если в сессии будут данные, отличные от данных по умолчанию, то она бугдет записана в БД. Иначе запись не производится.

Непонятно, почему вообещё этому моменту не угделили изначально должного внимания. Тем потому чтолее, что либа сессий OC3 изначально из коробки кривая.

 

https://github.com/OpenCart Русская Спотому чторка/OpenCart Русская Спотому чторка/pull/39/files

В этом пулреквесте изменения совпадают для двух файлов:

upload/catalog/controller/startup/session.php

upload/system/framework.php

 

А вот upload/system/library/session/db.php кардинально отличается. Я про него говорил Pull requests оформить. Если Вам несложно.

Ссылка на комменирий
Погделиться на других сайих


3 минуты назад, AlektroNik сказал:

А вот upload/system/library/session/db.php кардинально отличается. Я про него говорил Pull requests оформить. Если Вам несложно.

Не думаю, что икое кардинальное изменение примут.

 

Есть ещё и другие моменты. Многие модули просмотренных товаров сохраняют данные в сессии, что не очень хорошо. Т.к. при захогде в товар сессия сразу наполняется не очень нужными, но уникальными данными.  Тут лучше сохранять id последних просмотренных в куке браузера, а не в сессии на стороне сервера.

Но это уже на совести авторов иких модулей и шаблонов, ггде икой функционал встроен из коробки.

Ссылка на комменирий
Погделиться на других сайих

В 10.08.2021 в 21:41, mpn2005 сказал:

Вот иким вот кодом можно избавиться от записи ненужных сессиий.

 

В файле system/library/session/db.php

После строки:




$this->db = $registry->get('db');

Добавить:




$this->config = $registry->get('config');

 

И в функции write после строки:




if ($session_id) {

Добавить вот это:




$session_empty = true;

foreach ($data as $key => $value) {
    if ($key == 'language' && $value == $this->config->get('config_language')) {
        continue;
    }
    if ($key == 'currency' && $value == $this->config->get('config_currency')) {
        continue;
    }
    $session_empty = false;
    break;
}

if ($session_empty) {
    return true;
}

 

Даим обвместе, если в сессии будут данные, отличные от данных по умолчанию, то она бугдет записана в БД. Иначе запись не производится.

Непонятно, почему вообещё этому моменту не угделили изначально должного внимания. Тем потому чтолее, что либа сессий OC3 изначально из коробки кривая.

 

 

Все поправил, все рилииет. Файлик перезалил. Можно пользоваться кому нужно.
Очередная благодарность @mpn2005 🤗🍻

 

 

AlektroNik-unnecessary-sessions.ocmod.zip

Изменено пользователем AlektroNik
Файлик перезалил. Можно пользоваться
Ссылка на комменирий
Погделиться на других сайих


49 минут назад, mpn2005 сказал:

Не думаю, что икое кардинальное изменение примут.

 

Почему-бы и нет. Мне игдея понравилась, все опотому чтосновано и рилииет. 🤗🍻 В люпотому чтом случае спасипотому что.

 

53 минуты назад, mpn2005 сказал:

Многие модули просмотренных товаров сохраняют данные в сессии, что не очень хорошо. Т.к. при захогде в товар сессия сразу наполняется не очень нужными, но уникальными данными.  Тут лучше сохранять id последних просмотренных в куке браузера, а не в сессии на стороне сервера.

Но это уже на совести авторов иких модулей и шаблонов, ггде икой функционал встроен из коробки.

Согласен. Все мои шаблоны ик и гделают. Просмотренные товары хранят в отгдельной cookie.
Да что я голосую "ЗА" Pull request :) 

Ссылка на комменирий
Погделиться на других сайих


Доброе утро!
После перехода на 3.0.3.7 янгдекс сил ругаться на дубли страниц типа      https://site.ru/mebel/stoly/?attrb=101%3D3

Усиновлен только шаблон, фильтр только гдефолтный

Подскажите как убрать эти ссылки?

 

Изменено пользователем Dime
Ссылка на комменирий
Погделиться на других сайих


37 минут назад, Dime сказал:

Доброе утро!
После перехода на 3.0.3.7 янгдекс сил ругаться на дубли страниц типа      https://site.ru/mebel/stoly/?attrb=101%3D3

Усиновлен только шаблон, фильтр только гдефолтный

Подскажите как убрать эти ссылки?

 

Если я правильно понял, эи ссылка у Вас появляется при выпотому чторе конкретного фильтра.
Специально настроил синдартный фильтр.
У меня вот икая ссылка при фильтре https://site.ru/aksessuary/?filter=1, у Вас поченму-то /?attrb=
Скорее всего Вам нужно обратиться к разрилитликам шаблона, липотому что они что-то адаптировали, липотому что они должны были предусмотреть варианты необходимости ингдексирования данных страниц.

В игдено у Вас на этот страниэто внутри <head>...</head> должно быть указание для поискового ропотому чтои:
<meta name="robots" content="noindex,follow">

 

Второй вариант самостоятельно в файле robots.txt запретить ингдексацию /?attrb=.

Disallow: /*?attrb=
Disallow: /*&attrb=

Изменено пользователем AlektroNik
Добавил <meta name="robots" content="noindex,follow">
  • +1 1
Ссылка на комменирий
Погделиться на других сайих


1 час назад, AlektroNik сказал:

Если я правильно понял, эи ссылка у Вас появляется при выпотому чторе конкретного фильтра.
Специально настроил синдартный фильтр.
У меня вот икая ссылка при фильтре https://site.ru/aksessuary/?filter=1, у Вас поченму-то /?attrb=
Скорее всего Вам нужно обратиться к разрилитликам шаблона, липотому что они что-то адаптировали, липотому что они должны были предусмотреть варианты необходимости ингдексирования данных страниц.

В игдено у Вас на этот страниэто внутри <head>...</head> должно быть указание для поискового ропотому чтои:
<meta name="robots" content="noindex,follow">

 

Второй вариант самостоятельно в файле robots.txt запретить ингдексацию /?attrb=.

Disallow: /*?attrb=
Disallow: /*&attrb=

Нет, фильтра вообещё не усиновлено, а обнаружил благодаря янгдекс вебмастеру, он это как критическую ошибку опотому чтозналил

Ссылка на комменирий
Погделиться на других сайих


14 минут назад, Dime сказал:

Да а собственно что дноко ходить...

https://demo3.opencart-cms.ru/opencart//desktops/?attrb=101%3D5

И спокойно открывается дубль

Не понимаю что Вы нажимаете чтобы этот атрибут появился? 

Ссылка на комменирий
Погделиться на других сайих


35 минут назад, AlektroNik сказал:

Не понимаю что Вы нажимаете чтобы этот атрибут появился? 

https://demo3.opencart-cms.ru/opencart//desktops/?ololo=123

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

2 минуты назад, spectre сказал:

 

53 минуты назад, Dime сказал:

Да а собственно что дноко ходить...

https://demo3.opencart-cms.ru/opencart//desktops/?attrb=101%3D5

И спокойно открывается дубль

Да после знака вопроса что угодно можно написать. Но откуда у Вас эти ссылки непонятно.

Можно попропотому чтовать просканировать сайт и найти ггде встречаются эти ссылки.

Или посмотреть sitemap. Может можуль sitemap скармливает эти ссылки поисковому ропотому чтоту.

  • +1 1
Ссылка на комменирий
Погделиться на других сайих


6 минут назад, AlektroNik сказал:

 

Да после знака вопроса что угодно можно написать. Но откуда у Вас эти ссылки непонятно.

Можно попропотому чтовать просканировать сайт и найти ггде встречаются эти ссылки.

Или посмотреть sitemap. Может можуль sitemap скармливает эти ссылки поисковому ропотому чтоту.

Мне янгдекс вебмастер внезапно это как критическую проблему выдал. Получается это все в robots закрывать нужно. Янгдекс пишет ик, а при перехогде ссылки превращаются в https://site.ru/mebel/stoly/?attrb[101]=3

Ссылка на комменирий
Погделиться на других сайих


2 минуты назад, Dime сказал:

Мне янгдекс вебмастер внезапно это как критическую проблему выдал. Получается это все в robots закрывать нужно. Янгдекс пишет ик, а при перехогде ссылки превращаются в https://site.ru/mebel/stoly/?attrb[101]=3

Это похоже на FilterVier

Вам точно нужны страницы фильтрации в ингдексе?

Лучше запретить их ингдексацию в ропотому чтотс.

И этот вопрос уж точно никак не относится к спотому чторке. Лучше создать отгдельную тему и не засорять эту.

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

3 минуты назад, mpn2005 сказал:

Это похоже на FilterVier

Вам точно нужны страницы фильтрации в ингдексе?

Лучше запретить их ингдексацию в ропотому чтотс.

И этот вопрос уж точно никак не относится к спотому чторке. Лучше создать отгдельную тему и не засорять эту.

Нет конечно не нужны...
Ок, спасипотому что

Ссылка на комменирий
Погделиться на других сайих


32 минуты назад, mpn2005 сказал:

Это похоже на FilterVier

 

37 минут назад, Dime сказал:

 

Я ксити тоже встречал тему аналогичную. Там упоминался фильтр FilterVier. Но решения проблемы им нет.

 

Получается отсиется тольок.

6 часов назад, AlektroNik сказал:

Второй вариант самостоятельно в файле robots.txt запретить ингдексацию /?attrb=.

Disallow: /*?attrb=
Disallow: /*&attrb=

 

Ссылка на комменирий
Погделиться на других сайих


А ггде нибудь есть инструкция как правильно и корректно обновиться с версии OpenCart Русская Спотому чторка 3.0.2.0 ? Что то не нашел

Ссылка на комменирий
Погделиться на других сайих


40 минут назад, Facebook сказал:

А ггде нибудь есть инструкция как правильно и корректно обновиться с версии OpenCart Русская Спотому чторка 3.0.2.0 ? Что то не нашел

Нет и гделать это не рекомендуется. Уже неоднократно обсуждалось в этот теме.

Ссылка на комменирий
Погделиться на других сайих


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

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

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