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',
[],
];
}
}
