Создание формы регистрации в WordPress. Плагин Profile Builder

От автора: рано или поздно каждый веб-разработчик сталкивается с задачей по ограничению доступа к некоей странице/страницам или каталогу. Это может быть просто секретная страница на сайте, административная часть сайта или любой другой раздел, доступ к которому мы хотим ограничить и предоставлять только по паролю. Для этого можно, конечно же, воспользоваться средствами сервера. Думаю, на любом современном хостинге есть функция паролирования директории, где можно создать пользователя, назначить ему пароль и, после паролирования директории, доступ к закрытому каталогу будет предоставлен только после правильного ввода логина и пароля. Но иногда хочется написать что-то самому, что-то быстрое, простое, но вместе с тем — надежное…

В этом уроке мы попробуем написать свою простую систему авторизации. У нас будет секретная страница — допустим, это будет страница администратора, доступ к которой мы будем предоставлять только для авторизованного пользователя. Наша система авторизации будет основана на работе механизма сессий. Перед продолжением этого урока я рекомендую Вам ознакомиться с одним из предыдущих своих уроков, в котором мы, в частности, рассматриваем работу сессий — .

Вкратце всю работу с сессиями можно разделить на 3 этапа:

Открытие сессии. На всех страницах, где подразумевается работа с сессиями, обязательно должен быть осуществлен старт сессии функцией session_start().

Регистрация сессионных переменных.

Разрегистрирование сессионных переменных при помощи функции unset() и закрытие сессии функцией session_destroy().

Шаг 1

Итак, для нашей работы создадим 3 файла — Главная страница (index.php), Контакты (contact.php) и Админка (admin.php). Обращаю внимание на то, что расширение файла, к которому мы будем ограничивать доступ должно быть.php. Как Вы догадались, ограничивать доступ мы будем к файлу admin.php. Код всех файлов самый простой — это своеобразное меню в строку со ссылками на другие страницы, и под ним индивидуальный текст каждой страницы, чтобы мы могли отличать их друг от друга. Вот, к примеру, код индексной страницы:

Главная | Контакты | Админка


Это главная страница

Остальные страницы, как я сказал, отличаются от нее только текстом после тега линии. Я не стал делать полноценные страницы с мета-тегами, поскольку наша задача состоит только в ограничении доступа к некоей странице.

Шаг 2

Пока что мы свободно можем ходить по всем страницам, включая страницу админки. Как же мы ограничим к ней доступ? Каков вообще будет алгоритм? Мы будем делать следующее: в самом начале страницы мы будем проверять, есть ли нужная нам метка в сессии или, проще говоря, существует ли определенная сессионная переменная (также можно проверять равно ли значение сессионной переменной определенному значению). Если такой переменной нет, значит пользователь, запрашивающий эту страницу, не авторизован, а значит мы осуществим его редирект на страницу авторизации, где ему будет предложено заполнить форму с именем и паролем. Алгоритм предельно прост — реализуем его. Переходим к файлу admin.php, открываем в самом верху конструкцию PHP и напишем такой код:

session_start () ;

