Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   вопрос новичка:ссылка на страницу регистрации sr_feuserregister (http://forum.typo3.ru/showthread.php?t=9108)

sven 26.12.2010 14:39

вопрос новичка:ссылка на страницу регистрации 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);

Подскажите, пжл, в какую сторону копать?

sven 28.12.2010 03:53

Выкрутился через CSS - поставил ссылку на регистрацию в нужное место. Но сдается мне это некрасиво чуть менее чем полностью. Гораздо красивее было бы поставить в шаблоне felogin'а маркер и заполнить его ссылкой на регистрацию, которую получить у sr_feuserregister. Так что буду благодарен за подсказку как это сделать.

Андрей Аксенов 29.12.2010 13:04

Посмотри, как сделано у меня - 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 = &nbsp;|&nbsp;
                }

                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 = Добро пожаловать,&nbsp; | &nbsp;|&nbsp;

                # 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 = *]) все ссылки на страницы авторизации и регистрации убираются, вместо этого прописывается Добро пожаловать пользователь и дается ссылка на выход из авторизации...
Ну а какое расширение использовать для авторизации - по усмотрению...

sven 31.12.2010 11:33

Андрей, огромное спасибо за подробный ответ!
У меня сейчас вот так сделано. Пример помог разобраться с тем как сделать ссылку на регистрацию - переделаю в более красивый TS-вариант!

С новым годом!


Часовой пояс GMT +4, время: 10:28.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot