Как добавить дополнительные поля в уведомление администратору при регистрации нового пользователя.

1 звезда2 звезда3 звезда4 звезда5 звезда (1 голос, рейтинг: 5,00 из 5)
Loading ... Loading ...

Хотите оперативно получать новые уроки и статьи блога LAWANS.RU. Просто введите ВАШ e-mail на форме справа >>>

Привет Всем!
Давненько я постил статью Расширенная регистрация пользователя в CMS Joomla 2.5.
И вот недавно один из моих читателей попытался разобраться в следующей проблеме и попросил у меня помощи.Он спросил следующее: “На сайте регистрация одобряется вручную админом. Пользователь регистрируется, подтверждает регистрацию и ждет пока его вручную не активируют. Админу приходит письмо, в котором написано: логин пользователя, его мыло и имя. Как мне добавить в это письмо поля из профиля?”

Я посмотрел код и собственно сейчас напишу, как это можно сделать, добавив буквально несколько строк php кода.

Однако для этого придётся изменить код стандартного компонента com_users для Joomla и в последующих обновлениях нет гарантии , что это изменение может сохраниться.

Итак, добавлять код нам придётся в следующем файле \components\com_users\models\registration.php

Находим функцию public function activate($token)

И после запроса к базе:

Добавляем строку:

Здесь мы, благодаря могучему фреймворку Joomla  :smile: , получаем одной строкой все параметры нужного нам пользователя.

А дальше нам просто необходимо добавить необходимые поля в письмо, которое пойдёт админу (о том , что активировался новый пользователь).

Далее по коду найдём такой блок:

Здесь как раз идёт заполнение данными тела письма админу. Поэтому нам ещё необходимо видоизменить константу ‘COM_USERS_EMAIL_ACTIVATE_WITH_ADMIN_ACTIVATION_BODY’ в языковом файле  – \language\ru-RU\ru-RU.com_users.ini

Зайдём в этот файл и найдя там поиском строку под номером 15 (у меня по крайней мере она там):

А теперь модифицируйте ее, так как вам надо. Например, так (добавил блок Дополнительные параметры):

Где знак \n –перевод на новую строку, %s – вместо него будут подставляться данные из базы.

Теперь вернемся к переменной $emailBody. И изменим её следующим образом (добавлено 3 переменных $profile):

Замечание! Последовательность переменных от $data['sitename'] до $data['siteurl'] должна идти такая же, как и в языковом файле у переменной COM_USERS_EMAIL_ACTIVATE_WITH_ADMIN_ACTIVATION_BODY. Помните значки %s вот они как раз будут заменяться этими переменными и в такой же последовательности. Т.е если меняете очередность вывода значений в языковом файле, то следует её менять и в переменной $emailBody.

И ещё. Где брать значения полей для переменной $profile->profile?

Есть два пути из таблицы user_profiles (поле profile_key) или в файле \plugins\user\profile\profiles\profile.xml (названия полей хранятся в параметрах name)

Вот собственно и всё. Надеюсь всё рассказал понятно. Ну, а если будут вопросы, пишите в комментах.


У ВАС ведь есть ТЕЛЕФОН? Или mp3-player? А может даже планшет, ноутбук или игровая консоль!
Хочется, чтобы он был необычным и уникальным?
Заходите к нам – мы поможем.

  
  
{lang: 'ru'}

Похожие статьи

5 thoughts on “Как добавить дополнительные поля в уведомление администратору при регистрации нового пользователя.

  1. Спасибо огромное за статью! Все супер и приходит уведомления, НО столкнулся с проблемой. Есть поле с чекбоксами

    1
    2
    3

    Если мы отмечаем значение, то нами выбранный пункт в письме администратору не отображается, но если мы значение поля сменим с checkboxes на radio (то есть радиокнопки) то все значенияghb[jlzn. Никак не могу понять в чем же дело(

  2. блин( кода не видно

    field
    name=”organization”
    type=”radio”
    id=”organization”
    description=”PLG_USER_PROFILE_FIELD_ORGANIZAT_DESC”
    filter=”string”
    label=”PLG_USER_PROFILE_FIELD_ORGANIZAT_LABEL”
    message=”"
    size=”30″
    required=”true”

    option value=”Конечный пользователь”>Конечный пользователь/option
    option value=”Дилер”>Дилер/option
    /field

    • сделал доп поле через radio. Значения value вбил прямо по русски для доп поля. На почту тоже по русски эти значения и пришли.

  3. Коллеги, всем привет!
    а как связать данные к почтовому сообщению, которое отправляется админу?
    я использую ” Community Builder ” , в нем есть настройки шаблонов, которые отправляются пользователю, а вот админу нет.
    все пользователи зарегистрированы через “Community Builder ” автоматически попадают и в штатную базу пользователей джумлы.
    вот как и где мне разбить поля в почтовом сообщении для админа и для пользователя если у меня есть отдельные поля в “Community Builder” : фамилия, имя, отчество, и т д?

    Очень нужна помощь в этом вопросе.
    Заранее благодарен.

  4. Есть реферальная ссылка вида http://www.mysite.ru/?r=42. Цифра 42 – ИД пользователя владельца реферальной ссылки. Вопрос, как можно передать в дополнительное поле регистрационной формы “Ваш рефереал” эту самую цифру, т.е. ИД?

Добавить комментарий для Николай Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>