Новости Joomla

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

booro

  • Осваиваюсь на форуме
  • 22
  • 1 / 0
Скрыть пункт меню
« : 12.03.2009, 13:03:27 »
Подскажите, как скрыть пункт меню от авторизованных пользователей или гостей. На сайте выложены важные документы, но они должны быть в разном качестве, для определенных пользователей в хорошем, для гостей в плохом или с вотермарком. Я пока придумал самый простой вариант, создать два разных материала и в меню делать ссылки на них. Или может это можно сделать как-то динамически? Заходит гость - на изображение добавляется вотермарк, для авторизованного не добавляется. Заранее спасибо.
*

booro

  • Осваиваюсь на форуме
  • 22
  • 1 / 0
Re: Скрыть пункт меню
« Ответ #1 : 16.03.2009, 12:59:01 »
Ни у кого идей нет?)
*

gdX

  • Глобальный модератор
  • 995
  • 128 / 0
  • Открыт к заказам по дизайну
Re: Скрыть пункт меню
« Ответ #2 : 16.03.2009, 13:11:47 »
В списке пунктов меню, в колонке «Доступ» можно выбрать для кого показывать тот или миной пункт.
По умолчанию стоит «Все». Кликните по этому слову и будут перебираться возможные варианты.
*

gdX

  • Глобальный модератор
  • 995
  • 128 / 0
  • Открыт к заказам по дизайну
Re: Скрыть пункт меню
« Ответ #3 : 16.03.2009, 13:15:31 »
На счет выкладывания разных версий документов - думаю, что в таком подходе смысла нет.
Проще сделать так:
Для пользователей просто описание документа (может быть и со скриншотом)
Плюс надпись с ссылкой на регистрацию, что документ могут посмотреть только зарегистрированные пользователи.
*

booro

  • Осваиваюсь на форуме
  • 22
  • 1 / 0
Re: Скрыть пункт меню
« Ответ #4 : 16.03.2009, 13:22:03 »
В списке пунктов меню, в колонке «Доступ» можно выбрать для кого показывать тот или миной пункт.
По умолчанию стоит «Все». Кликните по этому слову и будут перебираться возможные варианты.
Это-то я знаю, просто хотелось и от зарегистрированных скрыть пункт меню, ведущий к документам в плохом качестве, чтобы не путались =) Плодить несколько модулей и меню и выводить их с помощью php if, else не очень хочется =(

На счет выкладывания разных версий документов - думаю, что в таком подходе смысла нет.
Проще сделать так:
Для пользователей просто описание документа (может быть и со скриншотом)
Плюс надпись с ссылкой на регистрацию, что документ могут посмотреть только зарегистрированные пользователи.
Дело в том, что просмотр документа должен быть доступен и незарегистрированным пользователям, но только чтобы они не могли его распечатать и использовать в своих целях =)
*

ecolora

  • Завсегдатай
  • 1527
  • 171 / 2
  • творец
Re: Скрыть пункт меню
« Ответ #5 : 28.01.2011, 08:31:19 »
Очень часто возникает задача, когда нужно скрыть пункт меню после входа пользователя. В админке Joomla можно установить уровень доступа на каждый пункт меню, скажем отображать только для зарегистрированных, либо для всех. Но у нас задача как раз обратная, надо скрыть для зарегистрированных.  Для этих нужд есть одно хитрое решение, основанное на простом CSS и проверке что пользователь вошел.

Суть в том, чтобы сделать пункт невидимым с помощью CSS свойства. Прежде всего убедитесь что меню выводится адекватным способом. Т.е. каждый пунт меню снабжается уникальным классом (к примеру .item1). У стандартного модуля вывода меню есть тип list, он автоматически присваевает классы пунктам меню.

Второй шаг это отслеживать момент, когда пользователь залогинелся(авторизовался на сайте). Проще всего это сделать в коде шаблона. Мы могли бы изменить и код модуля меню. Но данный способ расчитан именно на быстрое решение и без изменения исходных файлов Joomla, плюс редактирование шаблона доступно из админского интерфейса. Итак, код проверки(для шаблона) будет следующий:
Исходный код      

