/
bitrix-dev
/
Starter-kit
Обзор
Документация
Войти
/
bitrix-dev
/
Starter-kit
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
main
local/php_interface/classes/mwi/User/UserConfirmCodeTable.php
129 строк
3 KB
Alexey Karizhenskiy
Первая сборка (из ранее используемого)
19 янв 2026, 21:00
19 янв 2026, 21:00
d843e36
Код
Авторство
О чём код?
<?php namespace MWI\User; use Bitrix\Main\ORM\Query\Join; use Bitrix\Main\ORM\Data; use Bitrix\Main\ORM\Fields; use Bitrix\Main\ORM\Event; use Bitrix\Main\ORM\EventResult; use Bitrix\Main\PhoneNumber; use Bitrix\Main\Localization\Loc; /** * Class UserConfirmCodeTable * * @method static EO_UserConfirmCode_Query query() * @method static EO_UserConfirmCode_Result getByPrimary($primary, array $parameters = []) * @method static EO_UserConfirmCode_Result getById($id) * @method static EO_UserConfirmCode_Result getList(array $parameters = []) * @method static EO_UserConfirmCode_Entity getEntity() * @method static \MWI\User\EO_UserConfirmCode createObject($setDefaultValues = true) * @method static \MWI\User\EO_UserConfirmCode_Collection createCollection() * @method static \MWI\User\EO_UserConfirmCode wakeUpObject($row) * @method static \MWI\User\EO_UserConfirmCode_Collection wakeUpCollection($rows) */ class UserConfirmCodeTable extends Data\DataManager { public static function getTableName() { return 'mwi_user_confirm_code'; } public static function getMap() { return array( new Fields\IntegerField("ID", array( 'primary' => true, 'autocomplete' => true, )), new Fields\StringField("CODE", array( 'required' => true, 'validation' => function() { return array( new Fields\Validators\LengthValidator(4, 10), ); } )), new Fields\StringField("CONTACT", array( 'required' => true, 'validation' => function() { return array( new Fields\Validators\LengthValidator(1, 255), ); } )), new Fields\StringField("TYPE", array( 'required' => true, 'validation' => function() { return array( new Fields\Validators\LengthValidator(1, 10), ); } )), new Fields\IntegerField("USER_ID", array( 'default_value' => 0, )), new Fields\DatetimeField("DATE_CREATED", array( 'required' => true, )), new Fields\StringField("IP", array( 'required' => true, 'validation' => function() { return array( new Fields\Validators\LengthValidator(1, 15), ); } )), new Fields\IntegerField("ATTEMPTS", array( 'default_value' => 0, )), (new Fields\Relations\Reference( 'USER', \Bitrix\Main\UserTable::class, Join::on('this.USER_ID', 'ref.ID') ))->configureJoinType('left'), ); } public static function onBeforeAdd(Event $event): EventResult { return static::modifyFields($event); } public static function onBeforeUpdate(Event $event): EventResult { return static::modifyFields($event); } protected static function modifyFields(Event $event): EventResult { $fields = $event->getParameter('fields'); $result = new EventResult(); $modifiedFields = array(); if(isset($fields["CONTACT"]) && isset($fields["TYPE"]) && $fields["TYPE"] === 'phone') { $modifiedFields["CONTACT"] = static::normalizePhoneNumber($fields["CONTACT"]); } $result->modifyFields($modifiedFields); return $result; } public static function normalizePhoneNumber($number, $defaultCountry = '') { $phoneNumber = PhoneNumber\Parser::getInstance()->parse($number, $defaultCountry); return $phoneNumber->format(PhoneNumber\Format::E164); } }