<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="uk">
	<id>https://mediawiki.zina.run/index.php?action=history&amp;feed=atom&amp;title=Hugo_Zina_-_%D0%9F%D0%BE%D1%87%D1%82%D0%BE%D0%B2%D1%8B%D0%B5_%D1%84%D0%BE%D1%80%D0%BC%D1%8B</id>
	<title>Hugo Zina - Почтовые формы - Історія редагувань</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zina.run/index.php?action=history&amp;feed=atom&amp;title=Hugo_Zina_-_%D0%9F%D0%BE%D1%87%D1%82%D0%BE%D0%B2%D1%8B%D0%B5_%D1%84%D0%BE%D1%80%D0%BC%D1%8B"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zina.run/index.php?title=Hugo_Zina_-_%D0%9F%D0%BE%D1%87%D1%82%D0%BE%D0%B2%D1%8B%D0%B5_%D1%84%D0%BE%D1%80%D0%BC%D1%8B&amp;action=history"/>
	<updated>2026-10-12T11:54:32Z</updated>
	<subtitle>Історія редагувань цієї сторінки в вікі</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://mediawiki.zina.run/index.php?title=Hugo_Zina_-_%D0%9F%D0%BE%D1%87%D1%82%D0%BE%D0%B2%D1%8B%D0%B5_%D1%84%D0%BE%D1%80%D0%BC%D1%8B&amp;diff=847&amp;oldid=prev</id>
		<title>&gt;Zina: /* Структура форм на Hugo Zina */</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zina.run/index.php?title=Hugo_Zina_-_%D0%9F%D0%BE%D1%87%D1%82%D0%BE%D0%B2%D1%8B%D0%B5_%D1%84%D0%BE%D1%80%D0%BC%D1%8B&amp;diff=847&amp;oldid=prev"/>
		<updated>2022-06-03T04:24:09Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Структура форм на Hugo Zina&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова сторінка&lt;/b&gt;&lt;/p&gt;&lt;div&gt;←[[Hugo Zina]]&lt;br /&gt;
