Всего 125 675 комментариев

Наумов Алексей
30 июля 2021, 14:38
0
Что значит только для авторизованных?..
А корзина товаров? А если я товар «отложил», а если я перешел по реферальной ссылке на сайт, а если у нас правда что-то работает через ajax?
Правильнее бы конечно создавать сессии когда они действительно нужны. Но MODX работает на своей волне, а кажется именно его мы здесь и обсуждаем.

Более разумно просто отказаться от использования таких дополнений как AjaxForm, который для каждого посетителя создает сессию.

Давайте делать статичные странички на html!
Иван
30 июля 2021, 13:10
0
Дополнение. Прочитал по ссылке и ужаснулся:
При посещении какой-либо веб-страницы сайта, созданного на PHP, создается сессия.
Видимо автор этого текста изучает PHP только в совокупности с MODX (и AjaxForm).

В сессии хранятся данные, которые присущи только вашему визиту. Например, корзина товаров, информация о том, авторизовались ли вы для входа в личный кабинет и так далее.
А если я не авторизовался и ничего не положил в корзину, то и сессия мне не нужна. На нормальных сайтах именно так и происходит.
Иван
30 июля 2021, 12:44
0
Вообще хорошо бы понимать, что сессии должны создаваться только для авторизованных пользователей. Вряд ли все эти посетители, которые заходят на ваш сайт, регистрируются и авторизуются. Более разумно просто отказаться от использования таких дополнений как AjaxForm, который для каждого посетителя создает сессию. Тогда таблица вообще не будет пухнуть.
Роман
30 июля 2021, 12:27
0
Спасибо, работает.
Scorp Satex
30 июля 2021, 11:55
+1
1. Открыть админку сайта
2. Настройки (иконка шестеренки)
3. Открыть «Управление словарями»
4. Пространство имён: MiniShop2
5. Тема: cart
6. Язык: ru
7. Искать по ключу ms2_cart_add_success и ms2_cart_change_success
8. Пишешь в значение html, например:
<p class="text-center">
    Товаров в корзине: [[+count]].
</p> 
<p class="text-center">
    <a class="btn btn-warning" href="https://site.ru/cart">Перейти в корзину</a>
</p>
Наумов Алексей
30 июля 2021, 09:20
+2
Так у меня и только beta версия только выпущена)))
Но за здравую критику — спасибо
Сергей Шлоков
30 июля 2021, 07:33
+5
Выступлю в роли Николая Ланца… Идея отличная!!! Но к реализации очень много вопросов.
— для сессий создана новая таблица modx_smart_sessions, которая повторяет родную modx_sessions
Зачем? Теперь лишняя таблица в базе болтается. Для таких целей используют миграции. В MODX их нет, но можно расширить схему.

Писать в базу нефильтрованный USER_AGENT — это чтобы пощекотать себе нервы?

Ну и про наследование в ООП советовал бы почитать.

Режим «Николай Ланец» OFF. ))
Роман
29 июля 2021, 17:18
+1
Есть же возможность хранить сессии в файлах? Или это не правильно?
Viktor
29 июля 2021, 15:07
0
Подскажите пожалуйста — как после этого обновить мини-корзину без перезагрузки
Сергей Хлопов
29 июля 2021, 14:38
0
Когда подключил API modx вот так:
/* include MODX_API BEGIN */
define('MODX_API_MODE', true);
require_once('/var/www/domain/data/www/domain/index.php');
/* include MODX_API END */
$product = $modx->getObject('msProduct', 20387);
$modx->log(1, print_r($product->get('source'), 1),'HTML');
То заработало.
source = 3 и процесс запустился
Андрей
29 июля 2021, 12:46
0
Вполне возможно, давно им пользовался, забыл про этот компонент :) в любом случае надо проверить работоспособность на актуальных версиях.
Сергей Хлопов
29 июля 2021, 11:54
0
Похоже getObject как-то не корректно работает у меня.
Возвращает объект товара а в нём source нет.
Из за того что source нет, процесс и не срабатывает похоже.
Но когда через Console вызываю getObject, то там source есть у объекта который возвращается.
И наверно поэтому в Console и срабатывает процесс.
Ekaterina
29 июля 2021, 11:25
0
Вывод MIGX из MIGX другого ресурса из localizator. Оставлю здесь, уверена кому-то пригодиться, т.к. сама нигде не нашла ответа.

При использовании value в getImageList docid игнорируется, поэтому при выводе: {'getImageList' | snippet: [
'value' => $_modx->resource.tv-name,
'tpl' => 'tpl-name',
]}
выведется migx из локализатора текущего ресурса.

Решением стало использование pdoField:
{var $cat = 'pdoField' | snippet: [
'id' => '8', // id ресурса, из которого выводится tv
'field' => 'tv-name', // migx 1 уровня, который нужно вывести
]}

{'getImageList' | snippet: [
'value' => $cat | toJSON,
'tpl' => 'tpl-name', // чанк, в котором выводится migx 2 уровня (вложенный), его выводим, как обычный migx
]}
А msrevaluation в актуальном виде разве не справится?
Надо и цену на папку поставить и сохранить индивидуальные цены.
Сергей Хлопов
29 июля 2021, 08:39
0
Благодарю вас за комментарий. Нет к сожалению всё равно не работает, у меня нету ms2Gallery.
Пишет вот что:
Could not load class: ms2Gallery from ms2gallery.
Problem getting service ms2gallery, instance of class ms2Gallery, from path domain/core/components/ms2gallery/model/ms2gallery/
Я просто думаю gallery/upload он же из minishop2. Просто ещё странно что на другом сайте который тоже на modx такая конструкция работает из файла, а на данном сайте нет почему-то. Может из-за того что обновил modx
Андрей
29 июля 2021, 01:37
0
Скорее всего поможет — msPre
Сергей
28 июля 2021, 23:29
0
Не подключены службы, поэтому и не работает ms2Gallery.
Добавь под require_once('/var/www/domain/data/www/domain/index.php'); службы:
// Подключение нужных служб
$modx->getService('error','error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_ERROR);
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');
$modx->ms2Gallery = $modx->getService('ms2gallery', 'ms2Gallery', MODX_CORE_PATH . 'components/ms2gallery/model/ms2gallery/');
Algirdas
28 июля 2021, 22:06
0
Хм. указал высоту в пикселях, всё равно блокирует