3407  1

#joomla[faq] :: динамические данные (%s) в языковых константах

В этой небольшой статье мы рассмотрим вопрос, как правильно вставлять динамические данные в языковые константы CMS Joomla!

#joomla[faq] :: динамические данные (%s) в языковых константах

Давайте сначала рассмотрим простой случай: нужно вставить одно динамическое значение в языковую константу. Например, в зависимости от того, сколько символов мы разрешаем вносить пользователю в поле textarea, нам нужно вывести в форму, сколько символов осталось до максимального количества разрешенных символов:

N_CHARACTERS_REMAINING="Осталось <span>%s</span> символов."

В этом случае в коде, чтобы вместо %s подставилось нужное значение, нужно прописать что-то типа:

JText::sprintf('N_CHARACTERS_REMAINING', $remainingValue);

…где:

  • N_CHARACTERS_REMAINING – языковая константа;
  • $remainingValue – значение, которое нужно вставить в языковую константу.

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

Языковая константа в этом случае может выглядеть следующим образом:

COM_USERS_EMAIL_REGISTERED_WITH_ACTIVATION_BODY="Здравствуйте, <strong>%s</strong>.<br /><br />Благодарим вас за регистрацию на сайте <strong>%s</strong>. Ваша учётная запись создана, но должна быть активирована прежде, чем вы сможете ею воспользоваться.<br />Чтобы активировать учётную запись, перейдите по ссылке ниже, или скопируйте её в адресную строку браузера:<br /><br /><a href=\"%s\">%s</a> <br /><br />После активации вы сможете входить на сайт <a href=\"%s\">%s</a> с помощью указанных ниже логина и пароля:<br />Логин: <strong>%s</strong><br />Пароль: <strong>%s</strong>"

Соответственно, нам нужны следующие переменные для вставки в эту языковую константу:

  1. Имя пользователя;
  2. Название сайта;
  3. Ссылка с кодом активации профиля пользователя;
  4. Снова ссылка с кодом активации профиля пользователя;
  5. Домен сайта;
  6. Снова название сайта;
  7. Логин пользователя;
  8. Пароль пользователя.

Тогда код тела сообщения может выглядеть следующим образом:

$body = JText::sprintf('COM_USERS_EMAIL_REGISTERED_WITH_ACTIVATION_BODY',
    $userName,
    $fromName,
    $activationLink,
    $activationLink,
    $serverUrl,
    $fromName,
    $userUsername,
    $userPassword
);

Если вам понравилась эта статья – комментируйте, делитесь в социальных сетях (кнопки «Поделиться» слева страницы).

Удачи, Мира и Добра!

Если вы уже зарегистрированы на этом сайте, или уже оставляли здесь свои комментарии, отзывы, заявки на участие в акциях, чтобы добавить ещё один комментарий – авторизуйтесь

Добавить комментарий

Комментарии


«ArtInWeb.biz»
  • #31

UA :: У коментарях ви можете щось додати або уточнити, у т.ч. поділитися вашим кодом.


RU :: В комментариях вы можете что-то добавить или уточнить, в т.ч. поделиться вашим кодом.


EN :: In comments you can add or clarify something, including share your code.


© «ArtInWeb.biz» – веб-разработка полного цикла

Последний раз редактировалось: 03/04/2020