Вопросы

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

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

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

Баг office и html/css

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

Почта для домена

Добрый день!
Есть выделенный сервер. Настроена на нем почта через msmtp -> yandex
Все работало прекрасно, но случилось так, что из-за большого наплыва посетителей был превышен лимит на суточную отправку писем. Сразу скажу, что спамом и рекламной рассылкой писем не занимаюсь. Пользователи отправляют результаты прохождения тестов через форму обратной связи. Пользователей было много, отправляли интенсивно => лимит превышен

Собственно, вопрос сейчас в том, как отправлять мою почту так, чтобы либо не подпадать под лимиты Яндекса, либо вообще минуя его, но с минимальными шансами попадания писем в спам

Спасибо за понимание
Роман
16 апреля 2020, 02:03
modx.pro
1 032
0

Два и более родительских ресурса у документа (дочернего ресурса)

Здравствуйте, скажите пожалуйста, возможно ли, у дочернего ресурса, указать два и более родительских?
Что бы дочерний ресурс «физически» находился в двух (и более) родительских ресурсах одновременно, формировался правильный url и хлебные крошки. Что бы не создавать дубли ресурса.
Например:
Категория-1/Страница
Категория-2/Страница
Категория-товара-99/Товар
Категория-товара-46/Товар
Sergey
16 апреля 2020, 01:46
modx.pro
908
0

Как запретить менеджеру добавлять ресурс в группу, к которой у него нет доступа?

Ребята, собственно вопрос в заголовке.
Группы ресурсов используются для организации скидок. Менеджер заходит в товар и отмечает группы соответствующие акции в которой товар участвует.

Группа System используется для ресурсов типа Login и к ней доступ ограничен чтобы скрыть соответствующие ресурсы из дерева.
Так как сделать чтобы эта группа не отображалась у пользователей, у которых нет к ней доступа?
Андрей
16 апреля 2020, 00:55
modx.pro
670
0

Удаление компонентов modX через api

Доброго времени суток! Может кто в курсе на счет удаления компонентов, используя api modx?
То есть, желательно, чтобы производились аналогичные действия как и при удалении через админку:
  1. Удаляются регистрационные записи из базы
  2. Удаляются папки из assets/components/ и core/components/
  3. Удаляются чанки со сниппетами, пространства имен и т.д.
Думаю, что через процессоры 99% можно, но в доках инфы, вроде бы, не нашел
unreal_serg
15 апреля 2020, 23:39
modx.pro
895
0

Всплывающие подсказки в форме поиска mSearch2

Добрый день.

На сайте работает mSearch2.
Форма поиска выводится:
[[!mSearchForm?
   &pageId=`31`
   &tplForm=`mSearchForm`
   &autocomplete=`queries`
]]
При наборе какого-либо текста в форме поиска появляются всплывающие подсказки. Некоторые из них отображаются в верхнем регистре, некоторые в нижнем.

Как сделать (где настроить), чтобы все всплывающие подсказки появлялись в нижним регистре?
Maxim
15 апреля 2020, 21:24
modx.pro
1 376
0

Вывод ошибки в AjaxForm

Друзья, проверяю форму на заполненность одного поля из двух. Вот вызов сниппета:
{'!AjaxForm' | snippet : [
       'snippet'=>'FormIt'
       'hooks'=>'spam,email'
       'emailFrom'=>'noreply@test.loc'
       'form'=>'tpl.callBack'
       'emailTpl'=>'tpl.callBackMail'
       'emailTo'=>'inbox@mail.local'
       'emailSubject'=>'Обратная связь с сайта'
       'validate'=>'name:required,phone:oneOfTwoFields,email:email:oneOfTwoFields,link:blank'
       'customValidators' => 'oneOfTwoFields'
       'validationErrorMessage'=>'Пожалуйста, заполните необходимые поля.'
       'successMessage'=>'Ваше обращение отправлено. Мы свяжемся с вами!'
    ]}
А вот сниппет кастомного валидатора:
<?php
$success = true;

$phone = trim($_POST['phone']);
$email = trim($_POST['email']);

if (empty($phone) && empty($email)) {
    $success = false;
    $validator->addError($key, 'Заполните поле Телефон или Email.');
}

return $success;
Валидация работает, но не могу понять как выводить во всплывающем окне эту ошибку (когда не заполнены оба поля)? Всегда выводится 'Пожалуйста, заполните необходимые поля.'
Анатолий
15 апреля 2020, 16:05
modx.pro
1 420
0