localgov_directories-3.3.1/modules/localgov_directories_promo_page/localgov_directories_promo_page.install
modules/localgov_directories_promo_page/localgov_directories_promo_page.install
<?php
/**
* @file
* Update functions for the LocalGov Directories Promo Page.
*/
use Drupal\node\Entity\Node;
use Drupal\pathauto\Entity\PathautoPattern;
/**
* Implements hook_install().
*/
function localgov_directories_promo_page_install($is_syncing): void {
if ($is_syncing) {
return;
}
// Install default config for simple_sitemap, as this does not appear to work
// in the config/optional folder.
// Discussed on https://www.drupal.org/project/simple_sitemap/issues/3156080
if (\Drupal::moduleHandler()->moduleExists('simple_sitemap')) {
$generator = \Drupal::service('simple_sitemap.entity_manager');
$generator->setBundleSettings('node', 'localgov_directory_promo_page', [
'index' => TRUE,
'priority' => '0.5',
]);
}
}
/**
* Adds pathauto pattern if there is not one yet.
*/
function localgov_directories_promo_page_update_8001() {
$pathauto = \Drupal::service('pathauto.generator');
$entity = Node::create([
'type' => 'localgov_directory_promo_page',
]);
$pattern = $pathauto->getPatternByEntity($entity);
if (empty($pattern)) {
$pattern = PathautoPattern::create([
'id' => 'localgov_directories_promo_page',
'label' => 'Directory Promo Page',
'type' => 'canonical_entities:node',
'pattern' => '[node:title]',
'selection_logic' => 'and',
'weight' => -5,
]);
$pattern->getSelectionConditions()->addInstanceId(
'cf0a2bbc-3869-4912-a0e7-0f25ba4fcd1e', [
'id' => 'entity_bundle:node',
'bundles' => [
'localgov_directory_promo_page' => 'localgov_directory_promo_page',
],
'negate' => FALSE,
'context_mapping' => [
'node' => 'node',
],
'uuid' => 'cf0a2bbc-3869-4912-a0e7-0f25ba4fcd1e',
],
);
$pattern->save();
}
}
