Из этого туториала вы узнаете, как разрешить регистрацию пользователей на сайте Joomla 3.x и управлять ею.

Если вы хотите дать посетителям сайта возможность регистрироваться для получения дополнительного доступа к материалам сайта, вы можете сделать это, следуя пошаговой инструкции:

    Разрешите общую регистрацию. Откройте панель управления Joomla и перейдите в раздел Система (System) > Общие настройки (Global Configuration) > Менеджер пользователей (Users Manager) > Компонент (Component) > Разрешить регистрацию пользователей (Allow User Registration) . Установите значение Да (‘YES’) и сохраните изменения:

    Опубликуйте модуль Входа на сайт (Login). Перейдите в раздел Расширения (Extensions) > Менеджер модулей (Module manager) > Форма входа на сайт (Login Form ) и нажмите кнопку «Включить»(‘Enable’) для того, чтобы активировать модуль.

    Опубликуйте кнопку входа на сайт. Перейдите в раздел Меню (Menus) > Меню пользователей (User Menu) > Вход (Login). Включите ее.

    Добавьте пункт меню для регистрации пользователей. Перейдите в раздел Меню (Menus) > Меню пользователей (User Menu) > Создать (Add New) . Укажите заголовок новой кнопки меню. Перейдите в Тип пункта меню (Menu Item Type) > Выбрать (Select) > Менеджер пользователей (Users Manager) > Форма регистрации (Registration Form) . Во вкладке «Оформление шаблона»(‘Template Style’) выберите theme####-Default и сохраните изменения:

Теперь обновите сайт, кнопки входа на сайт (Login) и регистрации (Registration) успешно добавлены.

Насколько хорошо вы знаете Joomla? Давайте проверим! В данной статье я собрал 10 особенностей этой CMS, о которых знают далеко не все. Прочитайте статью, а затем напишите в комментариях, сколько из пунктов были вам известны, например «6/10». Я уверен, что «10/10» наберут далеко не все. А особенности действительно интересные!

1) Скрытые страницы регистрации и авторизации в Joomla

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

Главный фокус в том, что даже если вы не показываете пользователям ссылку на страницу регистрации, опытный человек, знакомый с Joomla, сможет попасть на нее. Как? Очень просто:

  • php?option=com_users&view=registration – форма регистрации
  • php?option=com_users&view=login – форма авторизации

Эта особенность Joomla часто используется нечистыми на руку людьми для рассылки странного вида спама. Спам приходит через форму регистрации. Т.е. через нее робот регистрирует якобы пользователей, подставляя вместо имени спам-текст:

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

Если с регистрацией всё просто, то с авторизацией сложнее. Вы можете убрать с сайта модуль ввода логина и пароля, но это не избавит вас от страницы с формой авторизации, описанной выше. Она стандартная, а значит, каждый пользователь может ее открыть и попытаться подобрать логин и пароль администратора. Логин обычно никто не меняет. Остается только подобрать пароль перебором. Если ваш сайт не слишком ценен, то вряд ли кто-то будет морочить себе этим голову. А вот если на сайте есть ценная информация, то злоумышленники могут и поработать с ним.

Как защититься от подбора пароля? Есть несколько вариантов. Самый простой – переопределить макет страницы index. php? option= com_ users& view= login в используемый шаблон Joomla и удалить из него форму ввода логина и пароля. Другой вариант – использовать Wedal Recaptcha Login , который будет показывать капчу после нескольких неудачных попыток авторизации.

Не забывайте про эти стандартные страницы в Joomla.

2) Неизменность файлов. htaccess, robots. txt, web. config. txt и необходимость их ручного обновления

В Joomla есть одна интересная особенность. Когда вы обновляете сайт до новой версии, например, переходите с Joomla 2.5 на Joomla 3, файлы . htaccess , robots. txt , web. config. txt не обновляются вместе со всеми остальными, хотя в них могут быть изменения.

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

Вообще-то, после установки обновлений Joomla, появляются сообщения с информацией об этих файлах. Но кто читает эти сообщения =)

3) Отдельная страница в Joomla с уникальным макетом/кодом

Моя любимая особенность. Я пользуюсь ей очень часто, и очень часто она сильно выручает.

Многие знают, что в Joomla есть так называемый макет для печати. Это файл component. php , который находится в корне используемого шаблона сайта. Суть этого файла сводится к тому, чтобы показать только выдачу компонента на странице, убрав с нее шаблон и модули (шапку, подвал, колонки, и др., оставив только контент).

Чтобы воспользоваться этим макетом, необходимо добавить к URL «? tmpl= component » или «& tmpl= component », если вопросик уже стоит в URL раньше.

