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

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

Вывод модуля для пользователей не состоящих в группе

 (Прочитано 278 раз)
0 Пользователей и 1 Гость смотрят эту тему.
zilonitiz
Завсегдатай
*****

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

Сообщений: 413



« : 05.06.2017, 22:51:19 »

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

Есть пользователи которые состоят в двух группах:
Registered
Custom-group

Есть пользователи которые состоят только в одной группе:
Registered

Надо выводить модуль для пользователей которые состоят только в группе Registered.
« Последнее редактирование: 06.06.2017, 11:47:24 от zilonitiz » Записан
kik84
Живу я здесь
******

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

Сообщений: 1340



« Ответ #1 : 06.06.2017, 10:11:45 »

Как-то так, кто в PHP разбирается - поправят  Smiley

<?php
$user =& JFactory::getUser();
$groups = isset($user->groups)? $user->groups : array();
?>

<?php
if (in_array('2', $groups ))
echo '222';
?>
Записан
effrit
Группа развития
*****

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

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


effrit.com


« Ответ #2 : 06.06.2017, 10:25:31 »

надо дополнительно проверять, чтобы не было второй группы привязано.

например, можно проверить, чтобы группа была только одна

Код:
if (in_array('2', $groups ) && count($groups)==1) {

}
Записан
zilonitiz
Завсегдатай
*****

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

Сообщений: 413



« Ответ #3 : 06.06.2017, 11:39:40 »

т.е. вариант один, делать позицию, ее заворачивать в предложенный выше код и уже к  этой позиции привязывать модуль?
Записан
effrit
Группа развития
*****

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

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


effrit.com


« Ответ #4 : 06.06.2017, 11:44:24 »

может ещё как-то можно, но это решение для средних умов и оно должно работать Azn
а чем не нравится?
Записан
zilonitiz
Завсегдатай
*****

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

Сообщений: 413



« Ответ #5 : 06.06.2017, 11:48:41 »

может ещё как-то можно, но это решение для средних умов и оно должно работать Azn
а чем не нравится?
Пока не могу сказать чем не нравится, да я и не намекал на это. Надо пробовать, попробую - скажу. Azn
Записан
AlekVolsk
Профи
********

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

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



« Ответ #6 : 06.06.2017, 11:51:03 »

ТС, у вас в двух постах 2 разных по сути вопроса: первый - это "что", второй - это "как", конкретизируйте задачу, что именно и при каких условиях в каком месте вам нужно вывести, как и с чем это должно коррелировать и прочия и прочия...
Записан
zilonitiz
Завсегдатай
*****

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

Сообщений: 413



« Ответ #7 : 06.06.2017, 12:01:33 »

AlekVolsk, смотрите. Выше двое коллег дали вполне внятные варианты решения. За что им огромное спасибо! Вы их не увидели, но нашли какие то не соответствия обозначенные двумя словами. Что Вы тут делаете?

Вижу слова Вы знаете знатные. Cheesy
Записан
AlekVolsk
Профи
********

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

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



« Ответ #8 : 06.06.2017, 12:07:24 »

ок, извините за беспокойство ))
Записан
zilonitiz
Завсегдатай
*****

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

Сообщений: 413



« Ответ #9 : 06.06.2017, 12:15:14 »

ок, извините за беспокойство ))
Да ничего, не стоит извинений! )

Есть и еще одно решение. Добавить группу, привязать к ней модуль и добавить эту группу ко всем пользователям.

Исходные данные:
Цитировать
Есть пользователи которые состоят в двух группах:
Registered
Custom-group

Есть пользователи которые состоят только в одной группе:
Registered

Решение:
Цитировать
Есть пользователи которые состоят в двух группах:
Registered
Custom-group

Есть пользователи которые состоят только в одной группе:
Registered
Custom-group2
Записан
Septdir
Практически профи
*******

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

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


Skype: septdir


« Ответ #10 : 06.06.2017, 12:15:29 »

НЕ состоящих же следовательно не в массиве
Код:
!in_array
Ну а про состоит дали код выше. итого два условия должны быть.Так будет более верно.
А вообще сама реализация может быть любая к примеру можно плагинчик сделать простой который добавит поле в админку и будет его проверять до рендера модуля.  Помню ещё был компонент адвансед модуле менеджер, раньше многие его юзали, сейчас особого смысла нет.
Но как верно подметил  AlekVolsk , дать нормальный совет и правильный код без контекста не возможно. Кто знает может тс пошёл вовсе по неверному пути.
Ну и конечно же на данный вопрос отлично знает ответ Google.
Записан
AlekVolsk
Профи
********

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

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



