Мне нужно, чтобы на одном форуме пользователь мог писать сообщения, а на другом нет (только читать). Сейчас это невозможно.
Для того чтобы это оказалось возможным, нужно задать пользователю сразу несколько ролей, например, "читатель" и "писатель", чтобы потом их можно было выбрать галочкой на конкретном форуме.
Такая возможность существует в ворпрессе. Можно ли активировать множественный выбор в праймфоруме?
Здравствуйте.
Pafnuty сказал(а)
Такая возможность существует в ворпрессе
Ваш скриншот к вордпрессу отношения не имеет
Это добавляет какой-то сторонний плагин. А значит что это было кем то дополнительно написано т.к. движок позволяет назначить только одну роль. А по умолчанию ВП не умеет чтоб и царь и жнец и швец и на дуде..
Все что есть для форума можно найти в этом разделе
Но мне кажется готового решения нет.
Otshelnik-Fm сказал(а)
Здравствуйте.Pafnuty сказал(а)
Такая возможность существует в ворпрессеВаш скриншот к вордпрессу отношения не имеет
Вы не можете просматривать опубликованные ссылкиЭто добавляет какой-то сторонний плагин. А значит что это было кем то дополнительно написано т.к. движок позволяет назначить только одну роль. А по умолчанию ВП не умеет чтоб и царь и жнец и швец и на дуде..
Андрей CS сказал(а)
такой возможности нет
Можно ли тогда выбранный форум разрешить читать всем вне зависимости от допуска?
По-моему это хорошая идея. Вы можете в следующих версиях добавить такую галочку к каждому форуму, никто против не будет. Тем более что сейчас гостя все равно можно допустить в любой форум, и получается странная вещь, что если я кого-то не допущу на форум он все равно сможет туда попасть просто разлогинившись.
Привожу код, запрещающий избранным ролям публиковаться в отдельных форумах. Вход на форума остается для всех свободным, но зато писать сообщения и открывать темы они не могут.
/** * Разрешает доступ на закрытый форум всем ролям * если включена галка Гость * Заимствовано из файла index.php в папке prime-role-access */ add_filter('pfm_check_forum_errors','idblr_check_access_global_view',5, 2); function idblr_check_access_global_view($errors, $data){ $GLOBALS['guestrole'] = false; if(!$data->is_forum && !$data->is_topic) return $errors; $forum_id = $data->object->forum_id; $roleAccess = pfm_get_meta($forum_id,'forum','role_access'); if(!$roleAccess) return $errors; $PrimeUser_ = new PrimeUser(); global $PrimeUser; //if(!in_array($PrimeUser->user_role, $roleAccess)) // $errors['error'][] = __('Приватный форум. Вам запрещено просматривать содержимое этого форума.'); $guestfound = in_array('guest', $roleAccess); $selffound = in_array($PrimeUser_->user_role, $roleAccess); if($guestfound && !$selffound) { $PrimeUser->user_role = 'guest'; $PrimeUser_->user_role = 'guest'; $GLOBALS['guestrole'] = true; } return $errors; } /** * Отключает текстовый редактор и выдает предупреждение * об ограничении возможности оставлять сообщения */ add_filter('pfm_is_can','idblr_is_can',10,2); function idblr_is_can($att, $action){ global $PrimeQuery; if( !('post_create'===$action || 'topic_create'===$action) || !($PrimeQuery->is_forum || $PrimeQuery->is_topic) ) return $att; //vardump($GLOBALS['guestrole']); if( $GLOBALS['guestrole'] ) return 0; return $att; }
Код работает совместно c дополнениями
и