Добавление своих ролей в BBPress
Блог
Делимся с Вами своими знаниями и новостями
18.03.2016

Добавление своих ролей в BBPress

Добавление своих ролей в BBPress

Добавление своих ролей в BBPress поможет Вам сделать в своем форуме на BBPress свои роли. Это очень удобно, иметь возможность создавать самому роли. Давайте не будем долго ходить сюда да около и сразу перейдем к делу.

Для того, чтобы добавить свои роли в BBPress Вам необходимо открыть следующий файл по адресу: Ваш сайт/wp-content/plugins/bbpress/includes/users/capabilities.php

После того, как Вы откроете данный файл в любом редакторе кода идем в самый конец этого документа и вставляем функции, которые будут добавлять новые роли пользователей для наших членов форума. Учтите, данные роли мы сможем через админку WordPress присваивать нужным нам людям — это очень удобно.

Добавление своих ролей в BBPress — редактирование плагина





//code to add tutor role 
 
function add_new_roles( $bbp_roles )
{
    /* Add a role called tutor */
    $bbp_roles['bbp_tutor'] = array(
        'name' => 'Tutor',
        'capabilities' => custom_capabilities( 'bbp_tutor' )
        );
 
    /* Add a role called pupil */
    $bbp_roles['bbp_pupil'] = array(
        'name' => 'Pupil',
        'capabilities' => custom_capabilities( 'bbp_pupil' )
        );
 
    return $bbp_roles;
}
 
add_filter( 'bbp_get_dynamic_roles', 'add_new_roles', 1 );
 
function add_role_caps_filter( $caps, $role )
{
    /* Only filter for roles we are interested in! */
    if( $role == 'bbp_tutor' )
        $caps = custom_capabilities( $role );
 
    if( $role == 'bbp_pupil' )
        $caps = custom_capabilities( $role );
 
    return $caps;
}
 
add_filter( 'bbp_get_caps_for_role', 'add_role_caps_filter', 10, 2 );
 
function custom_capabilities( $role )
{
    switch ( $role )
    {
 
        /* Capabilities for 'tutor' role */
        case 'bbp_tutor':
            return array(
                // Primary caps
                'spectate'              => true,
                'participate'           => true,
                'moderate'              => false,
                'throttle'              => false,
                'view_trash'            => false,
 
                // Forum caps
                'publish_forums'        => false,
                'edit_forums'           => false,
                'edit_others_forums'    => false,
                'delete_forums'         => false,
                'delete_others_forums'  => false,
                'read_private_forums'   => true,
                'read_hidden_forums'    => false,
 
                // Topic caps
                'publish_topics'        => true,
                'edit_topics'           => true,
                'edit_others_topics'    => false,
                'delete_topics'         => false,
                'delete_others_topics'  => false,
                'read_private_topics'   => true,
 
                // Reply caps
                'publish_replies'       => true,
                'edit_replies'          => true,
                'edit_others_replies'   => false,
                'delete_replies'        => false,
                'delete_others_replies' => false,
                'read_private_replies'  => true,
 
                // Topic tag caps
                'manage_topic_tags'     => false,
                'edit_topic_tags'       => false,
                'delete_topic_tags'     => false,
                'assign_topic_tags'     => true,
            );
 
            /* Capabilities for 'pupil' role */
        case 'bbp_pupil':
            return array(
                // Primary caps
                'spectate'              => true,
                'participate'           => true,
                'moderate'              => false,
                'throttle'              => false,
                'view_trash'            => false,
 
                // Forum caps
                'publish_forums'        => false,
                'edit_forums'           => false,
                'edit_others_forums'    => false,
                'delete_forums'         => false,
                'delete_others_forums'  => false,
                'read_private_forums'   => true,
                'read_hidden_forums'    => false,
 
                // Topic caps
                'publish_topics'        => true,
                'edit_topics'           => true,
                'edit_others_topics'    => false,
                'delete_topics'         => false,
                'delete_others_topics'  => false,
                'read_private_topics'   => true,
 
                // Reply caps
                'publish_replies'       => true,
                'edit_replies'          => true,
                'edit_others_replies'   => false,
                'delete_replies'        => false,
                'delete_others_replies' => false,
                'read_private_replies'  => true,
 
                // Topic tag caps
                'manage_topic_tags'     => false,
                'edit_topic_tags'       => false,
                'delete_topic_tags'     => false,
                'assign_topic_tags'     => true,
            );
 
            break;
 
        default :
            return $role;
    }
}

Этим кодом мы добавили две роли: tutor и pupil. Используйте этот шаблон, чтобы делать свои роли. Учтите такой момент, каждой роли Вы должны указать, то, что может делать персонаж с этой ролью на форуме. Я считаю, что код очень прост и элементарен, но если будут вопросы, пишите в комментариях — обязательно помогу.

Метки:

Свяжитесь с нами уже сейчас

Вы привыкли видеть здесь форму обратной связи. Ведь так? Ее делают почти все. Но исследуя поведение людей, мы пришли к выводу, что форма совершенно не нужна. В любом случае все сводится к обсуждению Вашего проекта в WhatsApp или Telegram. А зачем нам тратить Ваше время на заполнение различных форм? Поэтому, пишите в Telegram или в WhatsApp.