Если стандартная страница выглядела, скажем, так:

То после добавления к URL данной конструкции, будет:

Вообще, фокус с «tmpl=component» довольно известный. Здесь ничего интересного. Но я вот пошел дальше. Кто сказал, что мы должны использовать эту особенность строго по назначению? Следите за руками:

  • Копируем файл component. php в корне шаблона Joomla .
  • Изменяем его название, на скажем, myscript. php , и размещаем там же, в корне шаблона.
  • Пишем в файле myscript. php любой код или верстаем любую страницу, которая нужна нам на сайте, но которая не попадает под стандарт Joomla, например, делаем или вставляем готовый калькулятор чего-либо.
  • Открываем любую страницу сайта, добавляя в URL параметр с нашим макетом, например: mysite. ltd/? tmpl= myscript
  • Страница загружается и код выполняется. При этом в файле myscript. php будут работать все особенности фреймворка Joomla, будут доступны все позиции модулей и компонент – в общем, всё то, что есть в шаблоне Joomla.

Это очень удобно. В этом файле можно также получать и разбирать параметры URL, не забывая, конечно, фильтровать их на входе. Используя такой подход, вы можете легко интегрировать в Joomla сторонний скрипт, вы можете получать и разбирать любые данные для AJAX-запросов из базы данных, вы можете делать практически всё, что только пожелаете. Главное – не забывайте про безопасность.

4) Собственное меню в админке

А вы знали, что существует возможность создать свое собственное меню в админке Joomla. В нем могут быть любые пункты, а не те, которые есть в стандартном меню. Вы можете заменить им стандартное меню и показывать только то, что действительно необходимо:

А вам слабо? =)

Делается это довольно легко, хотя и со своими тонкостями. Вы можете создать меню администратора в том же менеджере меню, где создаете и все остальные меню, уж простите за тавтологию. Далее – точно также публикуем его в модуле, но только в модуле админки , в позиции «menu ». В результате получаем свое собственное меню.

5) Встроенный менеджер перенаправлений

Про эту особенность вы должны знать, но всё же расскажу. Если вам нужно настроить перенаправление (редирект) с одной страницы на другую, не обязательно лезть в код. В Joomla существует довольно неплохой инструмент, позволяющий создавать редиректы через админку. Он называется «Менеджер перенаправлений » и доступен в админке по умолчанию в «Компоненты –> Перенаправление ». Выглядит он примерно так:

Менеджер перенаправлений Joomla выполняет несколько полезных функций:

  • Собирает все запросы к сайту, которые вернули ошибку 404, и показывает, сколько было обращений по каждому такому запросу – так вы можете увидеть, какие страницы были запрошены посетителями, но не были загружены по какой-то причине.
  • Позволяет настраивать перенаправления как для страниц, собранных в п.1, так и собственные, уникальные перенаправления.
  • Позволяет массово импортировать перенаправления на сайт. Т.е. вы можете создать их в Excel, а затем легко загрузить в менеджер.

Эта очень полезная и удобная функция Joomla. Я часто ей пользуюсь, особенно при миграции сайтов с Joomla 1.5 на свежую версию. Обычно в таких миграциях URL страниц сайта изменяются, но благодаря менеджеру перенаправлений удается сохранить посетителей сайта.

6) Одновременная авторизация фронденд-админка.

Довольно новая «фишка» в Joomla. Позволяет одновременно проходить авторизацию и на сайте и в админке (и наоборот).

По умолчанию в Joomla отдельная авторизация. Т.е. авторизация на сайте отдельно, в админке – отдельно. Если вам это не по душе и хочется вводить логин и пароль только один раз, то это возможно. Перейдите в Общие настройки –> Вкладка «Система» –> Опция «Общие сессии» . Активируйте эту опцию. Авторизовываться и выходить можно будет только один раз для всего сайта.

7) Установка требований к сложности пароля для пользователей при регистрации

Готов поспорить, вы не знали, что это возможно =). Я вот раньше не знал, а оно есть!

Вы можете зайти в общие настройки Joomla, выбрать раздел «Пользователи» , перейти на вкладку «Параметры пароля» и увидеть необходимые настройки:

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

8) Изменение пути к каталогу с изображениями в медиа-менеджере

По умолчанию все изображения в Joomla хранятся в папке images , расположенной в корне сайта. Эта же папка открывается в медиа-менеджере, когда вы хотите выбрать или загрузить изображение. Вроде бы всё хорошо, но мир неидеален.

