Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Обсуждение общих технических вопросов > Общие вопросы

Ответ
 
Опции темы Опции просмотра
Старый 26.12.2010, 14:39   #1
sven
Новенький
 
Регистрация: 25.12.2010
Сообщений: 5
Question вопрос новичка:ссылка на страницу регистрации 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   #2
sven
Новенький
 
Регистрация: 25.12.2010
Сообщений: 5
По умолчанию

Выкрутился через CSS - поставил ссылку на регистрацию в нужное место. Но сдается мне это некрасиво чуть менее чем полностью. Гораздо красивее было бы поставить в шаблоне felogin'а маркер и заполнить его ссылкой на регистрацию, которую получить у sr_feuserregister. Так что буду благодарен за подсказку как это сделать.
sven вне форума   Ответить с цитированием
Старый 29.12.2010, 13:04   #3
Андрей Аксенов
Senior Member
 
Регистрация: 12.04.2008
Адрес: Россия, Москва
Сообщений: 706
Отправить сообщение для Андрей Аксенов с помощью ICQ Отправить сообщение для Андрей Аксенов с помощью Skype™
По умолчанию

Посмотри, как сделано у меня - 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 = *]) все ссылки на страницы авторизации и регистрации убираются, вместо этого прописывается Добро пожаловать пользователь и дается ссылка на выход из авторизации...
Ну а какое расширение использовать для авторизации - по усмотрению...
Андрей Аксенов вне форума   Ответить с цитированием
Старый 31.12.2010, 11:33   #4
sven
Новенький
 
Регистрация: 25.12.2010
Сообщений: 5
По умолчанию

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

С новым годом!
sven вне форума   Ответить с цитированием
Ответ

Теги
felogin, sr_feuserregister


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


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


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

Хостинг и техническая поддержка: TYPO3 Лаборатория