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

+21
2.37K
Из серии мелочь, но приятно.

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

Где то над:

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

ставим это

  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 ставим это

  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

Иллюстрация
+1
deltas deltas 8 лет назад #
ха, чудненько))
Только лучше все таки наверное что то типа $("#pagelink").text(value); и <span id="pagelink" style="font-size:16px; color: green; font-weight:bold"></span>
а то мало ли какой шаблон у людей (хотя и <b> уже вроде не в моде)...
+1
Нил™ Нил™ 8 лет назад #
Вы правы. Что то я упустил)) В исходном варианте скрипта, вообще событие вешалось на span
0
Нил™ Нил™ 8 лет назад #
Поправил. Спасибо.
0
Сергей Сергей 8 лет назад #
А как сделать такое для второй ветки?
0
Андрей Андрей 8 лет назад #
Нил, благодарю, только ставить надо второй блок под

Код 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. <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>
а вот с адресом сайта, наверное, было бы полезно решить автоматическое заполнение строчки, а не ручной вариант...
есть возможность реализовать через вывод какой нибудь переменной? как то в таком формате:

Код PHP:
  1. Адрес вашей: http:// {$site} /users/ ...
0
Андрей Андрей 8 лет назад #
Делаем красиво:

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

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. <!-- Доработка Нила и Странника. Показывает адрес профиля будущего пользователя. Конец -->
Все, теперь при регистрации автоматически заполняется и показывается адрес регистрирующегося пользователя.
А мы не заморачиваемся по поводу корректного адреса сайта и мультиязычности
+1
Андрей Андрей 8 лет назад #
Страннику особая благодарность за помощь в работе с переменными!
+1
Странник Странник 8 лет назад #
Ну, мое участие в этом хаке минимально))) я только одну строчку во фронтэнд добавил)))
+2
Андрей Андрей 8 лет назад #
твои десяток минут и одна строчка позволили получить универсальное решение, так что не принижай свое участие...
0
Нил™ Нил™ 8 лет назад #
Ну я то считаю этот пост абсолютно завершенным и решение рабочим, но разумеется, никто не запрещает кому то улучшать его)
По поводу "автоматизации" ввода адреса сайта, я думаю - пустое это.
Адрес сайта величина постоянная, каждый день не меняется. Проще и логичнее вписать его тут же, в шаблоне, чем лезть еще в файлы компонента.
Чего ради затрагивать больше файлов, тратить больше времени? Не вижу смысла.) Ну если кому так так интереснее и спокойнее, тоже нет проблем)
0
Андрей Андрей 8 лет назад #
Нил, все верно, когда речь идет об одном сайте.
Но я запускаю сайты с периодичностью, и у меня есть сборка, в которую с складываю все доработки кода и приятности.
Поэтому для таких как я будет проще включить в свой дистрибутив универсальное решение, и не мучить мозг, чтобы запомнить, где и что менять.

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

Еще от автора

Капча на сайт или разделы сайта
Если нужно, закрыть весь сайт или некоторые его разделы каптчей.
Пинг поисковых систем для первой ветки
Небольшая интеграция инструментов для пингования, чтобы сделать его чуть удобнее
Генератор карты сайта в формате txt на лету без крона
Вообще то где то тут уже есть вполне рабочие генераторы карты для первой ветки, но этот вариант тоже имеет право быть.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.