openlucius-2.0.0-alpha3/modules/core/ol_members/src/Controller/MembersController.php

modules/core/ol_members/src/Controller/MembersController.php
<?php

namespace Drupal\ol_members\Controller;

use Drupal\Core\Controller\ControllerBase;
use Drupal\ol_main\Services\OlSections;
use Drupal\ol_members\Services\OlMembers;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Drupal\Core\Form\FormBuilder;

/**
 * Class MembersController.
 */
class MembersController extends ControllerBase {

  /**
   * @var $members
   */
  protected $members;

  /**
   * @var $form_builder
   */
  protected $form_builder;

  /**
   * @var $sections
   */
  protected $sections;

  /**
   * {@inheritdoc}
   */
  public function __construct(OlMembers $members, FormBuilder $form_builder, OlSections $sections) {
    $this->members = $members;
    $this->form_builder = $form_builder;
    $this->sections = $sections;
  }
  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container) {
    return new static(
      $container->get('olmembers.members'),
      $container->get('form_builder'),
      $container->get('olmain.sections')
    );
  }

  /**
   * @param $gid
   * @return array
   * @throws \Exception
   */
  public function getMembersGroup($gid){

    $group_admin_uid = $this->members->isGroupAdmin();
    $members_form = $this->form_builder->getForm(\Drupal\ol_members\Form\MembersForm::class);
    $members_list_data = $this->members->getUsersInGroup();
    $member_cards = $this->members->renderMembersCards($members_list_data, $gid, $group_admin_uid);
    $is_user_manager = $this->members->isUserManager();
    $can_add_members = is_numeric($group_admin_uid) || $is_user_manager;
    $page_title = $this->sections->getSectionOverrideTitle('members', 'Members');

    // Build it.
    $theme_vars = [
      'members_form' => $members_form,
      'member_cards' => $member_cards,
      'can_add_members' => $can_add_members,
      'page_title' => $page_title,
    ];
    return [
      '#theme' => 'members_page',
      '#vars' => $theme_vars,
    ];
  }

  /**
   * @return array
   * @throws \Exception
   */
  public function getMembersAll(){
    // Get data.
    $members_list_data = $this->members->getAllUsers();
    $member_cards = $this->members->renderMembersCards($members_list_data);
    $title = t('Active users');
    // Build it.
    $theme_vars = [
      'member_cards' => $member_cards,
      'title' => $title,
      'all_members' => 1,
    ];
    return [
      '#theme' => 'members_page',
      '#vars' => $theme_vars,
    ];
  }

  /**
   * @return array
   * @throws \Exception
   */
  public function getMembersAllBlocked(){
    // Get data.
    $members_list_data = $this->members->getAllUsers(0);
    $member_cards = $this->members->renderMembersCards($members_list_data, null, null, TRUE);
    $title = t('Blocked users');
    // Build it.
    $theme_vars = [
      'member_cards' => $member_cards,
      'title' => $title,
      'blocked_users' => 1,
    ];
    return [
      '#theme' => 'members_page',
      '#vars' => $theme_vars,
    ];
  }

  /**
   * @param $gid
   * @param $uid
   */
  public function removeMemberFromGroup($gid, $uid){
    $this->members->deleteUserGroupRelation($uid);
  }

  /**
   * @param $uid
   *
   * @throws \Drupal\Core\Entity\EntityStorageException
   */
  public function makeUserManager($uid) {
    $this->members->addUserRole($uid, 'user_manager');
  }

  /**
   * @param $uid
   * @throws \Drupal\Core\Entity\EntityStorageException
   */
  public function removeUserManager($uid){
    $this->members->removeUserRole($uid,'user_manager');
  }

  /**
   * @param $uid
   *
   * @throws \Drupal\Core\Entity\EntityStorageException
   */
  public function blockMember($uid){
    $this->members->blockUser($uid);
  }

  /**
   * @param $uid
   *
   * @throws \Drupal\Core\Entity\EntityStorageException
   */
  public function unblockMember($uid){
    $this->members->unblockUser($uid);
  }


}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc