Добавление новых полей в форму регистрации на примере шаблона Demomarket — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(registrate.phtml)
 
(не показано 10 промежуточных версий 2 участников)
Строка 1: Строка 1:
 
== Задача ==
 
== Задача ==
Реализовать добавление новых регистрационных полей в шаблоне Demomarket.
+
Реализовать добавление новых полей в форму регистрации в шаблоне Demomarket.
  
 
== Решение ==
 
== Решение ==
Для этого необходимо внести небольшие изменения в один файл шаблона:
+
Необходимо внести небольшие изменения в файл шаблона /templates/demomarket/php/users/registrate.phtml:
 
 
===registrate.phtml===
 
Файл находится по адресу /templates/demomarket/php/users/registrate.phtml
 
 
 
 
 
Для начала в файле необходимо скопировать следующий элемент :
 
 
 
/**
 
<div class="important">
 
<input type="text" name="login" placeholder="<?= $this->translate('login') ?>" required>
 
<span class="sub_text"><?= $this->translate('login') ?></span>
 
</div>
 
*/
 
 
 
Далее его необходимо вставить прямо над элементом который был скопирован и изменить метод '''name=""''',на тот который требуется. В дальнейшем его можно будет переместить куда вам необходимо.
 
 
 
 
 
Для примера возьмём метод "data[new][fname]" - добавление поля "имя", с остальными методами вы можете ознакомиться по адресу ваш_домен.ru/admin/data/type_edit/88/  или в админке сайта Модули>Шаблоны данных>  и справа в строке поиска вписать нужный тип данных.
 
 
 
 
 
Базовая конструкция шаблона data[new]+требуемый метод, исходя из этого скрипт будет выглядеть следующим образом:
 
 
 
  
 +
За основу верстки новых полей возьмем следующий элемент из файла registrate.phtml:
 +
<source lang='php'>
 
<div class="important">
 
<div class="important">
<input type="text" name="data[new][fname]" placeholder="<?= $this->translate('login') ?>" required>
+
    <input type="text" name="login" placeholder="<?= $this->translate('login') ?>" required>
<span class="sub_text"><?= $this->translate('login') ?></span>
+
    <span class="sub_text"><?= $this->translate('login') ?></span>
 
</div>
 
</div>
 +
</source>
 +
Его необходимо вставить в нужное место в шаблоне и добавить в атрибут '''name''' значение идентификатора нужного Вам поля из типа данных "Незарегистрированный покупатель".
  
 +
Для примера возьмём идентификатор "data[new][fname]" - идентификатор поля "Имя". С остальными доступными полями Вы можете ознакомиться в админке сайта, в модуле "Шаблоны данных", в типе данных "Незарегистрированный покупатель". В этом типе данных Вы также можете добавить свои поля.
  
Нам осталось только поменять то что находится в скобках перед селектором "translate" вместо 'login' необходимо написать слово 'Имя' в обоих случаях.
+
Вот так должна выглядеть верстка нового поля:
 
+
<source lang='php'>
 
 
Вот как у вас должен выглядеть итоговый скрипт:
 
 
 
 
 
 
<div class="important">
 
<div class="important">
<input type="text" name="data[new][fname]" placeholder="<?= $this->translate('Имя') ?>" required>
+
    <input type="text" name="data[new][fname]" placeholder="Имя" required>
<span class="sub_text"><?= $this->translate('Имя') ?></span>
+
    <span class="sub_text">Имя</span>
 
</div>
 
</div>
 
+
</source>
 
 
Этот скрипт можно будет вставить над любым регистрационным полем куда вам требуется.
 
 
 
===Результат===
 
Если все сделано правильно в поле для регистрации над вводом 'логина' появится 'Имя':
 
 
 
  
 
[[category:Верстка в PHP]][[category:Вопросы и уроки разработки сайтов на UMI.CMS]]
 
[[category:Верстка в PHP]][[category:Вопросы и уроки разработки сайтов на UMI.CMS]]
 
 
[[category:Верстка в PHP]]
 

Текущая версия на 15:02, 12 сентября 2019

Задача

Реализовать добавление новых полей в форму регистрации в шаблоне Demomarket.

Решение

Необходимо внести небольшие изменения в файл шаблона /templates/demomarket/php/users/registrate.phtml:

За основу верстки новых полей возьмем следующий элемент из файла registrate.phtml:

<div class="important">
    <input type="text" name="login" placeholder="<?= $this->translate('login') ?>" required>
    <span class="sub_text"><?= $this->translate('login') ?></span>
</div>

Его необходимо вставить в нужное место в шаблоне и добавить в атрибут name значение идентификатора нужного Вам поля из типа данных "Незарегистрированный покупатель".

Для примера возьмём идентификатор "data[new][fname]" - идентификатор поля "Имя". С остальными доступными полями Вы можете ознакомиться в админке сайта, в модуле "Шаблоны данных", в типе данных "Незарегистрированный покупатель". В этом типе данных Вы также можете добавить свои поля.

Вот так должна выглядеть верстка нового поля:

<div class="important">
    <input type="text" name="data[new][fname]" placeholder="Имя" required>
    <span class="sub_text">Имя</span>
</div>