if (! $_SESSION [ "admin" ] ) {

header ("Location: enter.php" ) ;

exit ;

Давайте теперь прочитаем это код. Во-первых, мы открыли сессию, как Вы помните — это обязательное условие при работе с сессиями. Далее, мы создали простое условие, которое можно прочитать так: «если в массиве $_SESSION не существует элемента admin — будем выполнять блок действий, заключенный в операторные скобки». А в блоке кода мы при помощи функции header() производим редирект пользователя на страницу enter.php (это страница авторизации). После функции header() обязательно завершаем выполнение скрипта при помощи функции exit(). Если же условие не выполнится, т.е., в массиве $_SESSION будет элемент admin — это значит, что пользователь уже успешно авторизован, и мы пропустим блок действия в операторных скобках, т.е., никакого редиректа происходить не будет, и мы покажем запрошенную страницу.

Шаг 3

Теперь нам нужно создать страницу авторизации — enter.php. Для этого скопируем код, к примеру, страницы contact.php, создадим новый файл и вставим в него скопированный код. Файл сохраняем под именем enter.php. Теперь на этой странице напишем простенькую форму для ввода логина и пароля:

Главная | Контакты | Админка


Это страница авторизации.
Username:
Password:

< p > < a href = "index.php" > Главная< / a > | < a href = "contact.php" > Контакты< / a > | < a href = "admin.php" > Админка< / a > < / p >

< hr / >

< br / >

< form method = "post" >

Username : < input type = "text" name = "user" / > < br / >

Password : < input type = "password" name = "pass" / > < br / >

< input type = "submit" name = "submit" value = "Войти" / >

< / form >

Здесь все просто. В форме 2 поля: поле для ввода логина (ему мы дали имя «user») и поле для пароля (с именем «pass»). Также мы создали кнопку (имя «submit»), по нажатию на которую будут отосланы данные из формы. Данные отсылаются методом post — это мы указали в атрибуте method тега form — и будут обработаны на этой же странице. Теперь мы можем попробовать зайти на страницу админки. Если все сделано без ошибок — мы туда попасть не сможем, а неизменно будем оказываться на странице авторизации.

Замечательно!

Шаг 4

Далее нам нужно написать на странице с формой ее обработчик, который будет принимать данные из формы и сравнивать, совпадают ли логин и пароль из формы с теми, которые есть у нас. Для этого откроем вверху страницы авторизации конструкцию PHP и начнем писать код. Для начала мы должны открыть сессию — ведь именно здесь мы будем создавать метку в сессии, если получены верные логин и пароль. На этой же странице мы будем хранить логин и пароль администратора. Обычно эти данные хранятся в базе данных (БД), но у нас будет только 1 пользователь (администратор), а потому хранить его данные для входа в БД не совсем рационально. Если же пользователей будет не один, т.е., мы, к примеру, пишем проект, в котором имеется регистрация, то, конечно же, без БД в таком случае обойтись будет сложно.

Итак, наш логин будет «admin» и хранить мы его будем в переменной $admin. Пароль будет «mypass» и он будет храниться в переменной $pass. Но хранить пароли в открытом виде не принято — это противоречит принципам безопасности. Хранить пароль мы будем в зашифрованном виде, а зашифровать его нам поможет функция md5(). Эта функция шифрует строку по специальному алгоритму, и на выходе мы получаем строку из 32 символов (ее называют хеш). Если мы зашифруем строку «mypass» (это можно сделать, например, в файле contact.php):

echo md5 ("mypass" ) ;

то на выходе получим строку «a029d0df84eb5549c641e04a9ef389e5″ — это и будет наш зашифрованный пароль. Пока что код страницы авторизации будет таким:

Главная | Контакты | Админка


Это страница авторизации.
Username:
Password:

session_start () ;

$admin = "admin" ;

$pass = "a029d0df84eb5549c641e04a9ef389e5" ;

< p > < a href = "index.php" > Главная< / a > | < a href = "contact.php" > Контакты< / a > | < a href = "admin.php" > Админка< / a > < / p >

< hr / >

< br / >

< form method = "post" >

Username : < input type = "text" name = "user" / > < br / >

Password : < input type = "password" name = "pass" / > < br / >

< input type = "submit" name = "submit" value = "Войти" / >

< / form >

Шаг 5

Теперь проверим то, что мы получили из формы с тем, что у нас есть в переменных с логином и паролем. Делать это мы будем по условию — только в том случае, если нажата кнопка формы. Как мы можем это проверить? У кнопки есть имя («submit»), а данные мы передаем методом post. Соответственно, мы можем просто проверить, существует ли элемент submit в массиве $_POST. Если есть — кнопка была нажата, и мы будем выполнять действия по проверке присланных данных, иначе — ничего делать не будем. После объявления логина и пароля пишем условие:

if($_POST["submit"]){ if($admin == $_POST["user"] AND $pass == md5($_POST["pass"])){ $_SESSION["admin"] = $admin; header("Location: admin.php"); exit; }else echo "

Логин или пароль неверны!

"; }

if ($ _POST [ "submit" ] ) {

if ($ admin == $ _POST [ "user" ] AND $ pass == md5 ($ _POST [ "pass" ] ) ) {

$ _SESSION [ "admin" ] = $ admin ;

exit ;

} else echo "

Логин или пароль неверны!

" ;

Условие по проверке логина и пароля мы сделали как бы двойным. Сделано это при помощи логического оператора AND (его также можно записать таким образом — «&&»). Условие можно прочитать так: «если(переменная $admin равна элементу user в массиве $_POST И переменная $pass равна хешу элемента pass в массиве $_POST) то {выполняем блок действий}else выводим на экран текст ‘Логин или пароль неверны!’

Если же пара логин-пароль совпадает, то мы регистрируем сессионную переменную $_SESSION["admin"] и перенаправляем пользователя на страницу админки — admin.php.
Попробуем теперь протестировать то, что мы уже создали. Если мы введем заведомо ложные логин и пароль, то получим предупреждающее сообщение, что «Логин или пароль неверны!». Попробуем теперь ввести правильные данные для входа. Если мы нигде не ошиблись, то после нажатия на кнопку «Войти» мы окажемся на странице админки.

Шаг 6

Теперь осталось дописать некоторые мелочи. К примеру, мы сейчас авторизованы в системе, но если мы введем в адресной строке адрес страницы авторизации, то спокойно попадем на нее и увидим форму авторизации. Такого быть не должно — форму должен видеть только неавторизованный пользователь. Как мы можем исправить это? Помним, что на странице admin.php мы проверяли, есть ли метка в сессии. Если ее нет — мы переводили пользователя на страницу авторизации. Здесь мы можем сделать то же самое, только наоборот. Т.е., мы также проверяем, есть ли метка в сессии. Только теперь мы будем переводить пользователя на страницу админки, если такая метка есть. Это, в принципе, логично. Если есть метка, значит пользователь уже авторизован, и мы его можем перевести на страницу админки. На странице enter.php после старта сессии допишем такой код:

if($_SESSION["admin"]){ header("Location: admin.php"); exit; }

if ($ _SESSION [ "admin" ] ) {

header ("Location: admin.php" ) ;

exit ;

Теперь если авторизованный пользователь попробует ввести в адресную строку имя страницы авторизации — он будет переведен на страницу админки. Не авторизованный пользователь же сможет свободно попасть на страницу авторизации.

Шаг 7

Следующий момент, который нам нужно предусмотреть — это реализация выхода авторизованного пользователя, т.е., допустим, администратор закончил свою работу и ему нужно выйти, чтобы никто посторонний не смог работать под его учетной записью. Для этого добавим на странице admin.php ссылку «Выход». Ссылка будет вести на эту же страницу, только к ней будет добавлен нужный нам параметр. Параметр добавляется при помощи вопросительного знака:

Выход

< a href = "admin.php?do=logout" > Выход< / a >

Эту ссылку можно поставить в том месте, в котором нам нужно — я поставлю ее после текста страницы. Относительно параметра — он будет передан методом GET (вспоминаем, что из формы мы передавали данные вторым параметром — POST). При использовании этого метода данные присоединяются к адресу в адресной строке и отделены от адреса как раз вопросительным знаком. Мы передаем один параметр — do — и при этом присвоили ему значение «logout». Как теперь мы можем разавторизовать пользователя? Очень просто — здесь нам помогут второй и третий этапы при работе с сессиями. При загрузке страницы мы можем проверить значение элемента do из массива $_GET. Если оно будет равно строке «logout» — мы просто разрегистрируем сессионную переменную $_SESSION["admin"] и разрушим сессию. Соответственно, метки в сессии после этого не будет и в следующем блоке, где мы проверяем наличие метки, пользователь будет перенаправлен на страницу авторизации. Все просто.

Приветствую вас, коллеги. В этой статье я покажу вам, как сделать форму регистрации и авторизации для блога на WordPress с помощью одного простого и в тоже время навороченного плагина Profile Builder. Используя его, вы сможете разрешать пользователям регистрироваться у себя на блоге в административной панели.

Впрочем, у вас наверняка возник вопрос: зачем позволять посетителям лазить по блогу? Ведь его могут взломать! Ну, во-первых, это бесплатные статьи, которые на сегодняшний день на дороге не валяются и стоят денег, или по крайне мере времени. Во-вторых, данные пользователи не смогут гулять у вас в админке также свободно как вы, а только писать текст в черновик, который позже вы должны будете одобрить, чтобы он опубликовался на блоге.

В целом, на мой взгляд, довольно-таки классная идея, если сделать, например, из блога что-то типа ответов mail.ru, то сайт сам по себе будет заполняться и раскручиваться. Я, кстати, уже видел нечто подобное, только с каталогом статей. В нем также надо было зарегистрироваться на блоге, зайти в консоль и оставить свою статью на проверку. Если честно, я тогда так сильно удивился, что кто-то разрешает лазить по своему сайту, что еще долго сомневался — а это вообще каталог статей или простои блог, автор которого решил так себе на халяву статей понабирать? Кстати, совершенно забыл сказать, что плагин Profile Builder можно поставить не только на обычный блог, но и на форум, магазин, доску объявлений, сделанные на .

Согласитесь, на многих форумах регистрация стоит просто ужасная, просящая чуть ли не все данные заполнить, в то время как плагин Profile Builder можно так гибко настроить, что он от вас потребует только ввести три поля: имя, емайл и пароль. Это очень удобно, ведь никому не хочется заполнять о себе целое досье, да еще и заполнять мега сложную капчу (набор символов) или отвечать на нереально сложный вопрос, на который и человек с трудом ответит.

Видел я парочку таких форумов, когда собирал свою , где задавались такие вопросы, на которые могли ответить только те, кто хорошо разбирался в теме, посвященной форуму. Короче ужас, в топку надо такие регистрации. Итак, приступим же к установке плагина Profile Builder.

Как сделать форму регистрации и авторизации на WordPress ?

1 ) Перед тем как приступить к установке плагина Profile Builder нужно кое-что настроить в блоге, чтобы он мог разрешать пользователям регистрироваться. Итак, идем в «параметры» «общие» и ставим галочку возле пункта «членство», и во вкладке «роль нового пользователя» выбираем «участник». Это тот, кто сможет писать статьи, но не сможет их публиковать.

2 ) Ок, теперь-то уже можно устанавливать плагин. Скачать его можете .

3 ) После того как вы его установите, все что вам останется сделать, так это страницу регистрации пользователей. Для этого зайдите в «страницы» «добавить новую», озаглавьте ее как-нибудь, например «Регистрация» и вставьте вот этот шорткод в во вкладке «текст» и опубликуйте страницу. Если что-то непонятно смотрите на пример ниже.

Ок, после этого у вас на блоге появится вот такая форма регистрации.

Кстати, ее можно добавить и в виджеты блога. Для этого перейдите во «внешний вид» «виджеты» и добавьте виджет под названием текст и в его содержимое, вставьте этот же самый код. Вообще, данный шорткод универсальный и его можно вставить в любую часть блога. Если вам когда-нибудь это понадобится, то просто перейдите во «внешний вид» «редактор» и выберите нужный вам файл.

Хорошо, мы поставили с вами форму регистрации, а как же поставить авторизации? Для этого существуют другие шорткоды, вот их список:

– форма для регистрации.

– форма для редактирования профиля (для авторизованных пользователей).

– форма для восстановления пароля.

Просто скопируйте нужный вам код и вставьте его в то место на сайте, где вы хотите видеть нужную вам форму.

Настройка плагина Profile Builder.

4 ) Как вы, наверно, уже заметили у нашей формы просто море ненужных полей, давайте-ка их поубираем, чтобы лишний раз не пугать наших пользователей. Итак, для этого зайдите в «пользователи» «Profile Builder» «стандартные поля профиля». Тут вы увидите три столбца: название поля, статус, обязательное поле.