&lt;br /&gt;
== Google Form ==&lt;br /&gt;
&lt;br /&gt;
В качестве «бэкенда» для сохранения заявок и отправки на email используем Google Form в Google Workspace Essentials для домена &amp;lt;code&amp;gt;zina.design&amp;lt;/code&amp;gt; от имени пользователя &amp;lt;code&amp;gt;hello@zina.design&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Управление DNS &amp;lt;code&amp;gt;zina.design&amp;lt;/code&amp;gt; — на Cloudflare.&lt;br /&gt;
&lt;br /&gt;
Почтовый ящик &amp;lt;code&amp;gt;@zina.design&amp;lt;/code&amp;gt; — на Zoho Mail.&lt;br /&gt;
&lt;br /&gt;
=== Почтовые ящики на Zoho Mail ===&lt;br /&gt;
&lt;br /&gt;
Обслуживание почты выполняет Zoho Mail (можно [https://www.zoho.com/mail/zohomail-pricing.html Free]).&lt;br /&gt;
&lt;br /&gt;
Для управления почтой созданы два аккаунта (сначала на Zoho Mail, затем на Google Workspace Essentials):&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;admin@zina.design&amp;#039;&amp;#039;&amp;#039; — администратор&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;hello@zina.design&amp;#039;&amp;#039;&amp;#039; — технический адрес, от которого отправляется почта из Google Form&lt;br /&gt;
&lt;br /&gt;
Также в Zoho Mail создана группа «Public Contacts»:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;mail@zina.design&amp;#039;&amp;#039;&amp;#039; — с алиасами &amp;lt;code&amp;gt;info@zina.design&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;support@zina.design&amp;lt;/code&amp;gt; и участником &amp;lt;code&amp;gt;admin@zina.design&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дальше можно создавать пользователей в Zoho Mail (до 5 пользователей в бесплатном тарифе), добавлять их в группу &amp;lt;code&amp;gt;mail@zina.design&amp;lt;/code&amp;gt; и они все будут получать почту от основных контактных имейлов.&lt;br /&gt;
&lt;br /&gt;
Чтобы пользователи могли отвечать от имени имейлов группы, нужно поставить галочку (см. [[Zoho]]):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Admin Console&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;Groups&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;Advanced Settings&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;Email Delivery&amp;lt;/code&amp;gt; — 🗹 Allow group members to send emails using the group email address as From address&lt;br /&gt;
&lt;br /&gt;
=== Почтовые адреса в скрипте Google Form ===&lt;br /&gt;
&lt;br /&gt;
В [https://script.google.com/u/0/home/projects/1zUml3VQHeO6fLAE7Cdue3JcLg8a7wA-kppm0MoJdtt70J2fSHBsVoQLc/edit скрипте] (редактировать под владельцем &amp;#039;&amp;#039;&amp;#039;hello@zina.design&amp;#039;&amp;#039;&amp;#039;) указаны адреса:&lt;br /&gt;
&lt;br /&gt;
 to: &amp;#039;mail@zina.design&amp;#039;,&lt;br /&gt;
 replyTo: &amp;#039;Студія «Зіна дизайн» &amp;lt;mail@zina.design&amp;gt;&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
Письмо приходит от обратного адреса:&lt;br /&gt;
&lt;br /&gt;
 From: Студія «Зіна дизайн» &amp;lt;hello@zina.design&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  &lt;br /&gt;
! hello@zina.design — Заявки zina.design (19 мая 2022)&lt;br /&gt;
! hello@zina.dev &lt;br /&gt;
! mail@zina.com.ua - Замовлення з сайту zina.design (13 дек. 2021) &lt;br /&gt;
! mail@zina.com.ua - Заявки с сайта zina.design (test) (22 апр. 2020 г.)&lt;br /&gt;
|-&lt;br /&gt;
| Редактирование формы&lt;br /&gt;
|| https://docs.google.com/forms/d/1kKc6-78DdAWIDU4nUf86jTkswok05dhq9SXkqkKFU8o/edit&lt;br /&gt;
|| https://docs.google.com/forms/d/10ExIzlM83Vi5dWKBzC7JPBp25KuduP9mZJ6R8x5Xmng/edit &lt;br /&gt;
|| https://docs.google.com/forms/d/1JniYpUfLCK2j_beV96xcdGuNiCIjSjEcWrYb5Zin3OU/edit &lt;br /&gt;
|| https://docs.google.com/forms/d/1sOi1xlCtFMX3IvWYc9IiJfX4_XrYrrr_ts2lOyM_bXw/edit&lt;br /&gt;
|-&lt;br /&gt;
| Просмотр формы&lt;br /&gt;
|| https://docs.google.com/forms/d/e/1FAIpQLSfkTL-D-I09BfQkm7he8dmuDoulOHCGMNWLYGgO1N2Eitcu4Q/viewform&lt;br /&gt;
|| https://docs.google.com/forms/d/e/1FAIpQLSea1lFfrcgGv92pviD_ziUjKsWZkT13wmll2E27mC9ZkHnmBQ/viewform &lt;br /&gt;
|| https://docs.google.com/forms/d/e/1FAIpQLScuI13YizSgFb6xttFWZmNbR5mUvi2UMiz64fBkCYCNwjkDlw/viewform &lt;br /&gt;
|| https://docs.google.com/forms/d/e/1FAIpQLSfhu4xiiQI9doRGm_jW9IE3rYnN01raexX_65Iv_bvUypF3Qg/viewform&lt;br /&gt;
|-&lt;br /&gt;
| Таблица с заявками&lt;br /&gt;
|| https://docs.google.com/spreadsheets/d/1lOxuscswunLPMQ2FKW5jBAqumg7DFts1SKtSHcHK2IM/edit&lt;br /&gt;
|| https://docs.google.com/spreadsheets/d/1vwgUMpNo6mmom9CPHkDQkkjnIZAA0lkc2IlF-00uVI0/edit &lt;br /&gt;
|| https://docs.google.com/spreadsheets/d/1TAqKo8sM8Iclq8YN4Ow81pMOxlVpjSecPWt8hclcyNc/edit &lt;br /&gt;
|| https://docs.google.com/spreadsheets/d/1-6_Tk6HSGV3mP36S8cW3oyBtJXQeE7QXGf7G1nkvcGU/edit&lt;br /&gt;
|-&lt;br /&gt;
| form action&lt;br /&gt;
|| https://docs.google.com/forms/u/0/d/e/1FAIpQLSfkTL-D-I09BfQkm7he8dmuDoulOHCGMNWLYGgO1N2Eitcu4Q/formResponse&lt;br /&gt;
|| https://docs.google.com/forms/u/0/d/e/1FAIpQLSea1lFfrcgGv92pviD_ziUjKsWZkT13wmll2E27mC9ZkHnmBQ/formResponse &lt;br /&gt;
|| https://docs.google.com/forms/u/0/d/e/1FAIpQLScuI13YizSgFb6xttFWZmNbR5mUvi2UMiz64fBkCYCNwjkDlw/formResponse &lt;br /&gt;
|| https://docs.google.com/forms/u/0/d/e/1FAIpQLSfhu4xiiQI9doRGm_jW9IE3rYnN01raexX_65Iv_bvUypF3Qg/formResponse&lt;br /&gt;
|-&lt;br /&gt;
| Скрипт Google Apps&lt;br /&gt;
|| https://script.google.com/u/0/home/projects/1zUml3VQHeO6fLAE7Cdue3JcLg8a7wA-kppm0MoJdtt70J2fSHBsVoQLc/edit&lt;br /&gt;
|| https://script.google.com/home/projects/1Q9bs7cqTADH8q_AFnEMY9i7O0rWYxbHMcBH3ph8F6zxboeTUi648wmbF/edit &lt;br /&gt;
|| https://script.google.com/home/projects/1ItkQ2VfcZLNzPjvP0UwsTRioAh3HwnAMTkut9rWPRW2OvP899ssnY6x6/edit &lt;br /&gt;
|| https://script.google.com/home/projects/17AYQTELoOCkaDZiMCLos0O7eZVkYxju7dGTcHGOAiseOHrrwGL5hlAal/edit&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Чтобы скопировать форму для другой почты или другого домена ===&lt;br /&gt;
&lt;br /&gt;
# Расшарить форму новому пользователю&lt;br /&gt;
# Принять ее у нового пользователя&lt;br /&gt;
# Внутри формы выполнить копирование - при этом будет показано сообщение &amp;quot;Файл і функції Apps Script також буде скопійовано&amp;quot;.&lt;br /&gt;
# Внутри формы перейти на вкладку &amp;quot;Відповіді&amp;quot; и нажать на иконку Excel — будет создана таблица для приема заявок.&lt;br /&gt;
# Внутри формы нажать меню (три точки справа вверху) и выбрать &amp;quot;Редактор сценаріїв&amp;quot;. &lt;br /&gt;
## Отредактировать контактные email.&lt;br /&gt;
## Запустить &amp;#039;&amp;#039;&amp;#039;installTriggers&amp;#039;&amp;#039;&amp;#039;, как указано в инструкции https://github.com/zinadesign/google-forms-email-sender&lt;br /&gt;
# Внутри формы перейти к просмотру формы (иконка с глазом), в режиме инспектора найти &amp;lt;code&amp;gt;&amp;lt;form action=&amp;quot;...&amp;quot;&amp;lt;/code&amp;gt;, скопировать ссылку и использовать ее в новой форме на сайте.&lt;br /&gt;
&lt;br /&gt;
Инструкция: [[Форма обратной связи на основе Google Forms]]&lt;br /&gt;
&lt;br /&gt;
== Структура форм на Hugo Zina ==&lt;br /&gt;
&lt;br /&gt;
Шаблон формы:&lt;br /&gt;
&lt;br /&gt;
 layouts/partials/form.html&lt;br /&gt;
&lt;br /&gt;
Ссылка на Google Form для &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;form action=&amp;quot;...&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; берется из &amp;lt;code&amp;gt;config.toml&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 formAction = &amp;quot;https://docs.google.com/forms/u/0/d/e/1FAIpQLSfkTL-D-I09BfQkm7he8dmuDoulOHCGMNWLYGgO1N2Eitcu4Q/formResponse&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Сама форма вставляется так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;go&amp;quot;&amp;gt;&lt;br /&gt;
{{- .Scratch.Set &amp;quot;form-id&amp;quot; &amp;quot;form-navbar&amp;quot; -}}&lt;br /&gt;
{{- .Scratch.Set &amp;quot;form-description&amp;quot; &amp;quot;Модальная форма в навбаре «Заказать сайт»&amp;quot; -}}&lt;br /&gt;
{{- partial &amp;quot;form.html&amp;quot; . -}}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Исправить ===&lt;br /&gt;
&lt;br /&gt;
Функция отправки формы &amp;lt;code&amp;gt;submitForm&amp;lt;/code&amp;gt; повторяется в двух скриптах:&lt;br /&gt;
&lt;br /&gt;
* assets/js/morph.js&lt;br /&gt;
* assets/js/navbar.js&lt;br /&gt;
&lt;br /&gt;
Связано это с тем, что она работает внутри Vue, он инициализируется отдельно для навбара и для кнопок морфинга.&lt;br /&gt;
&lt;br /&gt;
Переделать, чтобы был только один.&lt;br /&gt;
&lt;br /&gt;
Самый простой способ - отказаться от морфинга и использовать одно модальное окно в навбаре.&lt;br /&gt;
&lt;br /&gt;
Но тогда непонятно, как обрабатывать формы внутри страниц.&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Устарело&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;layouts/partials/forms/modal.html&amp;lt;/code&amp;gt; — шаблон-враппер для всех модальных окон с формами. Подключен в конце &amp;lt;code&amp;gt;baseof.html&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;static/forms/&amp;lt;/code&amp;gt; — здесь лежат наборы полей форм, которые подгружаются javascript&amp;#039;ом внутрь враппера&lt;br /&gt;
* &amp;lt;code&amp;gt;layouts/shortcodes/forms/&amp;lt;/code&amp;gt; — здесь шорткоды для вставки partials форм внутрь контента страниц&lt;br /&gt;
&lt;br /&gt;
Скрипты и стили:&lt;br /&gt;
* &amp;lt;code&amp;gt;assets/js/forms.js&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;assets/sass/layout/_forms.scss&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
У всех форм одинаковый открывающий тэг &amp;lt;code&amp;gt;&amp;lt;form ...&amp;gt;&amp;lt;/code&amp;gt;, он находится здесь:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;layouts/partials/forms/header.html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно просмотреть варианты форм на технической странице:&lt;br /&gt;
&lt;br /&gt;
* http://localhost:1313/test/modal-buttons/&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Модальные окна ==&lt;br /&gt;
&lt;br /&gt;
В шаблоне-враппере &amp;lt;code&amp;gt;modal.html&amp;lt;/code&amp;gt; находится основной костяк формы:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;modal-main&amp;quot; ...&amp;gt;       &amp;lt;!-- класс &amp;#039;modal-main&amp;#039; необходим для модальных окон                         --&amp;gt;&lt;br /&gt;
  &amp;lt;form class=&amp;quot;form-main&amp;quot; ...&amp;gt;     &amp;lt;!-- к форме с классом &amp;#039;form-main&amp;#039; добавляются геоданные                     --&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;modal-main__body&amp;quot;&amp;gt; &amp;lt;!-- обязательный элемент для модальных окон —                               --&amp;gt;&lt;br /&gt;
      Загрузка...                  &amp;lt;!-- сюда вставляются наборы полей из статичных файлов в папке static/forms/ --&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для форм в модальных окнах нужно редактировать общий шаблон &amp;lt;code&amp;gt;modal.html&amp;lt;/code&amp;gt; + отдельные наборы полей в папке &amp;lt;code&amp;gt;static/forms/&amp;lt;/code&amp;gt;, а вызывать окна кнопкой, из которой в форму передаются:&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse:collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;data-title&amp;lt;/code&amp;gt; || заголовок формы&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;#039;&amp;#039;&amp;#039;data-filename&amp;#039;&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; || имя файла формы, в котором находятся основные поля формы,&amp;lt;br&amp;gt;без пути и расширения: &amp;lt;code&amp;gt;static/forms/&amp;#039;&amp;#039;&amp;#039;price-calculation&amp;#039;&amp;#039;&amp;#039;.html&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;(единственный обязательный элемент)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;data-submitbuttontext&amp;lt;/code&amp;gt; || текст на кнопке сабмита&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;data-description&amp;lt;/code&amp;gt; || скрытое поле — описание формы (например, ее положение на странице), для маркетингового анализа эффективности&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;data-cta&amp;lt;/code&amp;gt; || скрытое поле — тип призыва к действию на кнопке, для маркетингового анализа&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;button type=&amp;quot;button&amp;quot; class=&amp;quot;btn btn-primary btn-lg&amp;quot; data-toggle=&amp;quot;modal&amp;quot; data-target=&amp;quot;#mainModal&amp;quot;&lt;br /&gt;
  data-title=&amp;quot;Расчет цены создания сайта&amp;quot;&lt;br /&gt;
  data-filename=&amp;quot;price-calculation&amp;quot;&lt;br /&gt;
  data-submitbuttontext=&amp;quot;ОТПРАВИТЬ ЗАЯВКУ&amp;quot;&lt;br /&gt;
  data-description=&amp;quot;Первый экран главной страницы&amp;quot;&lt;br /&gt;
  data-cta=&amp;quot;Расчет цены&amp;quot;&amp;gt;&lt;br /&gt;
  Расчет цены&lt;br /&gt;
&amp;lt;/button&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Видимые формы ==&lt;br /&gt;
&lt;br /&gt;
Структура похожа на формы в модальных окнах, но еще проще:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;form class=&amp;quot;form-main&amp;quot; ...&amp;gt;     &amp;lt;!-- к форме с классом &amp;#039;form-main&amp;#039; добавляются геоданные --&amp;gt;&lt;br /&gt;
    &amp;lt;!-- произвольная форма --&amp;gt;&lt;br /&gt;
  &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Видимые формы хранятся в файлах &amp;lt;code&amp;gt;partials&amp;lt;/code&amp;gt; типа &amp;lt;code&amp;gt;layouts/partials/forms/contacts.html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вставка формы в шаблон:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;go&amp;quot;&amp;gt;&lt;br /&gt;
{{ partial &amp;quot;forms/contacts&amp;quot; . }}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Чтобы вставить форму в текст страниц, создаем файл шорткода типа такого &amp;lt;code&amp;gt;layouts/shortcodes/forms/contacts.html&amp;lt;/code&amp;gt; и вставляем в текст страницы так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;go&amp;quot;&amp;gt;&lt;br /&gt;
{{&amp;lt; forms/contacts &amp;gt;}}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== JavaScript и скрытые поля ==&lt;br /&gt;
&lt;br /&gt;
JavaScript &amp;lt;code&amp;gt;assets/js/forms.js&amp;lt;/code&amp;gt; подгружает в шаблон модальной формы статичную часть и во все типы форм формы добавляет геоданные пользователя.&lt;br /&gt;
&lt;br /&gt;
Подключается к страницам сайта в конце основного шаблона &amp;lt;code&amp;gt;layouts/_default/baseof.html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В JavaScript при первом вызове модального окна на странице один раз срабатывает функция &amp;lt;code&amp;gt;getGeoData&amp;lt;/code&amp;gt; —  вызов [[Ip | сервиса, который определяет IP]] пользователя и его дополнительные данные: &lt;br /&gt;
&lt;br /&gt;
* страна&lt;br /&gt;
* город&lt;br /&gt;
* устройство&lt;br /&gt;
* операционная система&lt;br /&gt;
* браузер&lt;br /&gt;
&lt;br /&gt;
Эти данные комбинируются:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
const userIP = geodata.ip;&lt;br /&gt;
const userCity = geodata.location.city + &amp;#039;, &amp;#039; + geodata.location.country.name + &amp;#039; &amp;#039; + geodata.location.country.flag.emoji;&lt;br /&gt;
const userBrowser = geodata.user_agent.name + &amp;#039; &amp;#039; + geodata.user_agent.version_major + &amp;#039;, &amp;#039; + geodata.user_agent.os.name + &amp;#039; &amp;#039; + geodata.user_agent.os.version;&lt;br /&gt;
const userDevice = geodata.user_agent.device.type + &amp;#039; — &amp;#039; + geodata.user_agent.device.name;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
и добавляются к форме в виде скрытых полей:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;entry.241855206&amp;quot;  class=&amp;quot;modal-main__user-ip&amp;quot;      value=&amp;quot;`+userIP+`&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;entry.309959980&amp;quot;  class=&amp;quot;modal-main__user-city&amp;quot;    value=&amp;quot;`+userCity+`&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;entry.2071361263&amp;quot; class=&amp;quot;modal-main__user-browser&amp;quot; value=&amp;quot;`+userBrowser+`&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;entry.1886797722&amp;quot; class=&amp;quot;modal-main__user-device&amp;quot;  value=&amp;quot;`+userDevice+`&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
&lt;br /&gt;
* [[Почтовые формы]]&lt;br /&gt;
* [[Форма обратной связи на основе Google Forms]]&lt;br /&gt;
* Старые формы: [[api.zina.com.ua]]/send_form&lt;br /&gt;
* [[Zoho]]&lt;br /&gt;
* [[Ip]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Hugo]]&lt;/div&gt;</summary>
		<author><name>&gt;Zina</name></author>
	</entry>
</feed>