Бывает, что эта особенность прямо очень сильно мешает. Когда? Тогда, когда нужное вам изображение лежит, например, в папке images шаблона сайта, или же изображения хранятся где-то в стороннем компоненте, разработчики которого как-то не сообразили хранить их там, где нужно. Бывает? Бывает. Что делать в этом случае?

Всё просто. Переходим в Общие настройки Joomla , открываем раздел «Медиа-менеджер» и видим в нем настройки. Здесь нас интересуют две опции:

  • Путь к каталогу с файлами
  • Путь к каталогу с изображениями

Заменяем их значения на «/ »:

После этого видим в медиа-менеджере все каталоги:

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

9) Сбор статистики поиска в Joomla

Обычно на сайте используется форма поиска. Иногда очень интересно узнать, что же всё-таки люди в ней ищут. Стандартный поиск Joomla дает такую возможность. Вы можете собирать статистику всех запросов в форме поиска на сайте, а затем анализировать ее. Для этого переходим в Общие настройки Joomla , раздел «Поиск » и активируем опцию «Собирать статистику поиска ». После этого нужно зайти в «Компоненты –> Поиск », где вы увидите собранную статистику:

10) Полное кэширование страниц Joomla + браузерное кэширование

Думаю, многие уже знают про эту особенность, но есть в ней и кое-что новое.

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

Ок. Но что, если у вас сайт-визитка в пять страниц, и без какого бы то дополнительного функционала? Для вас главное – скорость загрузки. Для таких ситуаций в Joomla есть плагин Система – Кэш . Вы можете найти его в менеджере плагинов Joomla. Он позволяет кэшировать страницу целиком. По умолчанию он выключен. Если вы включите его, то все страницы сайта будут кэшироваться полностью. Что это значит? Это значит, что ваш сайт будет отдавать пользователям уже готовые html-страницы, не тратя время на их повторную генерацию. Это может значительно ускорить загрузку страниц, особенно, если используется медленный хостинг. Другим плюсом станет снижение нагрузки на хостинг – ведь генерировать ничего не требуется.

Ранее были внесены изменения в файлы.

копируем из

components/com_users/views/registration/tmpl/ в
templates/protostar/html/com_users/registration/ файлы

default.php и default.xml и меняем им названия, к примеру на approval.php и approval.xml

approval.php

// здесь большое количество кода // .....

params->get("show_age_checkbox")):?>

" title="">

approval.xml

Добавлены языковые замещения

language/overrides/en-GB.override.ini

MY_NEW_REGISTRATION="Registration form with additional fields" TERMS_OF_SERVICE="Terms of service" AGREE="I agree to the terms of use" AGE="I am at least 18 years old"

language/overrides/ru-RU.override.ini

MY_NEW_REGISTRATION="Регистрационная форма с дополнительными параметрами" TERMS_OF_SERVICE="Условия обслуживания" AGREE="Я согласен с условиями обслуживания" AGE="Мне уже есть 18 лет"

administrator/language/overrides/en-GB.override.ini

MY_NEW_REGISTRATION_TITLE="Registration form with additional fields" SHOW_AGE_CHECKBOX="Show Age Checkbox" SHOW_AGE_CHECKBOX_DESCRIPTION="Show or hide the age checkbox" AGE_CHECKBOX_DESCRIPTION_HIDE="Hide" AGE_CHECKBOX_DESCRIPTION_SHOW="Show"

administrator/language/overrides/ru-RU.override.ini

MY_NEW_REGISTRATION_TITLE="Регистрационная форма с дополнительными параметрами" SHOW_AGE_CHECKBOX="Показывать подтверждение
возраста при регистрации" SHOW_AGE_CHECKBOX_DESCRIPTION="Показывать / скрывать подтверждение возраста при регистрации" AGE_CHECKBOX_DESCRIPTION_HIDE="Скрыть" AGE_CHECKBOX_DESCRIPTION_SHOW="Показать"

Для отправки в суперглобальный массив переменных $_REQUEST методом POST значений полей формы необходимо, чтобы у каждого поля был уникальный атрибут name . Дополним поля флажков данным атрибутом в файле approval.php

params->get("show_age_checkbox")):?>

Теперь перейдем собственно к созданию самого плагина.

Назовем его myregistration . Создадим для него папку plugins/user/myregistration , в ней файлы myregistration.php и myregistration.xml . Не забываем про заглушку index.html

myregistration.xml

plg_user_myregistration March 2012 admin//dog//joomla.org www.joomla.org 2.5.0 PLG_USER_MYREGISTRATION_XML_DESCRIPTION myregistration.php index.html language

myregistration.php

