Форум русской поддержки Joomla!® CMS
11.12.2016, 17:49:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1] 2  Все   Вниз
  Добавить закладку  |  Печать  
Автор

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

 (Прочитано 10940 раз)
0 Пользователей и 1 Гость смотрят эту тему.
silverman
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 3


« : 01.03.2011, 17:57:42 »

Joomla 1.6

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

Репутация: +167/-4
Offline Offline

Пол: Мужской
Сообщений: 1981


Всю жизнь учусь...


« Ответ #1 : 01.03.2011, 21:14:48 »

создать два разных меню, в одном меню вход, в другом выход. Одно доступно гостям, другое пользователям...
Записан
silverman
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 3


« Ответ #2 : 02.03.2011, 10:13:32 »

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

Логичный подход. Но теперь возникли вопросы:
Как сделать пункт меню, доступный только гостям (в Joomla для незарегистрированных только public, но он виден всем)?
Как настроить пункт меню, чтобы он вел на выход?
Записан
Shitbox2
Гость
« Ответ #3 : 03.03.2011, 02:36:06 »

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

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

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

Репутация: +0/-0
Offline Offline

Сообщений: 3


« Ответ #4 : 03.03.2011, 12:31:54 »

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

Репутация: +10/-0
Offline Offline

Пол: Мужской
Сообщений: 207


Алексей Харламенков


« Ответ #5 : 20.07.2011, 13:06:44 »

index.php/logout?task=user.logout

У меня выдаётся ошибка с текстом:
Цитировать
1056 - Недействительный контроллер: имя = 'user', формат = ''
Записан
z-17
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 35



« Ответ #6 : 20.07.2011, 18:27:42 »

та же ошибка выдаётся.
как сделать кнопку выход ссылкой?
Записан
b2z
Support Team
*****

Репутация: +710/-0
Offline Offline

Пол: Мужской
Сообщений: 7538


Разраблю понемногу


« Ответ #7 : 20.07.2011, 18:40:47 »

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

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

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 35



« Ответ #8 : 20.07.2011, 19:13:39 »

Код:
Parse error: syntax error, unexpected T_STRING in /var/www/u1669598/data/www/unionbeginner.ru/templates/unionbeginners/index.php on line 38
выдаёт такую ошибку
Записан
b2z
Support Team
*****

Репутация: +710/-0
Offline Offline

Пол: Мужской
Сообщений: 7538


Разраблю понемногу


« Ответ #9 : 20.07.2011, 23:11:22 »

Код:
Parse error: syntax error, unexpected T_STRING in /var/www/u1669598/data/www/unionbeginner.ru/templates/unionbeginners/index.php on line 38
выдаёт такую ошибку
Это мне ни о чем не говорит. Выдрано из контекста. Привидите кусок кода, куда Вы это вставляете.
Записан
z-17
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 35



« Ответ #10 : 23.07.2011, 19:42:48 »

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

Репутация: +710/-0
Offline Offline

Пол: Мужской
Сообщений: 7538


Разраблю понемногу


« Ответ #11 : 25.07.2011, 10:48:39 »

Выложите код index.php, только в тэг [spoiler.][/spoiler.] его поместите.
Записан
z-17
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 35



« Ответ #12 : 30.07.2011, 20:06:24 »

Вот index.php
Показать текстовый блок
Записан
b2z
Support Team
*****

Репутация: +710/-0
Offline Offline

Пол: Мужской
Сообщений: 7538


Разраблю понемногу


« Ответ #13 : 31.07.2011, 17:12:40 »

Тогда так:
Код
echo('<a href="/index.php/forum/profile">Профиль</a> | <a href="' . JRoute::_( 'index.php?option=com_users&task=logout&' . JUtility::getToken(). ' = 1' ); . '">Выход</a>');
Записан
z-17
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 35



« Ответ #14 : 31.07.2011, 20:08:25 »

всё равно
Код:
Parse error: syntax error, unexpected ';' in /var/www/u1669598/data/www/unionbeginner.ru/templates/unionbeginnersv2/index.php on line 39
Записан
b2z
Support Team
*****

Репутация: +710/-0
Offline Offline

Пол: Мужской
Сообщений: 7538


Разраблю понемногу


« Ответ #15 : 01.08.2011, 12:13:49 »

Да, уберите ; после ' = 1' )
Записан
Ghedeon
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #16 : 22.09.2011, 00:56:42 »

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

Репутация: +710/-0
Offline Offline

Пол: Мужской
Сообщений: 7538


Разраблю понемногу


« Ответ #17 : 22.09.2011, 01:18:56 »

Ну если так можно выразиться, то да. Опишите ситуацию и приведите код, попробую помочь.
Записан
Ghedeon
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #18 : 22.09.2011, 01:27:07 »

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

Репутация: +710/-0
Offline Offline

Пол: Мужской
Сообщений: 7538


Разраблю понемногу


« Ответ #19 : 22.09.2011, 11:02:36 »

Понял. В пункт меню Вы такое не загоните...
Записан
Ghedeon
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #20 : 22.09.2011, 11:14:37 »

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

Репутация: +710/-0
Offline Offline

Пол: Мужской
Сообщений: 7538


Разраблю понемногу


« Ответ #21 : 22.09.2011, 11:52:45 »

PHP код не будет исполняться в модуле. Совет
Записан
Ghedeon
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #22 : 22.09.2011, 12:20:19 »

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

Показать текстовый блок
Записан
b2z
Support Team
*****

Репутация: +710/-0
Offline Offline

Пол: Мужской
Сообщений: 7538


Разраблю понемногу


« Ответ #23 : 22.09.2011, 12:30:53 »

Кодирование строки не обязательно. Код вероятно будет такой:
Код
<?php echo JRoute::_( 'index.php?option=com_users&task=user.logout&' . JUtility::getToken(). ' = 1' ); ?>
Записан
Ghedeon
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #24 : 23.09.2011, 01:52:29 »

Все работает, Ваш код верный. Спасибо за помощь!
« Последнее редактирование: 23.09.2011, 04:37:27 от Ghedeon » Записан
odlf3
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 10


« Ответ #25 : 15.03.2012, 18:46:32 »

а у меня пишет "не верный параметр" (((
Записан
b2z
Support Team
*****

Репутация: +710/-0
Offline Offline

Пол: Мужской
Сообщений: 7538


Разраблю понемногу


« Ответ #26 : 15.03.2012, 19:01:36 »

Попробуйте JUtility::getToken() заменить на JSession::getToken()
Записан
Begotten
Осваиваюсь на форуме
***

Репутация: +0/-1
Offline Offline

Сообщений: 78



« Ответ #27 : 31.08.2012, 23:07:07 »

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

Репутация: +0/-1
Offline Offline

Сообщений: 78



« Ответ #28 : 31.08.2012, 23:49:21 »

<a href="/index.php?option=com_user&task=logout&return=Lw==">Выход</a> - Работает. Тока вставлять php модулем.
Записан
Voronn
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 36


VoronN


« Ответ #29 : 20.05.2013, 22:50:37 »

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

и все будет в ажюре
Записан
Страниц: [1] 2  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet