cforge-2.0.x-dev/modules/cforge_offline/cforge_offline.install

modules/cforge_offline/cforge_offline.install
<?php

/**
 * @file
 * Install hooks for cforge_offline.
 */

use Drupal\user\Entity\Role;
use Drupal\Core\Entity\Entity\EntityFormDisplay;
use Drupal\views\Entity\View;

/**
 * Implements hook_install().
 */
function cforge_offline_install() {
  // Add the masquerade nominate to the default user form display.
  $settings = [
    'type' => 'entity_reference_autocomplete_tags',
    'weight' => 12,
    //'region' => 'content',
    'settings' => [
      'match_operator' => 'CONTAINS',
      'size' => 60,
      'placeholder' => 'Names of members...',
    ],
  ];
  EntityFormDisplay::load('user.user.default')
    ->setComponent('masquerade_nominees', $settings)
    ->save();

  Role::load('committee')
    ->grantPermission('masquerade as any user')->save();

  cforge_offline_modify_admin_user_view();
}

/**
 * Implements hook_modules_uninstalled().
 */
function cforge_offline_modules_uninstalled($modules) {
  if (in_array('cforge_offline', $modules)) {
    \Drupal::service('module_installer')->uninstall(['masquerade_nominate', 'masquerade']);
  }
}

/**
 * Add an exposed filter to the user_admin_people view.
 */
function cforge_offline_modify_admin_user_view() {
  $view = View::load('user_admin_people');
  $display = &$view->getDisplay('default');
  $display['display_options']['filters']['masquerade_nominees_target_id'] = [
    'id' => 'masquerade_nominees_target_id',
    'table' => 'user__masquerade_nominees',
    'field' => 'masquerade_nominees_target_id',
    'relationship' => 'none',
    'group_type' => 'count',
    'admin_label' => '',
    'operator' => '=',
    'value' => [
      'min' => '',
      'max' => '',
      'value' => '',
    ],
    'group' => 1,
    'exposed' => TRUE,
    'expose' => [
      'operator_id' => 'masquerade_nominees_target_id_op',
      'label' => 'Trusted nominees',
      'description' => NULL,
      'use_operator' => FALSE,
      'operator' => 'masquerade_nominees_target_id_op',
      'identifier' => 'masquerade_nominees_target_id',
      'required' => FALSE,
      'remember' => FALSE,
      'multiple' => FALSE,
      'remember_roles' => [
        'authenticated' => 'authenticated',
      ],
    ],
    'is_grouped' => TRUE,
    'group_info' => [
      'label' => 'Postal',
      'description' => '',
      'identifier' => 'masquerade_nominees_target_id',
      'optional' => FALSE,
      'widget' => 'select',
      'multiple' => FALSE,
      'remember' => FALSE,
      'default_group' => '1',
      'default_group_multiple' => [],
      'group_items' => [
        0 => [
          'title' => '- Any -',
          'operator' => 'not between',
          'value' => [
            'min' => 1,
            'max' => 1,
            'min' => ''
          ]
        ],
        1 => [
          'title' => 'All members',
          'operator' => 'empty',
        ],
        2 => [
          'title' => 'Postal member',
          'operator' => 'not empty',
        ],
      ],
    ],
    'plugin_id' => 'numeric',
  ];
  $view->save();
}

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

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