В колонке «статус» указаны поля, которые будут выводиться (показываться) для заполнения. Рекомендую вам поставить их все в статус «скрывать».

В колонке «обязательное поле» указаны поля обязательные для заполнения, без которых не произойдет регистрация пользователя.

В колонке «название поля», думаю, и так все понятно.

5 ) Ок, и напоследок зайдите в «общие настройки». Тут вы можете по своему усмотрению включить или отключить подтверждение регистрации по почте пользователя, а также настроить способ его авторизации по логину или нику. Кстати, совершенно забыл упомянуть еще об одном плагине - , у которого тоже есть функция авторизации. О нем я хотел написать еще в самом начале, но, увы, забыл.

Различные закрытые сайты с ограниченным доступом членов требуют авторизоваться при входе. В WordPress имеется встроенная система для подобной регистрации, которой вы можете воспользоваться, но тут имеется один момент… Эта система слишком примитивная. Может быть, вам захочется сделать процесс регистрации более удобным, добавить в него новые функции или подключить возможность авторизации из социальных сетей?

Здесь встроенной функциональности WordPress может оказаться маловато.

Однако, эта проблема имеет решение. Добавить новые функции в подобные формы можно с помощью плагинов. В данном обзоре представлены 20 таких плагинов, которые вы сможете найти на CodeCanyon.

