Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
|
26.12.2010, 14:39 | #1 |
Новенький
Регистрация: 25.12.2010
Сообщений: 5
|
вопрос новичка:ссылка на страницу регистрации sr_feuserregister
Уважаемые мастера!
Не могу решить простую (наверное) задачу, так как не особо силен в 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); Подскажите, пжл, в какую сторону копать? |
28.12.2010, 03:53 | #2 |
Новенький
Регистрация: 25.12.2010
Сообщений: 5
|
Выкрутился через CSS - поставил ссылку на регистрацию в нужное место. Но сдается мне это некрасиво чуть менее чем полностью. Гораздо красивее было бы поставить в шаблоне felogin'а маркер и заполнить его ссылкой на регистрацию, которую получить у sr_feuserregister. Так что буду благодарен за подсказку как это сделать.
|
29.12.2010, 13:04 | #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 = *]) все ссылки на страницы авторизации и регистрации убираются, вместо этого прописывается Добро пожаловать пользователь и дается ссылка на выход из авторизации... Ну а какое расширение использовать для авторизации - по усмотрению... |
31.12.2010, 11:33 | #4 |
Новенький
Регистрация: 25.12.2010
Сообщений: 5
|
Андрей, огромное спасибо за подробный ответ!
У меня сейчас вот так сделано. Пример помог разобраться с тем как сделать ссылку на регистрацию - переделаю в более красивый TS-вариант! С новым годом! |