LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
27.05.2012, 06:16:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: [РЕШЕНО] Как показывать модуль только НЕ авторизованным пользователям? (ссылке в FAQ не рабочая)  (Прочитано 651 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Liana
Осваиваюсь на форуме
***

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

Пол: Женский
Сообщений: 169



« : 02.05.2011, 15:05:18 »

Как показывать модуль только НЕ авторизованным пользователям?

В FAQ http://joomlaforum.ru/index.php/topic,31415.msg182960.html#msg182960 ссылка на ответ на этот вопрос не рабочая, а поиск выдаёт только эту тему.

мне нужно чтобы вся позиция "right"была видна всем, но для не авторизованных пользователей в ней должно выводиться на один модуль больше.
« Последнее редактирование: 04.05.2011, 19:23:49 от Liana » Записан
DaVinchy
Завсегдатай
*****

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

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



« Ответ #1 : 02.05.2011, 15:11:38 »

Можно только позицию скрыть/показать, а отдельно модуль нельзя.
Можете добавить новую позицию в позицию right, прописать для новой позиции условие на показ только не авторизованным
и поместить в новую позицию нужный модуль. Azn
« Последнее редактирование: 02.05.2011, 15:15:25 от DaVinchy » Записан
Liana
Осваиваюсь на форуме
***

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

Пол: Женский
Сообщений: 169



« Ответ #2 : 02.05.2011, 15:13:02 »

можно только позицию скрыть/показать для авторизованных или неавторизованных пользователей, а
отдельно модуль нельзя.
понятно, не подходит(( позиции скрыть не могу, иначе дизайн не испортиться(
Записан
DaVinchy
Завсегдатай
*****

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

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



« Ответ #3 : 02.05.2011, 15:19:26 »

понятно, не подходит(( позиции скрыть не могу, иначе дизайн не испортиться(
я же вам предлагаю добавить новую позицию и скрывать её(!), а не полностью позицию right скрывать!
На дизайн не повлияет!
Делается так:
в index.php есть
Цитировать
<div id="right">
<jdoc:include type="modules" name="right" style="none" />
</div>
меняем на
Цитировать
<div id="right">
<jdoc:include type="modules" name="right" style="none" />
     <?php $user =& JFactory::getUser();?>
     <?php if($user->guest) : ?>
     <div id="new"><jdoc:include type="modules" name="new" style="none" /></div>
     <?php endif ?>
</div>
в xml-файле шаблона прописываем новую позицию,
публикуем нужный модуль в этой позиции.
Всё!
« Последнее редактирование: 02.05.2011, 15:28:36 от DaVinchy » Записан
slepoy
Завсегдатай
*****

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

Сообщений: 489


Тотальная шизофазия


« Ответ #4 : 02.05.2011, 15:26:30 »

Например, у вас есть позиция right.
Код:
<div id="ваш_id_или_class">
<jdoc:include type="modules" name="right" style="xhtml" />
</div>
Редактируя файл index.php шаблона скопируйте ее (вместе с дивами) и вставьте под/над позицией right. Затем добавьте условие, как показано в коде ниже и придумайте новое название для позиции (например right_inset) в которой затем и опубликуйте "модуль для гостей".
Код:
<?php $user =& JFactory::getUser();
if(!$user->id) {?>
<div id="ваш_id_или_class">
<jdoc:include type="modules" name="right_inset" style="xhtml" />
</div>
<?php } ?>
right_inset - позиция, в которой будет опубликован модуль, показываемый только незарегистрированным пользователям.

Например у себя на сайте таким образом я показываю "Приветствие" и рекламный блок, которые зарегистрированным пользователям не нужны.
« Последнее редактирование: 02.05.2011, 15:31:10 от slepoy » Записан
Liana
Осваиваюсь на форуме
***

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

Пол: Женский
Сообщений: 169



« Ответ #5 : 02.05.2011, 15:54:23 »

slepoy, всё получилось, но на всякий случай хочу уточнить правильно ли я поняла (вдруг потом какой косяк где-нибудь вылезет)?

Сначала (например) я пишу:

Код:
<?php $user =& JFactory::getUser();
if(!$user->id) {?>
<div id="right">
<jdoc:include type="modules" name="right_inset" style="xhtml" />
</div>
<?php } ?>

и ниже пишу див с точно таким же названием "right"

Код:
<div id="right">
<jdoc:include type="modules" name="right" style="xhtml" />
</div>


не заметила новое сообщение от DaVinchy. Получается, несколько проще код, чем у slepoy, а смысл тот же, да?
что означает style="none"? horz, XHTML знаю
« Последнее редактирование: 02.05.2011, 16:02:46 от Liana » Записан
DaVinchy
Завсегдатай
*****

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

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



« Ответ #6 : 02.05.2011, 16:09:11 »

Смысл тот же
про стили почитайте здесь Wink
Записан
Liana
Осваиваюсь на форуме
***

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

Пол: Женский
Сообщений: 169



« Ответ #7 : 02.05.2011, 16:30:59 »

Смысл тот же
про стили почитайте здесь Wink
спасибо! поставила бы ещё один "+, да тут ограничения по времени)
Записан
DaVinchy
Завсегдатай
*****

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

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



« Ответ #8 : 02.05.2011, 16:31:46 »

Всегда пожалуйста! Wink
Записан
usemind
Осваиваюсь на форуме
***

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

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



« Ответ #9 : 05.02.2012, 20:01:33 »

Ребят, благодарю Вам.
у меня была проблема: хотел рекламу показывать, которая лежит в отдельном php файле только неавторизированным пользователям, не знаю php полностью, но немного разобрался.
 <?php $user =& JFactory::getUser();
if(!$user->id) {require $this->baseurl."ad.php";}
else
{}?>
где первая строка выясняет авторизирован ли пользователь.
далее вы подгружаем файл ad.php, в котором есть код рекламы, он помещен в div, которому в свою оч. присвоены определенные стили CSS.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | 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