UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: Axiomateria от 28 Февраля 2013, 22:57:09

Название: Чек бокс для "Согласен с условиями договора"
Отправлено: Axiomateria от 28 Февраля 2013, 22:57:09
Здравствуйте! Требуется Ваша помощь.
Интересует подключение такого маленького, но ответственного "чек-бокса" для фактического подтверждения согласия незарегистрированного покупателя в момент оформления заказа на этапе заполнения своих контактных данных для свершения оплаты выбранных им товаров в корзине.
То есть условие такое: пока покупатель не нажмёт галочку в чек-боксе под названием "Я согласен с условиями договора оферты" кнопка оплатить не активизируется для нажатия.  
Есть ли такой уже готовый пример у кого либо ?  
Название: Re:Чек бокс для "Согласен с условиями договора"
Отправлено: admin от 01 Марта 2013, 00:09:01
Если разговор идет о js разблокировании кнопки оформить, то в сети полно примеров, это уже не к umi вопрос. Если вопрос в том, как сделать так, чтобы пользователя не пускало дальше регистрации, заполнение личных данных незарегистрированному пользователю при оформлении заказа или отправке формы обратной связи.... то, добавляем поле типа "кнопка галочка" в соответствующий тип данных, в модуле "Шаблоны данных" и делаем это поле обязательным для заполнения
Название: Re:Чек бокс для "Согласен с условиями договора"
Отправлено: Axiomateria от 01 Марта 2013, 01:54:48
добавляем поле типа "кнопка галочка" в соответствующий тип данных, в модуле "Шаблоны данных" и делаем это поле обязательным для заполнения

- конечно я в первую очередь так и сделал, но не сработало... то есть игнорируя установку галочки в чек-боксе и при последующем нажатии "Сохранить изменения" переход на следующую страницу происходит беспрепятственно...
Скорее всего без JS не обойтись...
Вот я про примеры и спросил - есть ли решения так сказать для UMI ?
Название: Re:Чек бокс для "Согласен с условиями договора"
Отправлено: admin от 01 Марта 2013, 02:18:18
Цитировать
- конечно я в первую очередь так и сделал, но не сработало... то есть игнорируя установку галочки в чек-боксе и при последующем нажатии "Сохранить изменения" переход на следующую страницу происходит беспрепятственно...

проверить что галочка обязательна....

в какой форме нужно было вывести галочку? в каком типе данных была добавлена галочка?

система не может сохранить форму с данными если какое-то из обязательных полей не заполнено.. она выкидывает пользователя снова на форму

Название: Re:Чек бокс для "Согласен с условиями договора"
Отправлено: Axiomateria от 01 Марта 2013, 11:28:56
Цитировать
в какой форме нужно было вывести галочку? в каком типе данных была добавлена галочка?

Форма - Оформление заказа (где вводятся персональные данные покупателя как имя фамилия и пр.)
Тип данных - Незарегистрированный покупатель
Группа полей - Персональные данные
Название: Re:Чек бокс для "Согласен с условиями договора"
Отправлено: admin от 01 Марта 2013, 12:13:41
тогда ошибка закралась в какой-то мелочи, так как если все написанное верно, в купе с тем, что галочка обязательно к заполнению, то вы не сможете перейти на другой шаг оформления не отметив галочку
Название: Re:Чек бокс для "Согласен с условиями договора"
Отправлено: Axiomateria от 01 Марта 2013, 12:30:40
тогда ошибка закралась в какой-то мелочи
Это конечно мне и самому очевидно. Но тем не менее вопрос о JS - есть ли у Вас решения или рекомендации по этому случаю, ведь как мне думается изменения надо внести в файл required.xsl
в папке \templates\название_шаблона\xslt\modules\emarket\purchase\
?

А вот и содержимое этого файла:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet SYSTEM   "ulang://i18n/constants.dtd:file">
<xsl:stylesheet   version="1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   xmlns:xlink="http://www.w3.org/TR/xlink">
   <xsl:template match="purchasing[@stage = 'required'][@step = 'personal']">
      <form enctype="multipart/form-data" method="post" action="{$lang-prefix}/emarket/purchase/required/personal/do/">
         <xsl:apply-templates select="document(concat('udata://data/getEditForm/', customer-id))" />
            <div class="linker">
               <a target="_blank" href="{$lang-prefix}/oferta/"><xsl:text>&contractafertalink;</xsl:text></a>
            </div>
         <div>
            <input type="submit" class="button" value="&save-changes;" />
         </div>
      </form>
   </xsl:template>
</xsl:stylesheet>
Название: Re:Чек бокс для "Согласен с условиями договора"
Отправлено: admin от 01 Марта 2013, 13:02:08
форму выводит <xsl:apply-templates select="document(concat('udata://data/getEditForm/', customer-id))" />

то есть работайте с шаблоном modules/data/common-edit-form.xsl

я пошел бы такому пути... к каждому выводимому полю добавил вывод css класса или css id с названием поля. Затем повесил js событие на отметку данной галочки
Название: Re:Чек бокс для "Согласен с условиями договора"
Отправлено: Axiomateria от 01 Марта 2013, 16:16:08
работайте с шаблоном modules/data/common-edit-form.xsl
я пошел бы такому пути
Спасибо. Я так понял, что поработать надо с этим шаблоном, который выводит те данные, которые можно редактировать через админку сайта в "Шаблоны данных" -> "Незарегистрированный покупатель" ->  Группа полей "Персональные данные" ?

НО я пока решил по простому пути пойти, который успешно реализовал по найденной статье:
http://novice2ninja.ru/jquery-recepies/checkbos-button-recipe.html
Название: Re:Чек бокс для "Согласен с условиями договора"
Отправлено: admin от 01 Марта 2013, 18:13:00
вариант быстрее и проще, но тогда не будет проверки по php и при недогрузке js или работе злоумышленника, вашу форму можно будет отправить
Название: Re:Чек бокс для "Согласен с условиями договора"
Отправлено: Axiomateria от 01 Марта 2013, 18:48:31
вариант быстрее и проще, но тогда не будет проверки по php и при недогрузке js или работе злоумышленника, вашу форму можно будет отправить
Это я конечно осознаю. Будет чуть больше времени разобраться почему не работает обязательная галочка к заполнению поля - так и сделаем уже по крепкому уму так сказать.
Спасибо!