Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

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

alexandr.skyrda
alexandr.skyrda
я делал так-то так:

if ($modx->event->name == 'msOnGetProductFields') {
        $returned_values = & $modx->event->returnedValues;
        $values = $modx->event->params['data'];
        $product = $modx->getObject('msProduct', $values['id']);
        
        $userGroupId = $modx->user->getUserGroups()[0];
        $sale_group = [1, 2, 3]; // ИД групп, для которых другая цена
            
            if ($modx->user->isAuthenticated() && in_array($userGroupId, $sale_group)) {
                $new_price = null;
                switch($modx->user->getUserGroupNames()[0]) {
                    case 'НАЗВАНИЕ ГРУППЫ ПОЛЬЗОВАТЕЛЕЙ':
                        $new_price = $product->get('price_basovye')[0]; // Цена записана в опцию товара
                        break;
                }
                $returned_values['price'] = $new_price;
            }
}
наверное не самое элегантное решение, но работает
max
max
Я пакет покупал в 2020. С тех пор так до него руки и не дошли. Сейчас вот взялся настраивать по инструкции — не хочет работать =( Написать в ТП modstore уже не позволяет =(
В лог modx пишется следующее:
[2024-04-22 10:18:14] (ERROR @ /var/www/site.ru/core/xpdo/xpdo.class.php: 644) Could not load class: PasValidator from payandsee.pasvalidator.
max
max
Не работает дополнение.
modx 2.8.3
Minishop 2.8.3
PAS 2.0.24-beta

Поднимал на modhost разные тестовые сайты с PAS 2.0.24 и разными modx (2.6.5, 2.7.0, 2.8.0) — ни на одном хосте PAS не работает.

Например, конструкция в шаблоне:
{set $access = 1|pasraccess:0}
{* далее можно использовать для проверки доступа переменную $access *}
{if $access}
Есть доступ
{else}
Нет доступа
{/if}
{$_modx->resource.content|pasraccess:('!pas.content'|snippet:['resource'=>$_modx->resource.id])}
дает всегда один результат — Есть доступ.
Ирина
Ирина
Добрый вечер. Помогите, пожалуйста, разобраться. Поставила модули SendIt и MiniShop2. Создала снипет, прописала пресет в файле, добавила js, вывела окно с формой — заказ оформляется — письмо приходит, но нет уведомления. Если делать как написано + к этому с вызовом AjaxFormItLogin — то работает все, но заказ оформляется дважды, выводятся дважды уведомления. Для чего нужно использовать и SendIt и AjaxFormItLogin? Я только начала разбираться с этими модулями, подскажите, пожалуйста, что я не так делаю?!
Наумов Алексей
Наумов Алексей
Самое лучшее решение в данной ситуации — это сделать отдельный файл для работы с этим API, например:
/assets/components/mycomponent/api.php
ну или просто попроще
/api.php
внутри этого файла инициализируем MODX в API режиме, читаем, например:
modx.pro/development/3163

А далее просто получаем данные, как нам нужно и выводим в json:
$query = $modx->newQuery('modResource');
$query->where([
'parent' => 2,
]);

$resources = $modx->getIterator('modResource', $query);
$data = [];
foreach($resources as $resource) {
$data[] = [
'pagetitle' => $resource->get('pagetitle');
];
}

header("Content-Type: application/json");
echo json_encode($data);
exit();
да, если нужны TV поля, то запрос будет сложнее. Но эта информация тоже есть на форуме.
Если уж совсем лень писать запрос — то можно внутри скрипта вызвать сниппет pdoresources:
$data = $modx->runSnippet('pdoResources', [ПАРАМЕТРЫ]);
snowdog178
snowdog178
Не отображаются добавленные поля в редактировании пользователя.
Добавил одно поле в «общую информацию», для другого создал вкладку, в ней ещё вкладку и в ней уже поле.
Созданные вкладки отображаются, а вот поля — нет.
Что я делаю не так?
В датабазе добавленные поля есть, я им даже напрямую задал значения у одного пользователя, всё равно не отображаются.
Наумов Алексей
Наумов Алексей
$_modx->resource['tv-name']
Или в чанках где-то внутри pdoResources
$_pls['tv-name']
но лучше избегать дефис в названиях TV. Дефис нельзя использовать в названиях переменных в php, из-за этого возникают трудности в Fenom. Замените на подчеркивание.