1. UserPro

Очень хороший плагин и один из самых дорогих. Лицензию на него можно приобрести за $29.

Особенности плагина:

  • Возможность авторизации одним кликом через аккаунт соцсетей;
  • привлекательные пользовательские профили;
  • множество полей с настройками;
  • возможность настроить ограниченный доступ.

2. Custom Login & Access

Плагин два в одном, который вы можете приобрести за $20. Он позволяет создавать привлекательные регистрационные формы и блокировать доступ к контенту.

Особенности плагина:

  • Возможность блокировки или ограничения доступа сразу ко всему контенту или к его отдельным частям;
  • использование капчи при входе, замене пароля и в других случаях;
  • ограничение доступа к консоли администратора в зависимости от ролей пользователей;
  • система редиректа при входе и выходе.

3. Modal Login Register

Простенький плагин, имеющий красивый дизайн и настройки для разных форм: регистрации, входа, восстановления пароля и др. Лицензия на него стоит $15.

Особенности плагина:

  • Редирект при входе на определённый URL-адрес;
  • настройка стиля и цвета форм;
  • виджет для формы входа.

4. Custom Login Page

Плагин за $17, позволяющий легко настраивать форму входа.

Особенности плагина:

  • Отзывчивые шаблоны;
  • интеграция бесплатных тем;
  • возможность добавления настраиваемого логотипа.

