![]() |
Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
|
|
#1 |
|
Новенький
Регистрация: 25.12.2010
Сообщений: 5
|
Уважаемые мастера!
Не могу решить простую (наверное) задачу, так как не особо силен в TS и PHP. Хочу на странице рядом с кнопкой "логин" в форме регистрации (использую sysext "felogin") разместить ссылку на регистрацию нового пользователя. Весь сервис по регистрации мне дает расширение sr_feuserregister. Размещая на странице элемент контента с этим расширением сразу под элементом контента "loginform" я получаю нужную мне ссылку, но она располагается ниже (под ссылкой восстановления пароля). Оба расширения используют темплейты. Если добавить в шаблон felogin'а маркер, в который подставляет ссылку sr_feuserregister и этот же шаблон "скормить" этому расширению (через plugin.tx_srfeuserregister_pi1.templateFile = ...) то ссылка все равно выведется после всего что выводит felogin (что наверное логично). Пробовал в php felogin'а дописать обработку нового маркера для ссылки на страницу регистрации, но получить адрес самой ссылки не могу, так ее генерирует srfeuserregister, а получить доступ к нему из php felogin'а не получается. Сдается мне что я в какие-то дебри лезу и как-то проще должно все решаться, например из TS обрабатывать маркер, заполняя его ссылкой на регистрацию, но srfeuserregister никакого сервиса по предоставлению адресов ссылок не дает. Или в скрипте felogin получить доступ к имеющемуся объекту srfeuserregister у него спросить ????->urlObj->get('', ????->controlData->getPid('register').','.$GLOBALS['TSFE']->type, $vars, $unsetVars); Подскажите, пжл, в какую сторону копать? |
|
|
|
|
|
#2 |
|
Новенький
Регистрация: 25.12.2010
Сообщений: 5
|
Выкрутился через CSS - поставил ссылку на регистрацию в нужное место. Но сдается мне это некрасиво чуть менее чем полностью. Гораздо красивее было бы поставить в шаблоне felogin'а маркер и заполнить его ссылкой на регистрацию, которую получить у sr_feuserregister. Так что буду благодарен за подсказку как это сделать.
|
|
|
|
|
|
#3 |
|
Senior Member
|
Посмотри, как сделано у меня - http://вебдизайн.гепарт.рф/
(вверху страницы). Нужно примерно так? Тогда вот TS код шаблона: Код:
### top nagivation
header.20 = COA
header.20.stdWrap.wrap = <div class="topNav"> | </div><div class="clearOnly"></div>
header.20.stdWrap.required = 1
header.20.10 = COA
header.20.10 {
stdWrap.wrap = <div id="login">|</div>
stdWrap.required = 1
10 = COA
10 {
20 = TEXT
20 {
# Only show the login link if there's a valid page to link to
if.isTrue = {$loginPID}
if.isTrue.insertData = 1
value = Авторизация
typolink.parameter = {$loginPID}
typolink.additionalParams = &return_url={getIndpEnv : REQUEST_URI}
typolink.additionalParams.insertData = 1
}
30 = TEXT
30 {
# Only show the login link if there's a valid page to link to
if.isTrue = {$loginPID}
if.isTrue.insertData = 1
value = |
}
40 = TEXT
40 {
# Only show the registration link if there's a valid page to link to
if.isTrue = {$registerPID}
if.isTrue.insertData = 1
value = Регистрация
typolink.parameter = {$registerPID}
typolink.additionalParams = &tx_srfeuserregister_pi1[cmd]=create
}
}
}
[loginUser = *]
header.20.10.10 >
header.20.10.10 = COA_INT
header.20.10.10 {
10 = TEXT
10 {
data = TSFE:fe_user|user|first_name // TSFE:fe_user|user|username
wrap = Добро пожаловать, | |
# Only show the edit link if there's a valid page to link to
typolink.if.isTrue = {$registerPID}
typolink.if.isTrue.insertData = 1
typolink.parameter = {$registerPID}
typolink.additionalParams = &tx_srfeuserregister_pi1[cmd]=edit
}
20 = TEXT
20 {
value = Выйти
typolink.parameter.data = TSFE : id
typolink.addQueryString = 1
typolink.addQueryString.method = GET
typolink.additionalParams = &logintype=logout
}
}
Определяем массив объектов для top nagivation <div class="topNav">. В данном случае в этом массиве находятся объект для перехода к авторизации, регистрации и поиск по сайту (часть для поиска я здесь не привожу...) Объект header.20.10 этого массива как раз отвечает за авторизацию и регистрацию - его помещаем в <div id="login">|</div>... Здесь даем две ссылки на страницу Авторизации и Регистрации, определяемых значением констант loginPID и registerPID, соответственно. Если эта константа определена в TS константах шаблона, то ссылка выводиться, если нет - то не выводится (if.isTrue = {$loginPID/$registerPID}). Сами константы определяют ID страниц авторизации и регистрации... Далее. При авторизации пользователя ([loginUser = *]) все ссылки на страницы авторизации и регистрации убираются, вместо этого прописывается Добро пожаловать пользователь и дается ссылка на выход из авторизации... Ну а какое расширение использовать для авторизации - по усмотрению... |
|
|
|
|
|
#4 |
|
Новенький
Регистрация: 25.12.2010
Сообщений: 5
|
Андрей, огромное спасибо за подробный ответ!
У меня сейчас вот так сделано. Пример помог разобраться с тем как сделать ссылку на регистрацию - переделаю в более красивый TS-вариант! С новым годом! |
|
|
|