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

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

zilonitiz

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

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

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

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

*

kik84

  • Живу я здесь
  • ******
  • 1267
  • 59
Как-то так, кто в PHP разбирается - поправят  ^-^

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

<?php
if (in_array('2', $groups ))
echo '222';
?>

*

effrit

  • Группа развития
  • *****
  • 7443
  • 815
  • effrit.com
надо дополнительно проверять, чтобы не было второй группы привязано.

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

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

}

*

zilonitiz

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

*

effrit

  • Группа развития
  • *****
  • 7443
  • 815
  • effrit.com

*

zilonitiz

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

*

AlekVolsk

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

*

zilonitiz

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

Вижу слова Вы знаете знатные. :D

*

AlekVolsk

  • Профи
  • ********
  • 6301
  • 336
ок, извините за беспокойство ))

*

zilonitiz

  • Завсегдатай
  • *****
  • 404
  • 6
ок, извините за беспокойство ))
Да ничего, не стоит извинений! )

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

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

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

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

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

*

Septdir

  • Практически профи
  • *******
  • 2160
  • 108
  • JoomlaZen
НЕ состоящих же следовательно не в массиве
Код
!in_array
Ну а про состоит дали код выше. итого два условия должны быть.Так будет более верно.
А вообще сама реализация может быть любая к примеру можно плагинчик сделать простой который добавит поле в админку и будет его проверять до рендера модуля.  Помню ещё был компонент адвансед модуле менеджер, раньше многие его юзали, сейчас особого смысла нет.
Но как верно подметил  AlekVolsk , дать нормальный совет и правильный код без контекста не возможно. Кто знает может тс пошёл вовсе по неверному пути.
Ну и конечно же на данный вопрос отлично знает ответ Google.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen

*

AlekVolsk

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

*

zilonitiz

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

Цитировать
Кто знает может тс пошёл вовсе по неверному пути
Тут остается только гадать. :D

*

Septdir

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

ТС исходные данные то понятны контекст какой.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen

*

AlekVolsk

  • Профи
  • ********
  • 6301
  • 336
Тут остается только гадать. :D
ну тогда вы форумом ошиблись, вам на hogvards-portal )))

*

zilonitiz

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

*

zilonitiz

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

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

*

Septdir

  • Практически профи
  • *******
  • 2160
  • 108
  • JoomlaZen
Вот вы к контексту привязались, все вам подавай. :D Ладно, вот контекст. На сайте существуют подписки. Подписчики привязываются к определенной группе а не подписчики остаются в группе по умолчанию. Вот им и нужно выводить определенный модуль. Решение нашлось без вмешательства в код. Хотя вариант с кодом тоже не плох. При регистрации на сайте пользователь не становится подписчиком по умолчанию а добавляется в две группы к одной из которых и привязан модуль. Подписчиком пользователь становится на следующих после регистрации этапах по желанию пользователя. После осуществления подписки дополнительная группа меняется.
Ну собсевнно как и предполагали, при таком конетсте реализовавать надо совсем по дургому.
Во превых кто в своем уме привязывает рассылки к регистрации?
Вот элементарный пример я хочу подписать не регистрируясь.
С другой же стороны, а вы уверены что у вас будет только одна расслка? а когда будет две и для обеих надо будет выводить модуль при условии.
поэтому рассылка реализуется через дополнительный комопнент и привязывается не к группе пользователя, а к его id и email. И модуль будет выводиться исходя из этого условия.
Ну и еще с 10 вариантов.
Вот вам и элеементарый пример, почему контекст крайне важен. Всегда есть вероятность, что есть способ решения куда более простой.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen

*

zilonitiz

  • Завсегдатай
  • *****
  • 404
  • 6
Цитировать
Во превых кто в своем уме привязывает рассылки к регистрации?
О каких рассылках Вы говорите?  :o

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

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

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

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

*

effrit

  • Группа развития
  • *****
  • 7443
  • 815
  • effrit.com
что-то в последнее время какая-то нездоровая тенденция на ровном месте споры разводить.
мне кажется, на следующей итерации на вводное "доброе утро" можно будет получить сведения о наступлении полярной ночи и всеобщем кризисе. :)
предлагаю считать тему исчерпанной, пока из-за неё ядерная война не началась :)

*

zilonitiz

  • Завсегдатай
  • *****
  • 404
  • 6
:)
Цитировать
что-то в последнее время какая-то нездоровая тенденция на ровном месте споры разводить.
Если проанализировать события, то этому найдется причина. Избавиться от которой крайне затруднительно. :)

*

fsv

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

*

zilonitiz

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

*

fsv

  • Практически профи
  • *******
  • 2506
  • 367
В случае с предложенным Вами решением, после обновления движка - все слетит.
Ну, это недостаток вводной информации. Думал, сторонний модуль какой-то. Исходил из того, что модули, если не в пакете с компонентом, практически не обновляются. Но все равно я бы клонировал бы под своим именем модуль и извращался бы, как хотел, ничего не слетит. И никто с дефолтными не мешает то же сделать.
Заказать разработку:    расширения Joomla  |   интерфейсы на javascript(jQuery)  |  мобильные приложения

*

zilonitiz

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