Показываем пользователю во время регистрации адрес его будущей страницы

1565
Из серии мелочь, но приятно.

Первая ветка. Файл шаблона com_registration.tpl

Где то над:

Код PHP:
  1. <input name="login" id="logininput" class="text-input" type="text" value="{$item.login|escape:'html'}" onchange="checkLogin()" autocomplete="off"/>

ставим это

Код PHP:
  1. {literal}<script type="text/javascript">
  2. $(function(){
  3. $("#logininput").keyup(function
  4. () { var value = $(this).val();
  5. $("#usrpl").text(value);
  6. }).keyup();
  7. });
  8. </script>{/literal}

сразу под input ставим это

Код PHP:
  1. <small style="color: green; font-size:12px;">Адрес вашей: http://site.ru/users/<b id="usrpl" style="font-size:12px; color: green; font-weight:normal"></b></small>
Теперь во время регистрации, когда пользователь вводит логин, ниже он сразу видит как будет выглядеть адрес его страницы.
Думаю, это не лишнее, так как пользователь при регистрации может не понимать, что в адресе его страницы будет виден его логин, и ввести в логин какие то данные которые он может быть предпочел бы оставить конфиденциальными: телефон, фамилия, возраст или даже пин код от кредитной карты scratch

""
Изображение уменьшено. Щелкните, чтобы увидеть оригинал.
Ограничение на просмотр контактов в объявлениях и отправка их в ответ на смс | Случайный аватар для пользователей без главного фото
Комментарии (11)
deltas 4 февраля 2016 в 02:44 +1
ха, чудненько))
Только лучше все таки наверное что то типа $("#pagelink").text(value); и <span id="pagelink" style="font-size:16px; color: green; font-weight:bold"></span>
а то мало ли какой шаблон у людей (хотя и <b> уже вроде не в моде)...
Нил™ 4 февраля 2016 в 11:17 +1
Вы правы. Что то я упустил)) В исходном варианте скрипта, вообще событие вешалось на span
Нил™ 4 февраля 2016 в 11:20 0
Поправил. Спасибо.
Сергей 14 февраля 2016 в 07:53 0
А как сделать такое для второй ветки?
Андрей 17 февраля 2016 в 07:24 0
Нил, благодарю, только ставить надо второй блок под

Код PHP:
  1. <input name="login" id="logininput" class="text-input" type="text" style="width:300px" value="{$item.login|escape:'html'}" onchange="checkLogin()" autocomplete="off"/>
  2. <span class="regstar">*</span>
  3.  
и, может быть так будет корректней

Код PHP:
  1. <div style="color: green; font-size:12px;">Адрес вашей: http://site.ru/users/<b id="usrpl" style="font-size:12px; color: green; font-weight:normal"></b></div>
  2.  
а вот с адресом сайта, наверное, было бы полезно решить автоматическое заполнение строчки, а не ручной вариант...
есть возможность реализовать через вывод какой нибудь переменной? как то в таком формате:

Код PHP:
  1.  
  2. Адрес вашей: http:// {$site} /users/ ...
  3.  
Андрей 18 февраля 2016 в 00:04 0
Делаем красиво:

Для того, чтобы выводить при регистрации адрес потенциального пользователя, нужно

1. для русского языка добавить переменную в файл /languages/ru/components/registration.php

Код PHP:
  1. $_LANG['YOUR_LOGINPAGE'] ='Адрес вашей странички';
для английского языка добавить переменную в файл /languages/en/components/registration.php

Код PHP:
  1. $_LANG['YOUR_LOGINPAGE'] ='URL your page';

2. Строка 377 файла /components/registration/frontend.php

(блок параметров после строчки

Код PHP:
  1. cmsPage::initTemplate('components', 'com_registration')->
Нужно добавить строчку

Код PHP:
  1. assign('host', $_SERVER['SERVER_NAME'])->

3. В файле

перед строчками

Код PHP:
  1. <input name="login" id="logininput" class="text-input" type="text" style="width:300px" value="{$item.login|escape:'html'}" onchange="checkLogin()" autocomplete="off"/>
  2. <span class="regstar">*</span>
нужно добавить

Код PHP:
  1. <!-- Доработка Нила и Странника. Показывает адрес профиля будущего пользователя. Начало -->
  2. {literal}
  3. <script type="text/javascript">
  4. $(function(){
  5. $("#logininput").keyup(function
  6. () { var value = $(this).val();
  7. $("#usrpl").text(value);
  8. }).keyup();
  9. });
  10. </script>
  11. {/literal}
  12. <!-- Доработка Нила и Странника. Показывает адрес профиля будущего пользователя. Конец -->
а после этих строчек

Код PHP:
  1. <!-- Доработка Нила и Странника. Показывает адрес профиля будущего пользователя. Начало -->
  2. <div style="color: green; font-size:12px;">{$LANG.YOUR_LOGINPAGE}: www.{$host}/users/<b id="usrpl" style="font-size:12px; color: green; font-weight:normal"></b></div>
  3. <!-- Доработка Нила и Странника. Показывает адрес профиля будущего пользователя. Конец -->
Все, теперь при регистрации автоматически заполняется и показывается адрес регистрирующегося пользователя.
А мы не заморачиваемся по поводу корректного адреса сайта и мультиязычности
Андрей 18 февраля 2016 в 00:06 +1
Страннику особая благодарность за помощь в работе с переменными!
Кирилл Эдуардович (Странник) 18 февраля 2016 в 00:07 +1
Ну, мое участие в этом хаке минимально))) я только одну строчку во фронтэнд добавил)))
Андрей 18 февраля 2016 в 00:08 +2
твои десяток минут и одна строчка позволили получить универсальное решение, так что не принижай свое участие...
Нил™ 18 февраля 2016 в 13:04 0
Ну я то считаю этот пост абсолютно завершенным и решение рабочим, но разумеется, никто не запрещает кому то улучшать его)
По поводу "автоматизации" ввода адреса сайта, я думаю - пустое это.
Адрес сайта величина постоянная, каждый день не меняется. Проще и логичнее вписать его тут же, в шаблоне, чем лезть еще в файлы компонента.
Чего ради затрагивать больше файлов, тратить больше времени? Не вижу смысла.) Ну если кому так так интереснее и спокойнее, тоже нет проблем)
Андрей 18 февраля 2016 в 14:58 0
Нил, все верно, когда речь идет об одном сайте.
Но я запускаю сайты с периодичностью, и у меня есть сборка, в которую с складываю все доработки кода и приятности.
Поэтому для таких как я будет проще включить в свой дистрибутив универсальное решение, и не мучить мозг, чтобы запомнить, где и что менять.

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