« Ответ #11 : 06.06.2017, 12:17:20 »

Помню ещё был компонент адвансед модуле менеджер, раньше многие его юзали, сейчас особого смысла нет.
смысл есть, актуален и по сей день, но это тема отдельного разговора
Записан
zilonitiz
Завсегдатай
*****

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

Сообщений: 413



« Ответ #12 : 06.06.2017, 12:20:15 »

Цитировать
Помню ещё был компонент адвансед модуле менеджер, раньше многие его юзали, сейчас особого смысла нет.
Да, после как в Joomla! (наконец то) появился свой ACL этот компонент потерял частично свою актуальность.

Цитировать
Кто знает может тс пошёл вовсе по неверному пути
Тут остается только гадать. Cheesy
Записан
Septdir
Практически профи
*******

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

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


Skype: septdir


« Ответ #13 : 06.06.2017, 12:20:59 »

смысл есть, актуален и по сей день, но это тема отдельного разговора
Ну это смотря для кого мне проще свой плагин за 15 написать чем эту махину ставить.

ТС исходные данные то понятны контекст какой.
Записан
AlekVolsk
Профи
********

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

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



« Ответ #14 : 06.06.2017, 12:25:18 »

Тут остается только гадать. Cheesy
ну тогда вы форумом ошиблись, вам на hogvards-portal )))
Записан
zilonitiz
Завсегдатай
*****

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

Сообщений: 413



« Ответ #15 : 06.06.2017, 12:40:11 »

ну тогда вы форумом ошиблись, вам на hogvards-portal )))
Не ошибся, поверьте. Позвольте, я Вам еще раз намекну. Wink Выше, четко поняли вопрос и четко дали на него свои варианты ответов. А Вы, вот Вы, уподобляетесь Ванге, пытаетесь быть на нее похожим. Зачем, спрашиваю еще раз? Azn
Записан
zilonitiz
Завсегдатай
*****

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

Сообщений: 413



« Ответ #16 : 06.06.2017, 12:51:55 »

Ну это смотря для кого мне проще свой плагин за 15 написать чем эту махину ставить.

ТС исходные данные то понятны контекст какой.
Вот вы к контексту привязались, все вам подавай. Cheesy Ладно, вот контекст. На сайте существуют подписки. Подписчики привязываются к определенной группе а не подписчики остаются в группе по умолчанию. Вот им и нужно выводить определенный модуль. Решение нашлось без вмешательства в код. Хотя вариант с кодом тоже не плох. При регистрации на сайте пользователь не становится подписчиком по умолчанию а добавляется в две группы к одной из которых и привязан модуль. Подписчиком пользователь становится на следующих после регистрации этапах по желанию пользователя. После осуществления подписки дополнительная группа меняется.
Записан
Septdir
Практически профи
*******

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

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


Skype: septdir


« Ответ #17 : 06.06.2017, 14:06:53 »

Вот вы к контексту привязались, все вам подавай. Cheesy Ладно, вот контекст. На сайте существуют подписки. Подписчики привязываются к определенной группе а не подписчики остаются в группе по умолчанию. Вот им и нужно выводить определенный модуль. Решение нашлось без вмешательства в код. Хотя вариант с кодом тоже не плох. При регистрации на сайте пользователь не становится подписчиком по умолчанию а добавляется в две группы к одной из которых и привязан модуль. Подписчиком пользователь становится на следующих после регистрации этапах по желанию пользователя. После осуществления подписки дополнительная группа меняется.
Ну собсевнно как и предполагали, при таком конетсте реализовавать надо совсем по дургому.
Во превых кто в своем уме привязывает рассылки к регистрации?
Вот элементарный пример я хочу подписать не регистрируясь.
С другой же стороны, а вы уверены что у вас будет только одна расслка? а когда будет две и для обеих надо будет выводить модуль при условии.
поэтому рассылка реализуется через дополнительный комопнент и привязывается не к группе пользователя, а к его id и email. И модуль будет выводиться исходя из этого условия.
Ну и еще с 10 вариантов.
Вот вам и элеементарый пример, почему контекст крайне важен. Всегда есть вероятность, что есть способ решения куда более простой.
Записан
zilonitiz
Завсегдатай
*****

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

