Сброс пароля ошибка в шаблоне с Bootstrap

Такая ошибка возникает только с Bootstrap шаблонами
Почему то ссылка со сбросом пароля приходит на почту два раза подряд и в письме генерируется каждый раз новая ссылка и пароль.

При переходе по ссылке из письма происходит ошибка
Password Reset Information
Your password has already been reset or the link expired. If you need to reset your password again, click here.
Скрин ошибки

сниппет вызываемый на ресурсе 846
[[!ForgotPassword? 
            &resetResourceId=`948`
            &loginResourceId=`845`
            &tpl=`авториз сброс` 
            &sentTpl=`<p class="alert alert-success">Письмо отправлено</p>` 
            &sentTplType=`inline`
]]
сниппет вызываемый на ресурсе 948 (куда переходим по ссылке из письма)
[[!ResetPassword?
            &loginResourceId=`844`
]]
Как исправить то? кто нить знает?

***************
ОТВЕТ

сниппет восстановления и сброса пароля находился в стандартном шаблоне
и выводился так
[[!If?
			&subject=`[[RenderSidebar]]`
			&operator=`!empty`
			&then=`<div class="row">
				<div class="col-md-2 sidebar-offcanvas" id="sidebar" role="navigation">
					[[$Sidebar]]
				</div>
				<div class="col-md-10">
					[[*content]]
				</div>
			</div>`
			&else=`[[*content]]`
]]
оставил только
[[*content]]
письмо приходит теперь 1 раз и ссылка генерируется правильная.
Konstantin
23 января 2016, 12:28
modx.pro
1 565
0

Комментарии: 10

Konstantin
23 января 2016, 15:44
0
Возможная причина в чанке
&tpl=`авториз сброс`

в котором код
<input type="hidden" name="returnUrl" value="[[+loginfp.request_uri]]" />
вроде он указывает куда возвращаться после отправки email
    Konstantin
    23 января 2016, 15:57
    0
    Оказалось что
    value="[[+loginfp.request_uri]]"
    не влияет
    Konstantin
    23 января 2016, 15:58
    0
    Возможно нужно просто указать в форме
    <form role="form" action="[[~[[*id]]]]" method="post">
    другой action="[[~[[*id]]]]"

    =)
      Илья Уткин
      23 января 2016, 16:36
      0
      Скорее всего форма сброса на странице вызывается 2 раза, потому и срабатывает 2 раза.
        Konstantin
        23 января 2016, 21:28
        0
        Все куда сложнее.
        Отключил шаблон для этих ресурсов, сделал без шаблона.
        Приходит письмо теперь 1 раз ноооооо ссылка не рабочая в ней. Не сбрасывается пароль при переходе по ссылке из письма.
        На другом контексте все тоже самое и работает.
      Konstantin
      25 января 2016, 14:32
      0
      Я так и не понял почему в шаблоне Bootstrap происходит двойная отправка письма.
      Но проблема с неработающей ссылкой сброса пароля решилась вот таким извратом
      [[!ResetPassword:empty=`
                  [[!ForgotPassword? 
                      &resetResourceId=`[[*id]]` 
                      &tpl=`сброс` 
                      &sentTpl=`<p>Проверьте почту.</p>` 
                      &sentTplType=`inline`
                  ]]
              `]]
        Konstantin
        25 января 2016, 14:36
        0
        ТОбишь если не указать

        [[!ResetPassword:empty=`
        то ссылка будет приходить в эмайл неправильная ((( непонятно почему
        Konstantin
        25 января 2016, 15:36
        0
        Итак, вывод почему письмо два раза отправлялось

        сниппет восстановления и сброса пароля находился в стандартном шаблоне
        и выводился так
        [[!If?
        			&subject=`[[RenderSidebar]]`
        			&operator=`!empty`
        			&then=`<div class="row">
        				<div class="col-md-2 sidebar-offcanvas" id="sidebar" role="navigation">
        					[[$Sidebar]]
        				</div>
        				<div class="col-md-10">
        					[[*content]]
        				</div>
        			</div>`
        			&else=`[[*content]]`
        ]]
        оставил только
        [[*content]]
        письмо приходит теперь 1 раз и ссылка генерируется правильная.
          Илья Уткин
          25 января 2016, 16:13
          +1
          А все почему? Потому что парсер MODX «работает изнутри», то есть, сначала берет [[*content]], выполняет в нём все теги, потом берет второй [[*content]], выполняет в нем все теги, только потом берет If и выводит на страницу нужный результат из полученных.
            Сергей Шлоков
            25 января 2016, 16:54
            +2
            Много раз уже говорили — не пользуйтесь вы этим If. Напишите свой сниппет, который будет возвращать нужный контент. If придуман для менеджеров без знаний php.
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            10