Код
<?php $user =& JFactory::getUser();
if( !$user->guest ) : ?>
<style type="text/css">
#topmenu .item3 { display:none !important; }
</style>
<?php endif; ?>

Само собой не забываем менять класс (.item1) на класс того пункта меню, который надо скрыть.

Когда это может понадобится? Ну допустим у нас есть ссылка «Зарегистрироваться». Мы же не хотим чтобы ее видели те кто уже зашел на сайт.

Используйте всегда и везде для модуля mod_mainmenu тип list. Имхо можно без труда создать допустим трехколоночный вывод, само собой без изменения кода модуля.
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

christy2007

  • Новичок
  • 3
  • 0 / 0
Re: Скрыть пункт меню
« Ответ #6 : 20.03.2011, 15:18:13 »
А конкретный путь не подскажите, куда вставлять код? Спасибо
*

christy2007

  • Новичок
  • 3
  • 0 / 0
Re: Скрыть пункт меню
« Ответ #7 : 20.03.2011, 15:21:12 »
Используется шаблон RY-River, Joomla 1.5.22
*

christy2007

  • Новичок
  • 3
  • 0 / 0
Re: Скрыть пункт меню
« Ответ #8 : 20.03.2011, 16:39:24 »
Проблема в шаблоне и способе описания кода, решила проблему по другому: убрала вход как таковой из пункта меню и регистрацию вынесла в отдельный модуль. И при авторизации зарегистрированные пользователи видят еще 1 пункт меню. Но проблема скрытия пункта меню все равно заинтересовала, пошла учить php и разбираться со своим шаблоном))) Спасибо ecolora за поддержку))
*

komert

  • Захожу иногда
  • 124
  • 1 / 0
Re: Скрыть пункт меню
« Ответ #9 : 04.03.2013, 03:27:31 »
<?php $user =& JFactory::getUser();
if( !$user->guest ) : ?>
<style type="text/css">
#topmenu .item3 { display:none !important; }
</style>
<?php endif; ?>

Всё меню могу скрыть, а а пункт меню выйти - никак не получается и item менял всё что надо и нифига.
Вот код ссылки 
<li class=" ux-menu-item-level-1 ux-menu-item120" style="width: 183px;">
            <a href="/vkhod/vojti-na-sajt.html" class=" ux-menu-link-level-1 ux-menu-link-first" title="">
               Войти                           </a>
                  </li>
Может что подскажете
*

komert

  • Захожу иногда
  • 124
  • 1 / 0
Re: Скрыть пункт меню
« Ответ #10 : 04.03.2013, 03:29:45 »
Всё спасибо. Всё получилось.  Я решил что вместо guest, надо писать Registered  и это было неправильно  *DRINK*
*

komert

  • Захожу иногда
  • 124
  • 1 / 0
Re: Скрыть пункт меню
« Ответ #11 : 04.03.2013, 03:54:28 »
На локалхосте правда, появляется на секунду пункт меню а потом исчезает ...
*

komert

  • Захожу иногда
  • 124
  • 1 / 0
Re: Скрыть пункт меню
« Ответ #12 : 10.03.2013, 09:00:42 »
Работает некорректно, то появится то исчезнет
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Re: Скрыть пункт меню
« Ответ #13 : 10.03.2013, 10:15:27 »
Копируете из modules\mod_menu\tmpl\ в templates\шаблон\html\mod_menu\ файл default.php. Недостающие папки создаёте. Открываете…
1. 23-я строка, меняете
Код: php
foreach ($list as $i => &$item) :
на
Код: php
foreach ($list as $i => &$item) :
if( !$item->anchor_css ) :
2. В конце заменяете
Код: php
endforeach;
на
Код: php
endif;
endforeach;
Теперь, если у пункта меню задать любой css-класс, он не будет отображаться гостям. Не просто скрываться, а вообще не будет выводиться. Это на случай, если вы не используете это поле. Если используете, можно усовершенствовать решение, добавив проверку по регулярному выражению так:
Код: php
if (preg_match('/user/', $this->item->text)) {};
*