isSite()){ return true; } // загружаем файл языковой поддержки $this->loadLanguauge(); $result = true; // проверить, установлен ли флажок согласия с условиями обслуживания if (!JRequest::getBool("tos_agree")){ JError::raiseWarning(1000, JText::_("PLG_USER_MYREGISTRATION_TOS_AGREE_REQUIRED")); $result = false; } // проверить установку флажка на подтверждение достижения 18 лет if (!JRequest::getBool("old_enough")) { JError::raiseWarning(1000, JText::_("PLG_USER_MYREGISTRATION_OLD_ENOUGH_REQUIRED")); $result = false; } return $result; } }

Имя класса указываем в соответствии с принятыми обозначениями

plgUserMyRegistration

plg (подключаемый плагин), User (пользовательский тип подключаемого плагина), MyRegistration (название плагина). Этот класс расширяет класс JPlugin .

У данного класса имеется один метод, обозначаемый по имени обрабатываемого события - onUserBeforeSave() . Данное событие инициируется при попытке сохранить данные нового пользователя в админке или зарегистрировать его в пользовательской части.

JRequest::getBool() вызывается для получения элемента ввода tos_agree или old_enough из суперглобальной переменной $_REQUEST языка PHP. Возвращает false или true .

JError::raiseWarning() - вывод ошибки. В качестве аргументов указываются: код ошибки и текст ошибки. В данном случае код не используется и может быть любым, а текст выводим из файла языковой поддержки плагина.

Файлы языковой поддержки

Предпочтительно создавать их в папке с плагином.Русскоязычные должны быть в кодировке UTF-8 без BOM - иначе система их не подхватит.

Первые предназначены для всех переменных, которые используются на фронте и для вывода настроек самого плагина
plugins\user\myregistration\language\en-Gb\en-Gb.plg_user_myregistration.ini
plugins\user\myregistration\language\ru-RU\ru-RU.plg_user_myregistration.ini

Вторые используются для вывода названия плагина в менеджере плагинов и вывода сообщения после установки расширения
plugins\user\myregistration\language\en-Gb\en-Gb.plg_user_myregistration.sys.ini
plugins\user\myregistration\language\ru-RU\ru-RU.plg_user_myregistration.sys.ini

en-Gb.plg_user_myregistration.ini

PLG_USER_MYREGISTRATION_TOS_AGREE_REQUIRED="You must agree to the terms of service" PLG_USER_MYREGISTRATION_OLD_ENOUGH_REQUIRED="You must be at least 18 years old"

en-Gb.plg_user_myregistration.sys.ini

PLG_USER_MYREGISTRATION="User - My Registration" PLG_USER_MYREGISTRATION_XML_DESCRIPTION="Check that the Terms and Age boxes have been checked"

ru-RU.plg_user_myregistration.ini

PLG_USER_MYREGISTRATION_TOS_AGREE_REQUIRED="Вы должны согласиться с условиями обслуживания" PLG_USER_MYREGISTRATION_OLD_ENOUGH_REQUIRED="Вам должно быть не менее 18 лет"

ru-RU.plg_user_myregistration.sys.ini

PLG_USER_MYREGISTRATION="Юзер - Моя регистрация" PLG_USER_MYREGISTRATION_XML_DESCRIPTION="Проверка на согласие с условиями обслуживания и достижения пользователем возраста 18 лет"

Полностью автономная версия плагина.

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

Имя нового плагина myregistrationall. Состоит:

forms/form.xml
language/en-Gb/en-Gb.plg_user_myregistrationall.ini
language/en-Gb/en-Gb.plg_user_myregistrationall.sys.ini
language/ru-RU/ru-RU.plg_user_myregistrationall.ini
language/ru-RU/ru-RU.plg_user_myregistrationall.sys.ini
myregistrationall.php
myregistrationall.xml

Основной myregistrationall .xml файл плагина. В разделе конфигурации установлены поля для отображения в настройках плагина

plg_user_myregistrationall Mark Dexter and Louis Landry feat Taatshi March 2012 (C) 2012 Mark Dexter and Louis Landry GNU General Public License version 2 or later; See License.txt admin//dog//joomla.org www.joomla.org 2.5.0 PLG_USER_MYREGISTRATIONALL_XML_DESCRIPTION myregistrationall.php index.html language forms

form.xml

myregistrationall.php

