Василий Наумкин

Василий Наумкин

Был в сети 10 июня 2026, 17:44
Заказы не принимаю
Нужно просто поставить почтовый сервер:
sudo apt-get install sendmail

Обслуживание входящей почты советую
отдать Яндексу.

Если будут проблемы с отправкой почты на тот же домен, по которому отзывается сервер (sendmail будет думать, что он должен доставить почту сам себе и не отправит её на Яндекс) — вот тут лечение.
Да, есть глюк с удалением связей. Лечим заменой в плагине на строке 43:
$q = $modx->newQuery('ModKits',array('rid:IN' => $ids));
$q->orCondition(array('gid:IN' => $ids));
$modx->removeCollection('ModKits', $q);
на
$modx->removeCollection('ModKits', array('rid:IN' => $ids));
$modx->removeCollection('ModKits', array('gid:IN' => $ids));

С msGetResource я что-то накрутил, видимо. Сейчас нет времени разбираться, но твоё решение вполне себе нормальное.

P.S.
1. Ты про блог у меня на сайте? Если да, то только через премодерацию в разделе «Вопросы». Пиши сюда заметку — если понравится, перенесу в другой блог.
Ну а вообще, есть как минимум 2 сообщества про MODX на LiveStreet, там свободная регистрация и создание блогов.

2. Комплекты будут, но поумнее сделанные. Система скидок — отдельная тема, она будет значительно позже.

3. Ты имеешь в виду, построить дерево товаров? Так Wayfinder и сейчас это может. В MS2 будут более продвинутые товары и там (скорее всего) стандартные сниппеты смогут сразу выводить цену и другие характеристики, сами того не подозревая.
Все просто: в миникарт данные попадают из сессии, которая очищается при отправке заказа.

А на странице, как правило, snippet miniCart расположен раньше сниппета miniShop, и при его загрузке сессия еще не очищена.

Я советую убирать миникорзину с этой страницы, она там ни к чему.
Ну, с именем там будет так же, ибо если нет имени, но оно требуется для работы юзера в MODX — его приходится придумывать. Правда, Hybrid будет использовать идентификатор юзера на сервисе, вместо хэша, как Loginza.

Правильный способ — это дать возможность юзеру поменять имя, почту и другие поля профиля,
как у меня. Это умеет и Loginza и Hybrid.

Однако — у Hybrid юзер самостоятелен. То есть, к учетной записи юзера сайта привязываются записи вконтакте, фейсбука и тд. И юзер, входя через любую из привязанных учеток, попадет в учетку своего юзера, с указанным там нужным именем и email. Можно даже сделать обычную авторизацию, а потом к ней добавить Hybrid, для ускорения входа.

А у Loginza связей нет. Там один удалённый сервис — одна учетка на сайте. Она быстрее устанавливается на сайт, но в итоге я не советую ей пользоваться — обнойлвений сниппета точно не будет.

Поэтому, со всех сторон Гибридом пользоваться лучше, и от loginza.ru не будешь зависеть.

P.S. При ответе на комментарий нужно нажимать под ним на ссылку «Ответить».
Посмотрел в код страницы — jQuery подключен, но в футере.

А у меня, почему то, MarkItUp вызывается в шапке. В следующей версии исправлю, а пока можешь сам изменить в tickets.class.php на строке 139
$this->modx->regClientStartupScript($this->config['jsUrl'].'web/editor/jquery.markitup.js');
на
$this->modx->regClientScript($this->config['jsUrl'].'web/editor/jquery.markitup.js');

Для комментариев — аналогично, на строке 200. Ну или просто подключи jQuery в шапке сайта.
Если сломалось сразу и везде — проблема системная. Php не обновлял, настройки не менял?

Алгоритм починки:
1. Смотрим ошибки загрузки в /var/log/nginx/имясайта-error.log
2. Проверяем наличие директорий /var/www/имясайта/tmp/ — именно туда грузятся файлы, сначала.
3. Проверяем конфиги сайтов в /etc/nginx/sites-enabled/имясайта.pool, особенно смотрим на строчки про upload и tmp.

Не помешает также запустить скрипт, восстанавливающий верные права на файлы и директории сайта, 0777 — это не хорошо.
#!/bin/bash

USER="имяюзерасайта"
GROUP="имягруппысайта"

chown -R $USER:$GROUP "/var/www/test/www";
find "/var/www/test/www" -type d -exec chmod 0755 '{}' \;
find "/var/www/test/www" -type f -exec chmod 0644 '{}' \;

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