Вопросы

При использовании одного и того же сниппента на одной странице выдает белый экран как бать?

Есть сниппет, его нужно запускать несколько раз, но как только я использую его 2 раза он выдает просто белый экран, использую 1 все нормально, что такое?
<?php
$mob = (int)$modx->getOption('mob', $scriptProperties, false);
$des = (int)$modx->getOption('des', $scriptProperties, false);

function isMobileDevice() {
    return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);
}
if(isMobileDevice()){
    return $mob;
}
else {
    return $des;
}
Slava
19 апреля 2020, 07:25
modx.pro
703
0

Вывод контента по [[+id]]

Здравствуйте!

Задача вывести контент по id, так чтоб он определялся автоматически.
Знаю есть способ [[#12.content]] но он выводит конкретный ресурс, а как сделать подобное только с авто-определением id?
Александр
18 апреля 2020, 18:31
modx.pro
1 394
0

Фотография пользователя в панели администратора

Всем добра )
При выборе аватарки пользователя и сохранении, после обновления страницы показывает ошибку изображения

Что я не так делаю, может есть определенные условия для изображения
Serhii
18 апреля 2020, 12:48
modx.pro
710
0

Подскажите, что за ошибка.

Сначала 5 строк предистории.
Создаю пользователя на сайте и заполняю его профиль вот так
$user =$modx->newObject('modUser');
    $user->set('username',$login);
    $user->set('password',$password);
    $profile=$modx->newObject('modUserProfile');
    $profile->set('fullname', $name);
    $profile->set('email', $login);
    $user->addOne($profile);
    //$profile->save();
    $user->save();
Получал в логе ошибку (своими словами) — дублирование internalKey = 0; Понял что причина в том, что я вызывл метод save отдельно для профиля, отдельно для user и я закоментил сохранение профиля, уверен именно оно давало ошибку. И да, она пропала. НО появилась другая, которую я понять уж совсем не могу
Александр Мельник
17 апреля 2020, 17:22
modx.pro
868
0

reCaptchaV3 и настройка "жескости"

На многих формах, разных сайтов, где установлена reCaptchaV3 люди жалуются, что форма не отправляется с пометкой — вы не прошли каптчу.
И сам тоже периодически это наблюдаю — идеально заполненная форма не отправляется, причем тут 50 на 50, как повезет.
Почему то думал, что в системных настройках reCaptchaV3 были настройки, где можно числом задать степень «жескости».
Но открыл системные настройки компонента и там совершенно пусто, приснилось мне что-ли.
Есть способы «умерить пыл» reCaptchaV3?
Александр Мельник
17 апреля 2020, 13:25
modx.pro
584
0

Не получается отфильтровать с через pdoResources

Здравствуйте. Банальная задача которую делал казалось бы сто раз. Вывести ресурсы только с шаблоном 4.
Николай
17 апреля 2020, 13:06
modx.pro
1 263
0

Проверка на отсутствие картинки в MigX

Знаю два вида проверки:
1)
[[getImageList:default=`https://dummyimage.com/264x190/faa61a/fff.jpg`?
.....
]]
2) Условие в самом чанке в виде if else

Первое срабатывает даже если строки нет вообще, второе если строка есть, но в ней нет пути до картинки.
Просто интересно, а есть ли способ проверки, когда путь до картинки есть, а самой картинки нет? То есть проверка на isnot=`` пройдет успешно. ModX в таком случае выводит свою стандартную заглушку. Есть ли возможность вывести свою? А свою «динамическую» (как в п.1)? Если есть, то в какую сторону копать?
Algirdas
17 апреля 2020, 12:55
modx.pro
667
0

Как запустить сниппет по cron? РЕШЕНО

В ispmanager запускаю php скрипт каждый час.

Команда:
php -f /var/www/u1003749/data/www/site.ru/instacron.php
Код в скрипте:
<?php
$_SESSION['mgrRole'] = 1; //чтобы корректно работал MODX API
$path = '/var/www/u1003749/data/www/site.ru/';
define('MODX_API_MODE', true);
define('MODX_BASE_PATH', '/var/www/u1003749/data/www/site.ru/');
define('MODX_SITE_URL', 'https://site.ru/');
define('MODX_BASE_URL', 'https://site.ru/');
include_once($path . 'index.php');
global $modx;
if (empty ($modx->config)) {
    $modx->getSettings();
}
$modx->runSnippet('outputinstagram*');
?>
Приходит такое уведомление на почту о выполнении скрипта:
PHP Parse error:  syntax error, unexpected '[' in /var/www/u1003749/data/www/ustimi.ru/core/components/clientconfig/model/clientconfig/clientconfig.class.php on line 90
В чем может быть проблема?
Как лучше реализовать скрипт по cron.
Денис
16 апреля 2020, 19:22
modx.pro
2 439
0

Как взаимодействовать из плагина со страницей?

Есть плагин, на событие от minishop2 — msOnGetOrderCost
Как правильно из него взаимодействовать со страницей?
Все что нахожу в документации по плагинам, это —
$modx->event->output('Вас ожидает подарок на следующей странице');
однако во всем примерах такой код вызывается как реакция на негативное событие. Ну тоесть не дать добавить товар или что-то еще. То есть всегда когда действие нужно остановить и для этих случае это срабатывает — я вижу красное уведомление jGrowl от минишоп и все ок.

Но мне нужно уведомить пользователя что сумма его заказа позволяет получить подарок.
case 'msOnGetOrderCost':
          
             if($cost>=$giftSum){
                 $modx->event->output('Вас ожидает подарок на следующей странице');
             }
        break;
и про срабатывании я вижу уведомление на красном фоне и остановку всей остальной логики — то есть все цены после этого в корзине становятся равны нулю. (имеется ввиду те, которые должны были обновится)
Меня бы устроила возможность взаимодействовать со страницей на JS, например выполнить некий скрипт, но опять же через
$modx->event->output('Вас ожидает подарок на следующей странице');
нельзя передать код, только чистый текст,
Александр Мельник
16 апреля 2020, 13:12
modx.pro
1 122
0

Баг office и html/css

Обнаружил не большой баг в компоненте office.
Если на странице есть стиль background-image: url(images/bg.jpg);
То проверка csrf не проходит с первого раза.
Помогло вылечить, это добавить в {ignore} ......{.ignore}
Сергей
16 апреля 2020, 13:05
modx.pro
794
+1