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

Maks
06 сентября 2023, 20:54
0
position: «topCenter»
вот это надо поменять
Maks
06 сентября 2023, 20:53
0
Там настройки для этого есть насколько я понял.

export default function returnConfigs() {
  return {
    Notify: {
      pathToScripts: './modules/notify.js',
      jsPath: 'assets/components/sendit/web/js/lib/izitoast/iziToast.min.js',
      cssPath: 'assets/components/sendit/web/css/lib/izitoast/iziToast.min.css',
      handlerClassName: 'iziToast',
      toastSelector: '.iziToast',
      typeSelectors: {
        success: '.iziToast-color-green',
        info: '.iziToast-color-blue',
        error: '.iziToast-color-red',
        warning: '.iziToast-color-yellow',
      },
      titleSelector: '.iziToast-title',
      handlerOptions: {
        timeout: 2500,
        position: "topCenter"
      }
    },
  }
}
Андрей Шевяков
06 сентября 2023, 20:51
0
И еще такой вопрос. То что выводится в виде Notify iziToast можно ли выводить просто в коде в div, например перед формой?
Андрей Шевяков
06 сентября 2023, 20:44
0
Спасибо, сделал его из userNotExists.
Назвал userExists

Код:
<?php
if($modx->getCount('modUser', array('username' => $value))){
    $msg = $scriptProperties[$key.'.vTextUserExists'] ?: 'Такой пользователь уже зарегистрирован.';
    $validator->addError($key, $msg);
}
return true;

Все работает!
Артур Шевченко
06 сентября 2023, 20:35
0
А сайт на локалке или на хостинге?
Артур Шевченко
06 сентября 2023, 20:34
+1
Написать валидатор, который проверит есть ли такая почта или нет.
Maks
06 сентября 2023, 20:34
0
Сообщения показывает об ошибке только если указан default
'validate' => 'phone:required,name:required,email:email:required,politics:checkbox:required',

Если же сам задаешь поля для валидации то сообщения нет.
Maks
06 сентября 2023, 20:32
0
в консоли
Object { "X-SIFORM": "oneStepFormru", "X-SIACTION": "send", "X-SIPRESET": "onestepformru", "X-SITOKEN": "75fc54dbfa9bae07784886b6ce8038ae" }
sending.js:91:17
Андрей Шевяков
06 сентября 2023, 20:31
0
Добрый день!
Такой вопрос возник.
В личном кабинете есть форма изменения данных пользователя.

<form action="#" data-si-form="dataForm" data-si-preset="dataedit">
                                    <p class="personal-subheading">Основные данные</p>
                                    <p class="personal-heading-dop">Обязательно укажите дату рождения, мы сделаем вам приятный подарок.</p>
                                    <div class="input-blocks">   
                                    	<div class="input-block">
                                    		<input type="text" name="fullname" value="{$_modx->user.fullname}">
                                    		<span class="placeholder">ФИО</span>
                        		            <span class="input-block__error" data-si-error="fullname"></span>
                                    	</div>
                                    	<div class="input-block">					
                                    		<input type="tel" name="mobilephone" value="{$_modx->user.mobilephone}">	
                                    		<span class="placeholder"></span>
                        		            <span class="input-block__error" data-si-error="mobilephone"></span>
                                    	</div>
                                    </div>
                                    <div class="input-blocks">
                                    	<div class="input-block">
                                    		<input type="email" name="email" value="{$_modx->user.email}">	
                                    		<span class="placeholder">Email</span>
                        		            <span class="input-block__error" data-si-error="email"></span>
                                    	</div>
                                        
                                    	<div class="input-block">					
                                    		<input type="date" name="dob" value="{$_modx->user.dob}">	
                                    		<span class="placeholder">Дата рождения</span>
                        		            <span class="input-block__error" data-si-error="dob"></span>
                                    	</div>
                                    </div>
                                    <div class="input-blocks input-block-w100">
                                    	<div class="input-block">
                                    		<button type="submit" class="btn btn-grey">Сохранить изменения</button>	
                                    	</div>
                                    </div>
                                </form>

