Владимир

Владимир

С нами с 25 сентября 2016; Место в рейтинге пользователей: #500

Существующий сниппет не найден. Как такое может быть?

Всем привет!
Уже во второй раз сталкиваюсь со странной хренькой. Сниппет существует года 3 и никто его не трогал.
Однажды начинают сыпаться в лог такие сообщения:
/core/model/modx/modparser.class.php : 541) Could not find snippet with name form_send.
Чуть подробнее здесь:
https://disk.yandex.ru/i/Ja6dp0pb31M8iw
Переименование сниппета и замена его имени на новое в его вызовах решает проблему.
Прежнее имя сниппета использовать после этого нельзя, оно проклято и такой сниппет не будет находиться модексом.
Но, как вы понимаете, это не решение корня проблемы.
У кого-нибудь было такое? Помогите найти причину таких странностей.
MODX 2.8.7
Владимир
01 сентября 2024, 07:46
modx.pro
94
0

Странные приколы с дублированием плагинов при переустановке компонентов

Заметил, при переустановке компонентов появляются дубликаты плагинов, относящихся к ним:
https://disk.yandex.ru/i/GRdSfs8_dm-efw
Это странно. Заметил это, когда недавно переустановил msProductRemains и остатки товаров стали списываться дважды так, что остаток уходил в минус. Ну и вот еще, как на скрине, с msImportExport то же самое случилось. Т.е. это не от конкретных компонентов зависит, а от MODX в целом. Похоже на баг…
Сниппеты и чанки при этом не дублируются.
Версия MODX 2.8.7
Владимир
04 июля 2024, 15:44
modx.pro
110
0

cityFields заваливает лог ошибками

Журнал ошибок постоянно забивается такими сообщениями:
[2024-06-24 03:06:33] (ERROR @ .../core/xpdo/xpdo.class.php: 645) Could not load class: cfField from mysql.cffield.
[2024-06-24 03:06:33] (ERROR @ .../core/xpdo/xpdo.class.php: 763) cfField::load() is not a valid static method.
При этом компонент cityFields вроде как работает нормально в местах вызова его сниппетов. Куда копать? Может какие-то настройки сбились?
Владимир
24 июня 2024, 03:20
modx.pro
241
0

Как автоматизировать создание скидок в msDiscount?

Здравствуйте!
Подскажите, пожалуйста, как реализовать скидку на день рождения зарегистрированного пользователя?
У меня есть компоненты msDiscount и msPromoCode2.
Можно было бы через msDiscount реализовать. Например, проверяя сегодня ли день рождения пользователя и создавая персональную скидку. Но для этого надо понимать как автоматизировать данный процесс. Настолько подробную документацию по компоненту я не нашел.
Может кто-то уже создавал плагин по манипуляции скидками и может подсказать как это сделать?
Владимир
24 апреля 2024, 15:54
modx.pro
302
0

Как получить изображение товара MS2 через action.php?

Здравствуйте!
Делаю личный кабинет на Office, но вместо стандартного сниппета истории заказов делаю аналогичные кастомные fetch-запросы к /assets/components/office/action.php для получения данных заказов.
Можете подсказать как получить URL изображения товара аналогичным образом?
Владимир
15 апреля 2024, 19:38
modx.pro
270
0

RBS payment ссылка на оплату

Здравствуйте!
Подскажите, пожалуйста, как настроить модуль интернет-эквайеринга RBS 1.4.3 от Альфабанка, чтобы он сохранял ссылку на оплату в $payment_link, чтобы ее можно было вывести в шаблоне письма пользователю? Изначально эта переменная пуста.
В настройках модуля включен коллбек. При включенном дебаге в журнал ошибок приходит ссылка на оплату в том числе.
Владимир
18 января 2024, 06:12
modx.pro
213
0

msDiscount применяет скидку от определенной группы вообще всем

Написал плагин на основе плагина msDiscount, который должен менять цену price_msk в зависимости от группы пользователей, для которой назначена скидка. Но в результате он применяет скидку вообще всем пользователям и анонимным. Как настроить, чтобы скидка определенной группы применялась только к ее пользователям? msDiscount же по идее должен сам определять это…

<?php
$msDiscount = $modx->getService('msDiscount');
switch($modx->event->name) { 
	case 'msOnGetProductFields':
		if ($modx->context->key == 'mgr') {return;}
		$returned_values = &$modx->event->returnedValues;
		$values = $modx->event->params['data'];
		$price_msk = $values['price_msk'];

		if (!isset($returned_values['price_msk'])) {
			$returned_values['price_msk'] = $price_msk;
		}
		$new_price_msk = $msDiscount->getNewPrice($product->id, $price_msk, $modx->user->id);
		if ($new_price_msk !== false) {
			$returned_values['price_msk'] = $new_price_msk;
		}
		break;
}
Владимир
28 декабря 2023, 10:00
modx.pro
334
0

Непредсказуемая логика в операции модификатора eq

Здравствуйте!
Почему, когда я залогинен, то сниппет redirect все равно выполняется? Как исправить эту странную логику?

[[!+modx.user.id:isloggedin:eq=`1`:then=`
	. . .			
`:else=`
	[[!redirect]]
`]]

redirect:
header('HTTP/1.1 301 Moved Permanently');
header('Location: /');
Владимир
23 декабря 2023, 14:08
modx.pro
369
0

Остаточные ошибки от компонентов-планировщиков в журнале

Добрый день!
Экспериментировал с установкой различных компонентов планировщиков задач, затем удалял их как полагается, так что никаких следов в системе не оставалось.
Но позже заметил, что в журнале ошибок каждый день в одно и то же время начинает дублироваться каждую минуту в течение 10 мин. следующий блок строк:
Владимир
01 декабря 2023, 15:51
modx.pro
403
0

Перестал работать генератор тамбнейлов в miniShop2

Здравствуйте!
Не работает генератор тамбнейлов в miniShop2 4.3.0, MODX 2.8.6.
Если нажать пункт контекстного меню «Открыть в новом окне», то откроется полноценная картинка.
Если нажать «Обновить превьюшки» — будет бесконечноне ожидание без результата.
Переустановка miniShop2 не помогла, и удаление содержимого папки cache тоже.
Как решить данную проблему?

Владимир
16 ноября 2023, 21:10
modx.pro
376
0