Сообщений: 413



« Ответ #18 : 06.06.2017, 14:17:06 »

Цитировать
Во превых кто в своем уме привязывает рассылки к регистрации?
О каких рассылках Вы говорите?  Shocked

Цитировать
Вот элементарный пример я хочу подписать не регистрируясь.
Вы не можете приобрести подписку не регистрируясь!  Wink

Цитировать
С другой же стороны, а вы уверены что у вас будет только одна расслка? а когда будет две и для обеих надо будет выводить модуль при условии.
Повторюсь, о каких рассылках идет речь?  Lips Sealed

Цитировать
Ну и еще с 10 вариантов.
Бросьте, я вас умоляю. Варианта всего два: или пользователь подписчик или не подписчик.

Цитировать
Вот вам и элеементарый пример, почему контекст крайне важен. Всегда есть вероятность, что есть способ решения куда более простой.
Если бы была важность контекста, я бы обязательно выложил ее в первом посте, поверьте. Я думаю Вы убедились, что он, контекст в данном случае абсолютно не важен. Приплели какие то рассылки, зачем? Azn Совсем в сторону увели вопрос. Azn
Записан
effrit
Группа развития
*****

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

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


effrit.com


« Ответ #19 : 06.06.2017, 14:23:57 »

что-то в последнее время какая-то нездоровая тенденция на ровном месте споры разводить.
мне кажется, на следующей итерации на вводное "доброе утро" можно будет получить сведения о наступлении полярной ночи и всеобщем кризисе. Azn
предлагаю считать тему исчерпанной, пока из-за неё ядерная война не началась Azn
Записан
zilonitiz
Завсегдатай
*****

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

Сообщений: 413



« Ответ #20 : 06.06.2017, 14:32:20 »

Azn
Цитировать
что-то в последнее время какая-то нездоровая тенденция на ровном месте споры разводить.
Если проанализировать события, то этому найдется причина. Избавиться от которой крайне затруднительно. Azn
Записан
fsv
Практически профи
*******

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

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


« Ответ #21 : 06.06.2017, 15:23:09 »

Не надо плодить группы ради вывода модуля и оборачивать модульную позицию в шаблоне условиями. Сегодня модуль есть, завтра нет, а вся борода эта осталась.
Чуть модуль доработать.
В XML модуля добавить «Группа, которой НЕ выводится модуль», тип usergrouplist , см.синтаксис старого типа  usergroup - https://docs.joomla.org/Usergroup_form_field_type
В хелпере (или где-там-у-вас-не-знаю-смотрите-код):
Код
$user = JFactory::getUser();
$nogroup = (int)$params->get('nogroup');
if( $user->guest || in_array($nogroup, $user->groups) )
{
   return false;
}
Записан
zilonitiz
Завсегдатай
*****

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

Сообщений: 413



« Ответ #22 : 06.06.2017, 18:16:20 »

Цитировать
Не надо плодить группы ради вывода модуля и оборачивать модульную позицию в шаблоне условиями. Сегодня модуль есть, завтра нет, а вся борода эта осталась.
Возможно Вы и правы, но в моем случае используется Custom модуль для вывода нужной информации нужно группе пользователей. Возможно в будущем будут использоваться и другие модули. В случае с предложенным Вами решением, после обновления движка - все слетит.
Записан
fsv
Практически профи
*******

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

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


« Ответ #23 : 06.06.2017, 19:41:45 »

В случае с предложенным Вами решением, после обновления движка - все слетит.
Ну, это недостаток вводной информации. Думал, сторонний модуль какой-то. Исходил из того, что модули, если не в пакете с компонентом, практически не обновляются. Но все равно я бы клонировал бы под своим именем модуль и извращался бы, как хотел, ничего не слетит. И никто с дефолтными не мешает то же сделать.
Записан
zilonitiz
Завсегдатай
*****

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

Сообщений: 413



« Ответ #24 : 26.06.2017, 14:45:33 »

Ну, это недостаток вводной информации. Думал, сторонний модуль какой-то. Исходил из того, что модули, если не в пакете с компонентом, практически не обновляются. Но все равно я бы клонировал бы под своим именем модуль и извращался бы, как хотел, ничего не слетит. И никто с дефолтными не мешает то же сделать.
В общем обдумали все еще раз и решили что предложенное Вами решение будет правильным. Клонируем кастомный модуль и будем работать с ним.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

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