Для нее используются такие настройки:
'dataedit' => [
        'hooks' => 'AjaxIdentification',
        'method' => 'update',
        'successMessage' => 'Данные успешно сохранены.',
        
        'clearFieldsOnSuccess' => 0,

        'validate' => 'fullname:required,mobilephone:required,email:email:required',
        'email.vTextRequired' => 'Укажите email.'
    ],

При таких настройках, можно в форме указать почту другого пользователя, который тоже есть в бд, и все сохранится. Как сделать, чтобы выдавал ошибку, что такой пользователь уже зарегистрирован и эту почту использовать нельзя?
Артур Шевченко
06 сентября 2023, 20:10
0
Про хук ничего не знаю, поэтому не могу сказать почему он не работает. А по поводу отсутствия уведомлений, надо смотреть консоль.
Артур Шевченко
06 сентября 2023, 20:07
0
МОжно в системный настройках удалить путь к css
Алексей Смирнов
06 сентября 2023, 20:07
0
А так у вас она не корневая, а с вложенностью… Этот скрин должен был быть в начале.
И тогда это все меняет дело.
нужно брать в зубы лом:
getChildIds
Получать родителей в массив и сравнивать.
те что-то такое
{set $allpara = $_modx->getChildIds(31,2,['template' => 3])}
... $allpara ... // возможно еще нужно сделать манипуляции какие-то.
//можно предварительно распечатать массив и убедиться тчо там все ровно:
<strong>{$allpara | print}</strong>
{if $_modx->resource.parent not in list $allpara}
  <div class="reward"><span>Артикул:</span> <span class="item">[[+article]]</span></div>
{/if}
Я образно показал какую функцию можно взять и что можно параметры засунуть.
вы, думаю, сможете указать верные. Шаблон подставьте какой у этих ресурсов, ну и глубину выборки по вкусу
31 — Id родителя
2 — глубина
template — шаблон.
Maks
06 сентября 2023, 19:06
0
Так и не запустил формы

Пресет
'onestepform' => [
'extends' => 'default',
'hooks' => 'FormItSaveForm,email,sendMessageTelegram',
'redirectTo' => 0,
'redirectTimeout' => 3000,
'clearFieldsOnSuccess' => 1,
'fieldNames' => 'name==Имя',
'successMessage' => 'Ваш запрос успешно отправлен! На протяжинии 30 минут вам перевзонит наш менеджер!',
],

Если в настройках default
'default' => [
'validate' => 'phone:required,name:required,email:email:required,politics:checkbox:required',
],

оставить все поля а мне надо только 2 поля проверять то форма не отправляется пишет Это поле обязательно.
Если же в настройках default
'default' => [
'validate' => 'phone:required,name:required',
],
оставить только нужные мне поля то сообщения об ошибке нет вообще.

Еще одно hooks sendMessageTelegram если раньше он на любом сниппете работал на fetchit на ajaxformlogin отправлял уведомления без проблем то сейчас не работает.
Anton
06 сентября 2023, 15:38
0
При добавлении кода GTM в HEAD на MODX revolution получаю белый экран, а в error.log данная ошибка.

[2023-09-04 14:50:55] (ERROR @ /var/www/u444/data/www/my-domain.com/core/components/pdotools/model/pdotools/pdotools.class.php : 999) Unexpected tag 'w' in head line 37, near '{w[' <- there in a7079a48faef018b6bba5ad8e296596e line 1, near '{include 'head'' <- there
Решение как написано выше после фигурных скобок надо ставить пробелы и это решает проблему
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){____пробел____ w[l]=w[l]||[];w[l].push({___пробел____'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-FFFFFFF');</script>
<!-- End Google Tag Manager -->
Maks
06 сентября 2023, 14:54
0
И еще одно. После установки подгружает шрифт на сайт с вашего файла css который идет с дополнением. Отключить его можно?
Наумов Алексей
06 сентября 2023, 14:28
0
значит там опечатка)))