Я пытаюсь добавить роль пользователя для пользователя, который стал членом группы. Рабочий процесс выглядит так:
- Пользователь просит присоединиться к группе.
- Запрос утвержден администратором группы.
- Пользователь является участником группы.
- Пользователь получает дополнительную роль.
Я пытался создать правило, которое могло бы сделать это, но, хотя все настройки кажутся правильными после присоединения к группе, пользователь не получает дополнительную роль. Ниже приведен скриншот настроек моего правила:
rules
organic-groups
rroose
источник
источник
Ответы:
Теперь ваше правило запускается после того, как пользователь запрашивает членство. Но вы должны запустить его после одобрения членства в OG.
Я подготовил Правило, которое добавляет роль «участник» после того, как членство было утверждено или если оно было добавлено администратором (автоматически утверждено). Вот экспорт (
4
это идентификатор моей друпал роли «член»):Скриншот:
Совет: вы можете включить правила отладки (страницы
admin/config/workflow/rules/settings
), чтобы увидеть, когда ваши правила выполняются.источник
У меня та же проблема (вот почему я начал щедрость).
Я решил это таким образом.
Я добавил функцию в пользовательский модуль. Вы можете просто создать свой собственный модуль, создав новую папку в / sites / all / modules с двумя файлами:
yourname_module.info - >>
yourname.module
Затем перейдите к своим модулям и включите «Пользовательские функции».
Убедитесь, что у вас включен пользовательский php код модуля.
Затем вместо действия добавьте пользователя к роли в правилах, добавьте: запустите пользовательский код php и введите:
Это добавляет пользователя к роли и останавливает сценарий. Если вы не остановите сценарий, роль не будет сохранена. И мне нужно было добавить модуль, потому
user_save
что не работает, когда выполняется вcustom php code
.Итак, я знаю, что это очень некрасиво, но это работает для меня.
источник
Какую версию OG вы используете?
Это известная ошибка, которая была исправлена в Organic Group 2.4+ ( см. Страницу ошибки ).
Если вы уже используете версию OG 2.3 или ниже, обновление должно быть простым. Если вы используете OG 1.x, вы можете найти более подробную информацию о процессе обновления с OG 1.5 до 2.4+
источник