Как заменить кнопку войти на выйти, когда пользователь авторизовался?

  • 34 Ответов
  • 12055 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

Joomla 1.6

Есть меню в нем один пункт "Войти". При нажатии появляется форма авторизации. Когда пользователь авторизуется этот пункт остается. Как сделать, чтобы вместо него показывался пункт "Выйти" с соответствующей функцией?
« Последнее редактирование: 02.03.2011, 11:24:03 от silverman »

*

Mihanja80

  • *******
  • 1954
  • [+]167 / [-]4
  • Всю жизнь учусь...
создать два разных меню, в одном меню вход, в другом выход. Одно доступно гостям, другое пользователям...
Я с мобильного, в основном...

создать два разных меню, в одном меню вход, в другом выход. Одно доступно гостям, другое пользователям...

Логичный подход. Но теперь возникли вопросы:
Как сделать пункт меню, доступный только гостям (в Joomla для незарегистрированных только public, но он виден всем)?
Как настроить пункт меню, чтобы он вел на выход?

*

Shitbox2

Сделать элемент доступным только для гостей стандартными средствами можно так:
http://docs.joomla.org/ACL_Tutorial_for_Joomla_1.6#Allowing_Guest-Only_Access_to_Menu_Items_and_Modules

В общих чертах: нужно создать группу, унаследованную от Public и назначить ее группой для гостей, что делается в глобальных настройках пользователей.

А как настроить «Выход» на непосредственный выход?

Решил второй вопрос. Нужно кнопке «Выход» задать тип Внешний URL и указать ссылку
index.php/logout?task=user.logout

*

Санчо

  • ****
  • 212
  • [+]10 / [-]0
  • Алексей Харламенков
index.php/logout?task=user.logout

У меня выдаётся ошибка с текстом:
Цитировать
1056 - Недействительный контроллер: имя = 'user', формат = ''

*

z-17

та же ошибка выдаётся.
как сделать кнопку выход ссылкой?
Мой блог

*

b2z

  • *****
  • 7449
  • [+]740 / [-]0
  • Разраблю понемногу
Решил второй вопрос. Нужно кнопке «Выход» задать тип Внешний URL и указать ссылку
index.php/logout?task=user.logout
Странно, что у Вас это работает. По идее должна быть ошибка Invalid Token, потому что в форме logoutа должен быть JToken, который потом проверяется контроллером.

Можно попробовать такую ссылку повесить:
Код: php
<?php echo JRoute::_( 'index.php?option=com_users&task=logout&' . JUtility::getToken(). ' = 1' ); ?>

*

z-17

Код
Parse error: syntax error, unexpected T_STRING in /var/www/u1669598/data/www/unionbeginner.ru/templates/unionbeginners/index.php on line 38
выдаёт такую ошибку
Мой блог

*

b2z

  • *****
  • 7449
  • [+]740 / [-]0
  • Разраблю понемногу
Код
Parse error: syntax error, unexpected T_STRING in /var/www/u1669598/data/www/unionbeginner.ru/templates/unionbeginners/index.php on line 38
выдаёт такую ошибку
Это мне ни о чем не говорит. Выдрано из контекста. Привидите кусок кода, куда Вы это вставляете.

*

z-17

я ставлю ссылку  в шаблон
Код
<a href="#">Выход</a>
вместо # - тот код
сохраняю, страницы не загружаются. выдаёт такую ошибку
Мой блог


*

z-17

Вот index.php
Спойлер
[свернуть]
Мой блог

*

b2z

  • *****
  • 7449
  • [+]740 / [-]0
  • Разраблю понемногу

*

z-17

всё равно
Код
Parse error: syntax error, unexpected ';' in /var/www/u1669598/data/www/unionbeginner.ru/templates/unionbeginnersv2/index.php on line 39
Мой блог


bzzik, я правильно понял, у Вас исполняется PHP код в поле для ссылки? Просто у меня полностью аналогичный случай, но если я пытаюсь в качестве внешней ссылки назначить пункту меню PHP код, то он попросту не выполняется. В чем секрет?


Joomla! 1.7, тема jootheme quantum. Форма авторизации идет вместе с шаблоном. После авторизации появляется кнопка выхода, но в ненужном обрамлении и в специальной форме. Задача: перенести действие этой кнопки на произвольный элемент: ссылку в статье, пункт в меню, модуль в какой-то позиции, скажем где-то в topbar... Пусть для примера это будет пункт меню "Выход". Тип пункта я так понимаю должен быть "Внешний URL". Дальнейшие действия?
« Последнее редактирование: 22.09.2011, 03:34:58 от Ghedeon »


Хорошо, а куда загоню? Если создам модуль типа custom HTML, туда загоню? Кстати пробовал, в режиме без редактора, PHP код не режется, но и не исполняется. Что бы Вы сами посоветовали?


Ок, сторонними костылями я заставлю работать PHP код. Теперь самое интересное — какой PHP код? ^-^
В спойлере содержимое \com_users\login\default_logout.php. Я правильно понимаю, код выхода примерно такой?
Код: php
<?php echo JRoute::_('index.php?option=com_users&task=user.logout'). JHtml::_('form.token')?>
Кажется чего-то не хватает. Еще кодирование url строки смущает.

Спойлер
[свернуть]

*

b2z

  • *****
  • 7449
  • [+]740 / [-]0
  • Разраблю понемногу
Кодирование строки не обязательно. Код вероятно будет такой:
Код: php
<?php echo JRoute::_( 'index.php?option=com_users&task=user.logout&' . JUtility::getToken(). ' = 1' ); ?>

Все работает, Ваш код верный. Спасибо за помощь!
« Последнее редактирование: 23.09.2011, 06:37:27 от Ghedeon »

*

odlf3

а у меня пишет "не верный параметр" (((


*

Begotten

Неа. не работает. Выдает не существующую страницу. Загонял эти коды в php_module, ставил в нужную позицию. Не раюотает(((

*

Begotten

<a href="/index.php?option=com_user&task=logout&return=Lw==">Выход</a> - Работает. Тока вставлять php модулем.

*

Voronn

скачать вот отсюда сомпонентик маленький http://joomlacode.org/gf/project/com_quicklogout/frs/?action=FrsReleaseBrowse&frs_package_id=6034

и все будет в ажюре
Не нагибайтесь и не нагибайте других- и вас не просклоняют ...