getName()!="com_users.registration") { return; } // Загрузить файл языковой поддержки $this->loadLanguage(); // Загрузить xml-файл в форму регистрации пользователя - обратить внимаение - вокруг FILE идет ДВОЙНОЕ ПОДЧЕРКИВАНИЕ $form->loadFile(dirname(__FILE__)."/forms/form.xml"); // Проверка установки параметра показа чекбокса для проверки возраста в настройках плагина if (!$this->params->get("show_age_checkbox", "1")) { $form->removeField("old_enough"); // Если мы захотим сделать поле подтверждения возраста необязательным, достаточно будет добавть строку: // $form->setFieldAttribute("old_enough", "requried", "false"); } } }

en-Gb.plg_user_myregistrationall.ini

PLG_USER_MYREGISTRATIONALL_TERMS_OF_SERVICE="Added Fields for Terms of Service Agreement" PLG_USER_MYREGISTRATIONALL_AGREE="I agree to the terms" PLG_USER_MYREGISTRATIONALL_AGE="I am at least 18 years old" PLG_USER_MYREGISTRATIONALL_SHOW_AGE="Show Age Checkbox" PLG_USER_MYREGISTRATIONALL_SHOW_AGE_DESC="Whether to Hide or Show the Show Age Check box. If it is shown, it will be required."

ru-RU.plg_user_myregistrationall.ini

PLG_USER_MYREGISTRATIONALL_TERMS_OF_SERVICE="Согласие с правилами обслуживания" PLG_USER_MYREGISTRATIONALL_AGREE="Я согласен с условиями обслуживания" PLG_USER_MYREGISTRATIONALL_AGE="Мне уже есть 18 лет" PLG_USER_MYREGISTRATIONALL_SHOW_AGE="Подтверждение возраста" PLG_USER_MYREGISTRATIONALL_SHOW_AGE_DESC="Показывать или скрывать чекбокс для подтверждения возраста"

en-Gb.plg_user_myregistrationall.sys.ini

PLG_USER_MYREGISTRATIONALL="User - My Registration - stand-alone" PLG_USER_MYREGISTRATIONALL_XML_DESCRIPTION="Check that the Terms and Age boxes have been checked - stand-alone"

ru-RU.plg_user_myregistrationall.sys.ini

PLG_USER_MYREGISTRATIONALL="Юзер - Моя регистрация - автономка" PLG_USER_MYREGISTRATIONALL_XML_DESCRIPTION="Проверка на согласие с условиями обслуживания и достижения пользователем возраста 18 лет - автономка"

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

Наша первая задача - найти файл компоновки данного компонента и скопировать его в соответствующую подпапку папки шаблона beez_20_copy . Регистрация пользователя пользовательской части веб-сайта происходит в компоненте com_users, а его компоновка находится в папке components/com_users/views/registration/tmpl , где хранятся четыре файла. Так, в файле default .php содержится форма регистрации пользователя, а в файле complete.php - компоновка экрана, который появляется по завершении регистрации.

Структура папок для хранения замещений компоновок компонентов аналогична структуре папок, создаваемой для хранения замещений компоновок модулей. Следовательно, нам требуется создать подпапку templates/beez_20_copy/html/<имя_компонента>/<имя_представления> . В рассматриваемом здесь примере это будет подпапка beez_20_copy/html/com_users/registration . Далее мы должны скопировать файл default.php из исходной папки components в новую папку. В итоге мы получим структуру папок.

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

Далее нам нужно убедиться в том, что выполняется файл замещенной, а не стандартной компоновки. Для этого мы можем снова добавить некоторый текст в файл замещения компоновки и проверить, что он отображается именно так, как и предполагалось. С этой целью в код, добавлен элемент разметки hi с заголовком Му User Registration Override (Мое замещение компоновки регистрации пользователя); соответствующая строка кода выделена полужирным.
Если выбрать из меню команду Home => Create an Account (Домой => Создать учетную запись), при условии, что в Joomla установлены выборочные данные, то загрузится форма регистрации пользователя. И если наш шаблон beez_20_copy определен как выбираемый по умолчанию, то видоизмененный нами файл компоновки отобразит результат.

А теперь, когда мы убедились, что все установлено правильно, можно приступать к специальной настройке файла замещения компоновки. Как упоминалось выше, в данном примере нам требуется, чтобы пользователь принял предлагаемое ему соглашение, прежде чем зарегистрироваться. Если проанализировать код в файле компоновки, то в самом его конце можно заметить определение кнопки Register (Зарегистрироваться), выделенное полужирным в листинге.

Нам нужно ввести в компоновку регистрационной формы флажок принятия соглашения перед кодом определения кнопки Register, выделенным полужирным в листинге

В приведенном ранее фрагменте кода мы ввели стандартный элемент fieldset разметки HTML-документа с пояснительной надписью и флажком. Но у обновленной регистрационной формы имеются следующие ограничения.

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

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