komert

  • Захожу иногда
  • 124
  • 1 / 0
Re: Скрыть пункт меню
« Ответ #14 : 10.03.2013, 16:29:08 »
Вот реальное решение, почитай внимательно  и сделай как там пишут ...  Мне помогло
http://joomlaforum.ru/index.php/topic,146909.msg812217.html#msg812217
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Re: Скрыть пункт меню
« Ответ #15 : 10.03.2013, 16:49:29 »
komert а моё что, нереальное? :)
*

komert

  • Захожу иногда
  • 124
  • 1 / 0
Re: Скрыть пункт меню
« Ответ #16 : 11.03.2013, 03:43:23 »
komert а моё что, нереальное? :)
Я не пробывал как у тебя )  Хотя раньшепытался сделать что похожее вот код, но пункт меню то отображается, то нет ... А установив права, всё оказалось просто.
Добавить для меню :
<?php $user =& JFactory::getUser();
if( !$user->guest ) : ?>
<style type="text/css">
#topmenu .item{ display:none !important; }
</style>
<?php endif; ?>
*

komert

  • Захожу иногда
  • 124
  • 1 / 0
Re: Скрыть пункт меню
« Ответ #17 : 11.03.2013, 03:45:24 »
komert а моё что, нереальное? :)
Я не пробывал как у тебя )  Хотя раньшепытался сделать что похожее вот код, но пункт меню то отображается, то нет ... А установив права, всё оказалось просто.
Добавить для меню :
<?php $user =& JFactory::getUser();
if( !$user->guest ) : ?>
<style type="text/css">
#topmenu .item{ display:none !important; }
</style>
<?php endif; ?>
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Re: Скрыть пункт меню
« Ответ #18 : 11.03.2013, 07:43:32 »
Я не пробывал как у тебя )  Хотя раньшепытался сделать что похожее вот код, но пункт меню то отображается, то нет ... А установив права, всё оказалось просто.
Добавить для меню :
<?php $user =& JFactory::getUser();
if( !$user->guest ) : ?>
<style type="text/css">
#topmenu .item{ display:none !important; }
</style>
<?php endif; ?>

Отличное «решение»! Я открываю файрбаг/драгонфлай, стираю эту строку и спокойно перехожу по «скрытой» ссылке.
*

komert

  • Захожу иногда
  • 124
  • 1 / 0
Re: Скрыть пункт меню
« Ответ #19 : 11.03.2013, 09:58:07 »
Отличное «решение»! Я открываю файрбаг/драгонфлай, стираю эту строку и спокойно перехожу по «скрытой» ссылке.
Я пока ещё только начал знакомиться с PHP поэтому не очень разбираюсь.. Это хорошо если твой способ рабочий и реальный, может и я когда нибудь им воспользуюсь...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

убрать из меню заголовки h3

Автор nexter

Ответов: 19
Просмотров: 6466
Последний ответ 03.02.2020, 18:49:47
от durte
При добавлении нового пункта меню не отображается содержимое

Автор Denko

Ответов: 2
Просмотров: 2142
Последний ответ 16.01.2020, 18:40:55
от Denko
Не нажимается пункт меню на мобильной версии

Автор Sensession

Ответов: 7
Просмотров: 3094
Последний ответ 04.01.2020, 16:45:27
от xpank
Не отображаются пункты в меню

Автор physic

Ответов: 20
Просмотров: 21391
Последний ответ 20.09.2019, 16:54:01
от beliyadm
Как в ARI Ext Menu добиться работы параметра "Показать в меню"?

Автор vasmed

Ответов: 1
Просмотров: 2357
Последний ответ 01.03.2019, 11:12:18
от vasmed