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

zilonitiz

  • Захожу иногда
  • 423
  • 7 / 1
Подскажите, какие есть варианты выводить модуль для пользователей которые не состоят в указанной группе?

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

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

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

kik84

  • Завсегдатай
  • 1350
  • 64 / 4
Как-то так, кто в PHP разбирается - поправят  ^-^

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

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

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
надо дополнительно проверять, чтобы не было второй группы привязано.

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

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

}
*

zilonitiz

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

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
*

zilonitiz

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

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
ТС, у вас в двух постах 2 разных по сути вопроса: первый - это "что", второй - это "как", конкретизируйте задачу, что именно и при каких условиях в каком месте вам нужно вывести, как и с чем это должно коррелировать и прочия и прочия...
*

zilonitiz

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

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

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
ок, извините за беспокойство ))
*

zilonitiz

  • Захожу иногда
  • 423
  • 7 / 1
ок, извините за беспокойство ))
Да ничего, не стоит извинений! )

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

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

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

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

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

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
НЕ состоящих же следовательно не в массиве
Код
!in_array
Ну а про состоит дали код выше. итого два условия должны быть.Так будет более верно.
А вообще сама реализация может быть любая к примеру можно плагинчик сделать простой который добавит поле в админку и будет его проверять до рендера модуля.  Помню ещё был компонент адвансед модуле менеджер, раньше многие его юзали, сейчас особого смысла нет.
Но как верно подметил  AlekVolsk , дать нормальный совет и правильный код без контекста не возможно. Кто знает может тс пошёл вовсе по неверному пути.
Ну и конечно же на данный вопрос отлично знает ответ Google.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

AlekVolsk

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

zilonitiz

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

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

Septdir

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

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

AlekVolsk

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

zilonitiz

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

zilonitiz

  • Захожу иногда
  • 423
  • 7 / 1
Ну это смотря для кого мне проще свой плагин за 15 написать чем эту махину ставить.

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

Septdir

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

zilonitiz

  • Захожу иногда
  • 423
  • 7 / 1
Цитировать
Во превых кто в своем уме привязывает рассылки к регистрации?
О каких рассылках Вы говорите?  :o

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

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

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

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

effrit

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

zilonitiz

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

fsv

  • Живу я здесь
  • 2765
  • 402 / 2
Не надо плодить группы ради вывода модуля и оборачивать модульную позицию в шаблоне условиями. Сегодня модуль есть, завтра нет, а вся борода эта осталась.
Чуть модуль доработать.
В 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;
}
Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.
*

zilonitiz

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

fsv

  • Живу я здесь
  • 2765
  • 402 / 2
В случае с предложенным Вами решением, после обновления движка - все слетит.
Ну, это недостаток вводной информации. Думал, сторонний модуль какой-то. Исходил из того, что модули, если не в пакете с компонентом, практически не обновляются. Но все равно я бы клонировал бы под своим именем модуль и извращался бы, как хотел, ничего не слетит. И никто с дефолтными не мешает то же сделать.
Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.
*

zilonitiz

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

Вывод даты материала в списке тегов

Автор androv77

Ответов: 2
Просмотров: 876
Последний ответ 09.11.2023, 16:33:08
от denxio
Убрать из модуля новостей ссылку на статью, на которой выводится модуль

Автор zeus07

Ответов: 3
Просмотров: 708
Последний ответ 08.11.2023, 21:17:26
от GrayAn
Вывод дополнительного поля материала в модуле

Автор timofe

Ответов: 10
Просмотров: 1479
Последний ответ 06.10.2023, 14:02:24
от Mitriy
Изменение отображения модуля от разрешения экрана

Автор mag_num83

Ответов: 5
Просмотров: 512
Последний ответ 17.05.2023, 09:35:23
от Театрал
Как удалить позицию модуля в настройках модуля?

Автор 62411

Ответов: 6
Просмотров: 404
Последний ответ 12.03.2023, 18:24:38
от 62411