5. Captcha Plus

Относительно дешёвый плагин, стоимостью всего $15, заточенный на безопасность. Встроенный фильтр убережёт ваш сайт от всевозможных ботов и хакеров.

Поля формы имеют дополнительное окно, в котором авторизующийся пользователь должен произвести несложное арифметическое действие и ввести полученный результат.

6. Layered Popups

Плагин работает в связке с Login Box, представленным ниже, который используется в качестве дополнения. Такая связка обеспечивает широкий функционал для всплывающих форм.

Особенности плагина:

  • Появление всплывающих форм при различных действиях – загрузке, клике, прокрутке, выходе, режиме простоя;
  • 150 шаблонов;
  • формы для различных систем маркетинга.

7. Login Box

Как уже сказано выше, данный плагин работает в качестве расширения для Layered Popups. Стоит он всего $7, в то время как цена основного плагина составляет $22.

8. 5sec Google Authenticator

Особенности плагина:

10. Loginstyle

Этот плагин оправдывает своё название. Всего за $19 вы получите замечательные стильные формы.

Особенности плагина:

  • Гибкие настройки стиля;
  • 600+ шрифтов Google;
  • добавление фона к видео;
  • настраиваемый пользовательский логотип.

11. reCAPTCHA Addon

Этот аддон используется в качестве расширения для Smart Security Tools. Как можно понять из названия, аддон добавляет рекапчу в формы регистрации. Стоит он $15.

12. Modal Login

Плагин обладает мощным функционалом, позволяющим задать стиль модального окна с формой регистрации. За лицензию вам придётся заплатить $15.

Особенности плагина:

  • Наличие фонового изображения;
  • возможность настраивать прозрачность;
  • редирект пользователя при входе.

13. Login Limit Addon

Это также аддон для Smart Security Tools. Оправдывая своё название, он ограничивает число неудавшихся попыток входа заданным значением. Цена – $15.

Особенности плагина:

  • Блокировка по имени пользователя;
  • ограничение числа попыток входа;
  • другие различные ограничения при входе.

14. WordPress Login Themes

Плагин позволяет улучшить встроенную систему авторизации WordPress. Используя его, можно настроить цвет для формы и для фона, добиваясь соответствия формы дизайну сайта. За лицензию придётся заплатить $14.

15. WP Login Plus

Поддерживает дополнительные функции для различных форм. Заплатить вам придётся $10.

Особенности плагина:

  • Возможность убрать функцию запоминания пользователя;
  • возможность убрать функцию восстановления пароля;
  • возможность авторизации по идентификатору пользователя;
  • использование сообщений.

16. PopForms

