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

Сергей Карпович
10 марта 2023, 12:23
0
Ребята, подскажите, почему может не срабатывать параметр: clearFieldsOnSuccess?
Вызов такой:
{'!FetchIt' | snippet : [
            'snippet' => 'FormIt',
            'form' => 'tpl_form_popup',
            'emailTpl' => 'tpl_email',
            'hooks' => 'FormItSaveForm,email',
            'emailTo' => $_modx->config.email_address,
            'emailFrom' => $_modx->config.email,
            'aliases' => 'phone==Телефон,name==Имя',
            'emailSubject' => 'Заявка на консультацию с сайта',
            'validate' => 'name:required:minLength=^5^,phone:required:minLength=^17^',
            'validationErrorMessage' => 'В форме содержатся ошибки!',
            'name.vTextRequired' => 'Укажите ФИО.',
            'name.vTextMinLength' => 'Слишком короткое ФИО.',
            'phone.vTextRequired' => 'Укажите телефон.',
            'phone.vTextMinLength' => 'Слишком короткий телефон.',
            'successMessage' => 'Сообщение успешно отправлено',
            'clearFieldsOnSuccess' => 1,
        ]}
Evgeny
10 марта 2023, 12:12
0
Подскажите пожалуйста. Может быть я чтото не так написал? постарался все максимально подробно описать
Артур Шевченко
10 марта 2023, 12:04
0
Всегда есть возможность эмулировать действие пользователя с помощью JS, т.е. делать проверку на ширину экрана и триггерить нажатие на кнопку выбора отображения.
Антон
10 марта 2023, 11:56
0
Артур, спасибо большое за наводку!
Я неправильно сформулировал вопрос, прошу прощения…
Мне нужно именно в зависимости от ширины… Поэтому думаю над применением
@media only screen
Насколько я знаю MobileDetect определяет именно устройство, а не ширину
Артур Шевченко
10 марта 2023, 11:40
+1
Как вариант ставишь MobileDetect и пишешь два вызова один для ПК другой для мобилки, соответственно для мобилки меняешь местами шаблоны.
Баха Волков
10 марта 2023, 09:46
0
Спасибо за отклик!

Исправил.

Версия 1.0.0 доступна на modstore.pro
Она же будет доступна после модерации на modx.com
grotesqueman
10 марта 2023, 03:15
0
приветствую
компонент работает, только в журнал ошибок сыпет:
(ERROR @ ...\core\cache\includes\elements\modsnippet\41.include.cache.php : 53) PHP warning: Undefined variable $hash
ERROR @ ...\core\components\fetchit\model\fetchit.class.php : 94) PHP warning: Undefined array key ""
MODX Revolution 2.8.4-pl
PHP Version 8.1.10
Scorp Satex
09 марта 2023, 23:32
0
msFavorites.ids — тоже наследует общие параметры от pdoTools.

Попробуйте прописать:

[[!msFavorites.ids?
&limit=`99`
]]
Сергей Карпович
09 марта 2023, 20:54
0
отбой, не в то поле смотрел. от сниппета не зависит
Артур Шевченко
09 марта 2023, 18:51
0
Скиньте вызов, я посмотрю. А вообще, AjaxForm точно так же работает, показывает все ошибки сразу.
Сергей Карпович
09 марта 2023, 13:15
0
Интересно то, что если я исполню сниппет AjaxForm то такой проблемы не возникает
Сергей
09 марта 2023, 12:42
0
Убил день жизни, расковырял. В ядре ошибка.
Файл /core/vendor/xpdo/xpdo/src/xPDO/xPDOConnection.php
В строке
$connectFile = XPDO_CORE_PATH. 'om/'. $this->config['dbtype']. '/connect.inc.php';
меняем
'om/' на 'Om/'
Ошибка не позволяет подключить файл, в котором ставится SET NAMES. Вероятно, следует сообщить разработчикам.
Артур Шевченко
09 марта 2023, 12:28
0
Немного не по адресу вопрос, за валидацию отвечает FormIt.
Сергей Карпович
09 марта 2023, 12:14
0
Если для поля установлено несколько валидаторов, например:
name.vTextRequired и name.vTextMinLength
То при незаполненном поле — показывается текст ошибки и с первого валидатора со второго валидатора, хотя до него еще не дошли. Это можно поправить?
Те. если поле не заполнено — показываем name.vTextRequired, если заполнено мало, то name.vTextMinLength
Денис Усачев
09 марта 2023, 12:09
0
msFavorites.ids
<?php
/** @var array $scriptProperties */
/** @var msFavorites $msFavorites */
if (!$msFavorites = $modx->getService('msfavorites.msFavorites', '', MODX_CORE_PATH . 'components/msfavorites/model/')) {
    return 'Could not load msFavorites class!';
}
/** @var pdoFetch $pdoFetch */
if (!$modx->loadClass('pdofetch', MODX_CORE_PATH . 'components/pdotools/model/pdotools/', false, true)) {
    return false;
}

if (!empty($returnIds)) {
    $return = 'ids';
}
if ($return === 'ids') {
    $returnIds = 1;
}

if (!isset($list) OR $list == '') {
    $list = 'default';
}
if (!isset($type) OR $type == '') {
    $type = 'resource';
}

$list = is_array($list) ? $list : array_map('trim', explode(',', $list));
$rows = $modx->runSnippet('msFavorites.objects', array_merge($scriptProperties, ['return' => 'data', 'list' => $list, 'type' => $type, 'groupKey' => 'list']));
$pls = [
    'list'  => [],
    'total' => [],
];
foreach ($list as $l) {
    $keys = !empty($rows[$l]) ? array_column($rows[$l], 'key') : [];
    $pls['list'][$l] = !empty($keys) ? implode(',', $keys) : '-0';
    $pls['total'][$l] = count($keys);
}
$msFavorites->setPlaceholders($pls);

$log = '';
if ($modx->user->hasSessionContext('mgr') && !empty($showLog)) {
    $log .= '<pre class="msFavoritesLog">' . print_r($pdoFetch->getTime(), 1) . '</pre>';
}
$modx->setPlaceholder('msFavorites.log', $log);

$output = [];
switch ($return) {
    case 'data':
        $output = $pls;
        break;
    case 'json':
        $output = json_encode($pls, true);
        break;
    case 'ids':
    default:
        $output = reset($pls['list']);
        if (!empty($toPlaceholder)) {
            $modx->setPlaceholder($toPlaceholder, $output);
            $output = '';
        }
        break;
}

return $output;
Денис Усачев
09 марта 2023, 11:42
0
1. выдает ровно 10 id [32,46,55,64,73,84,95,105,114,120]

2. pdoPage &limit=`999` ставлю но без изминений,
так как в resources передаю id
&resources=`{'!msFavorites.ids' | snippet}`  
что равно 
&resources=`32,46,55,64,73,84,95,105,114,120`
Scorp Satex
09 марта 2023, 10:21
0
1. Вызов
{'!msFavorites.ids' | snippet}
— сколько idшников выдает? тоже 10 штук или больше?
2. У pdoPage есть параметры: docs.modx.pro/komponentyi/pdotools/snippetyi/pdopage Один из них — &limit по умолчанию limit и там указано 10. Попробуйте указать там 99.
Алексей Смирнов
08 марта 2023, 20:21
0
Ну если квалификация позволяет расковырять — расковыряйте.
Там встроенный обработчик. Можно по аналогии сделать свой. И тогда получите свой вариант.