og_sm-8.x-1.0/og_sm_path/og_sm_path.module

og_sm_path/og_sm_path.module
<?php

/**
 * @file
 * Module to support Site paths.
 */

use Drupal\Core\Form\FormStateInterface;
use Drupal\og_sm\OgSm;

/**
 * Implements hook_module_implements_alter().
 */
function og_sm_path_module_implements_alter(&$implementations, $hook) {
  if ($hook === 'form_alter' && isset($implementations['og_sm_path'])) {
    $group = $implementations['og_sm_path'];
    unset($implementations['og_sm_path']);
    $implementations['og_sm_path'] = $group;
  }
}

/**
 * Implements hook_form_FORM_ID_alter() for node_form().
 */
function og_sm_path_form_node_form_alter(array &$form, FormStateInterface $form_state) {
  /** @var \Drupal\Core\Entity\EntityFormInterface $form_object */
  $form_object = $form_state->getFormObject();

  /** @var \Drupal\node\NodeInterface $node */
  $node = $form_object->getEntity();

  if (OgSm::isSite($node)) {
    $form_state->loadInclude('og_sm_path', 'inc', 'og_sm_path.admin');
    _og_sm_path_form_node_site_form_alter($form, $form_state);
  }
}

/**
 * Implements hook_form_FORM_ID_alter() for pathauto_pattern_form().
 */
function og_sm_path_form_pathauto_pattern_form_alter(&$form, FormStateInterface $form_state) {
  $form_state->loadInclude('og_sm_path', 'inc', 'og_sm_path.admin');
  _og_sm_path_form_pathauto_patterns_form_alter($form, $form_state);
}

/**
 * Implements hook_entity_extra_field_info().
 */
function og_sm_path_entity_extra_field_info() {
  // Make sure that the placement of the Site path field can be altered in the
  // node forms.
  $extra = [];
  $site_types = OgSm::siteTypeManager()->getSiteTypes();

  foreach ($site_types as $site_type) {
    $extra['node'][$site_type->id()]['form']['site_path'] = [
      'label' => t('Site Path'),
      'description' => t('The Site path prefix.'),
      'weight' => -10,
    ];
  }

  return $extra;
}

/**
 * Implements hook_toolbar_alter().
 */
function og_sm_path_toolbar_alter(&$items) {
  if (isset($items['user']['tray']['user_links']['#lazy_builder'])) {
    $items['user']['tray']['user_links']['#lazy_builder'] = [
      'og_sm.path.user_toolbar_link_builder:renderToolbarLinks',
      [],
    ];
  }
}

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

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