Позволяет использовать всплывающие формы, оформленные в стиле Material Design. Поддерживает настраиваемое модальное окно с формами входа, восстановления пароля и обращения к администратору. Цена лицензии – $18.

17. Grid Locker

Плагин служит для дополнительной защиты форм. Его работа похожа на работу Android Swipe. При авторизации используется система графических элементов с уникальным рисунком, что значительно облегчает работу с формами со смартфона или тачпада. Стоит плагин всего $7.

18. Frontend User Pro

За $21 плагин предоставляет мощный функционал для настройки членской подписки.

Особенности плагина:

20. Profile Builder

Позволяет заменить встроенные формы для входа и восстановления пароля. Поддерживает управление профилями участников из фронтенда. Стоит $16.

Особенности плагина:

  • Визуальный конструктор форм;
  • настраиваемый редирект пользователей;
  • поддержка WPML;
  • возможность скрыть панель администратора.

21. User Signup for Arforms

Это также всего лишь дополнение для плагина WordPress Form Builder. За $14 вы получите мощный конструктор форм для регистрации участников.

Особенности плагина:

  • Управление профилями из фронтенда;
  • интеграция формы входа и выхода;
  • поддержка BuddyPress.

Вместо послесловия

Мы закончили обзор плагинов, позволяющих расширить функциональность формы авторизации пользователей. Может быть, у вас уже имеется опыт работы с подобными плагинами. Напишите об этом в комментариях.

Всем привет. Многие, кто заинтересовался вопросом возможности создания красивой формы регистрации для WordPress , изначально видели убогость родного варианта.

С точки зрения , отсылать на страницу где нудно ввести адрес почты, получить на него пароль, а затем уже отредактировать профиль – неудобно. Куда проще ввести нужные данные и спокойно войти.

В частности не стоит усложнять жизнь человеку такой надоедливой необходимостью как подтверждение регистрации. Если на этот вопрос смотреть с точки зрения , то такую систему понять можно.

Пароль генерируется автоматически и исключает создание пользователем слабого пароля, а подтверждения регистрации спасает от спаммеров.

Виновник сегодняшней статьи, прекрасно сочетает в себе весь этот функционал и предоставляет возможность полностью управлять ими. Встречайте плагин для создания формы регистрации в WordPress – Profile Builder .

Плагин распространяется в двух вариантах бесплатная версия и версия «Profile Builder Pro». Бесплатная версия плагина дает вам четыре основных шорткода для создания следующих страниц:

  • – форма входа удобно для размещения в сайдбаре.
  • – создание формы регистрации.
  • – редактирование профиля (для авторизованных пользователей).
  • – страница формы восстановления пароля.

Шорткод – в WordPress это строчка аналог BB кодов на форумах. Принцип работы простой. Вы вписываете шорткод в том месте, где вам нужно вывести определенную информацию. Плагин, которому принадлежит шорткод, находит его в тексте и выводит там информацию. Пример использования шорткода в сайдбаре сайта:

Настройка плагина Profile Builder

Ссылку давать на плагин не буду, проще будет найти в репозитории самого WordPress. Так как статья может устареть, а плагин будет обновляться, поэтому лучше качать свежую версию. Настройки плагина хранятся в разделе «Пользователи»:

На странице настройки плагина все интуитивно понятно и прокомментировано. Запутаться будет трудно. Я рассмотрю вкладку «Стандартные поля». В этой вкладке перечислены все доступные поля для формы регистрации. Совет: не используйте больше количество полей. Оптимально использовать следующие поля: ввод имени, никнейма, e-mail и пароля.

Как вы видите, основные поля разделены по категориям имя, контактные данные, о себе. Помимо категорий таблица разделена на три колонки. Первая колонка содержит название поля. Вторая колонка под названием статус, имеет две позиции – скрывать или показывать поле. Именно этот параметр отвечает за отображение поля в форме регистрации .

Третья таблица также имеет две позиции и предлагает вам установить заполнения поля обязательным или наоборот. Запомните, чем меньше обязательных полей для заполнения, тем больше шансов, что человек зарегистрируется.

В разделе «Общие настройки» можно включить или отключить подтверждение регистрации по почте, настроить способ авторизации пользователя (по логину или никнейму), а так же задать страницу, куда будет перенаправлен подтвердивший регистрацию пользователь. Выбирается из списка созданных страниц. Например, можно отправить на страницу с правилами сайта.