Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Необходима доработать существующую или создать новую форму регистрации пользователей на joomla 3. Верстка в Bootstrap 5

1. Обязательные для заполнения поля:

1.1. input id="add-username" name="username" (с валидацией на введение от 2 до 20 символов)

1.2. input id="add-useremail" name="email" (с валидацией и проверкой на уже существующие в базе данных)

2. Необязательные поля

2.1. input id="add-userlastname" name="userlastname"(таблица #__fields_values field_id 1). Если ничего не введено - заполняем их пустой строкой.

2.2. input id="add-phone" name="phone" (таблица #__fields_values field_id 5). Для этого поля есть pattern="^\+\d{2}\(\d{3}\)\d{3}[-]\d{2}[-]\d{2}$" , маска, и в случае его заполнения должна проходить валидация и проверка телефона на наличие уже существующих в базе данных. Если телефон не введен - ничего не делается и в базу пишутся пустые значения (заполняем их пустой строкой).

Маска должна работать для разнообразного ввода телефона

+380000000000

+38(000)000-00-00

+38(000)000 00 00

+380 00 000 00 00

+38 000 000 00 00

2.3. input id="add-referrer" name="referrer" (таблица #__affiliate_dprint_accounts столбец referrer_id). Таблица имеет следующую структуру

CREATE TABLE IF NOT EXISTS `#__affiliate_dprint_accounts` (

`id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,

`user_id` int(11) NOT NULL,

`referrer_id` int(11) NOT NULL,

`reg_url` varchar(150) NOT NULL,

`entrance_url` varchar(150) NOT NULL,

`page_url` varchar(150) NOT NULL,

`transitions` int(11) NOT NULL DEFAULT '1'

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

где:

user_id - id нового пользователя (который в данный момент проходит регистрацию)

reg_url, entrance_url, page_url - страница регистрации (захватить )

transitions - равно 0

2.4. textarea id="add-comment" name="comment" (таблица #__fields_values field_id 12). Если ничего не введено - заполняем их пустой строкой.

2.5. select id="add-lead" name="lead" (таблица #__fields_values field_id 26). Если ничего не введено - заполняем их пустой строкой.

2.6. input id="add-folder" name="folder" (таблица #__fields_values field_id 27). Если ничего не введено - заполняем их пустой строкой.

2.7. input id="add-smorganization" name="organization" (таблица #__printcrm_org_users столбец title). Если ничего не введено - заполняем их пустой строкой.

2.8. input id="add-organization" name="organization" (таблица #__printcrm_org_users столбец org). Если ничего не введено - заполняем их пустой строкой.

2.9. input id="add-code" name="code" (таблица #__printcrm_org_users столбец code). Если ничего не введено - заполняем их пустой строкой.

2.10. input id="add-address" name="address" (таблица #__printcrm_org_users столбец adds). Если ничего не введено - заполняем их пустой строкой.

2.11. input id="add-account" name="account" (таблица #__printcrm_org_users столбец bank). Если ничего не введено - заполняем их пустой строкой.

Таблица имеет следующую структуру

CREATE TABLE IF NOT EXISTS `#__printcrm_org_users` (

`id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,

`client_id` int(11) NOT NULL,

`title` varchar(128) NOT NULL,

`org` varchar(255) NOT NULL,

`code` varchar(255) NOT NULL,

`adds` varchar(255) NOT NULL,

`bank` varchar(255) NOT NULL,

`state` int(11) NOT NULL DEFAULT '1'

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

где:

client_id - id нового пользователя (который в данный момент проходит регистрацию)

transitions - равно 1

3.1. button id="reset_form" должна очищать форму от введенных данных и валидации (сообщениях и присвоенных классах)

3.2. button id="add-user" type="submit" onclick="AjaxUserRegistration()"

Принцип работы формы:

4.1. Регистрация пользователя должна производиться Ajax без переходов на другие страницы, залогинивания нового пользователя, перезагрузки текущей страницы, отправки писем о регистрации на введенный адрес электронной почты.

4.2. Перед регистрацией проверяется введенный адрес электронной почты на уже существующий в базе пользователей, а также если введен номер телефона - проверяем его тоже. Если найдено совпадение - вывести предупреждение и отключить кнопку id="add-user", а также над формой в

вывести сообщение

'Цей email вже є у базі даних!'

если совпал телефон

'Цей номер телефону вже є у базі даних!'

если было совпадение и email и телефона - вывести 2 сообщения через

4.3. Таблица #__users заполняется следующим образом

name - input id="add-username" name="username"

username - input id="add-useremail" name="email"

email - input id="add-useremail" name="email"

password - рандомный из 8 знаков JUserHelper::genRandomPassword(8)

registerDate - текущая дата

4.4. Присваиваем пользователю 2 группу пользователей 'groups' => array( 2 )

4.5. Для выполнения п.п. 2.3

$query2 = $db->getQuery(true);

$columns = array('user_id', 'referrer_id', 'reg_url', 'entrance_url', 'page_url', 'transitions');

if ($_SERVER['HTTP_REFERER']) {

$HttpReferer = $_SERVER['HTTP_REFERER'];

} else {

$HttpReferer = '';

}

// Данные нового пользователя в таблицу __affiliate_dprint_accounts

$userId = array($db->quote($user->id), $db->quote($_POST['_referrer']), $db->quote($HttpReferer), $db->quote($HttpReferer), $db->quote($HttpReferer), 0);

4.6. Для полей п.п. 1.1. и 2.1. сделать удаление любых не буквенных символов при вводе (или вставки скопированного текста). К примеру копирование и вставка имени из вайбера.

4.7. После регистрации нового пользователя в

вывести сообщение

'Клієнта додано до бази даних.'

год назад
guest_15912599135732
4 года в сервисе
Был
год назад