From 5dfed6395a19fa51eb505c9451fe7683813ba60e Mon Sep 17 00:00:00 2001 From: Camilo Villamizar Date: Wed, 28 Jun 2023 15:06:15 -0300 Subject: [PATCH] FREEDOM-198 + hook to generate clean title URL alias on page save --- config-yml/core.extension.yml | 1 + .../{refresh_nodes.php => refresh_laws.php} | 0 .../aaslp_core/scripts/refresh_pages.php | 37 +++++++++++++++++++ custom/modules/page/page.info.yml | 6 +++ custom/modules/page/page.module | 28 ++++++++++++++ 5 files changed, 72 insertions(+) rename custom/modules/aaslp_core/scripts/{refresh_nodes.php => refresh_laws.php} (100%) create mode 100644 custom/modules/aaslp_core/scripts/refresh_pages.php create mode 100644 custom/modules/page/page.info.yml create mode 100644 custom/modules/page/page.module diff --git a/config-yml/core.extension.yml b/config-yml/core.extension.yml index 17268a8..cb9707e 100644 --- a/config-yml/core.extension.yml +++ b/config-yml/core.extension.yml @@ -66,6 +66,7 @@ module: mysql: 0 node: 0 node_edit_protection: 0 + page: 0 page_cache: 0 path: 0 path_alias: 0 diff --git a/custom/modules/aaslp_core/scripts/refresh_nodes.php b/custom/modules/aaslp_core/scripts/refresh_laws.php similarity index 100% rename from custom/modules/aaslp_core/scripts/refresh_nodes.php rename to custom/modules/aaslp_core/scripts/refresh_laws.php diff --git a/custom/modules/aaslp_core/scripts/refresh_pages.php b/custom/modules/aaslp_core/scripts/refresh_pages.php new file mode 100644 index 0000000..87b12e2 --- /dev/null +++ b/custom/modules/aaslp_core/scripts/refresh_pages.php @@ -0,0 +1,37 @@ +condition('type', $bundle) + ->execute(); + + if (!empty($nids)) { + foreach ($nids as $nid) { + $node = Node::load($nid); + + if ($node) { + $title = $node->getTitle(); + $node->save(); + echo "[-] [$title]->[Updated]\n"; + } + } + } +} diff --git a/custom/modules/page/page.info.yml b/custom/modules/page/page.info.yml new file mode 100644 index 0000000..ee0c265 --- /dev/null +++ b/custom/modules/page/page.info.yml @@ -0,0 +1,6 @@ +name: Page Module +type: module +description: Custom/extended functionality for content type page +core: 8.x +core_version_requirement: ^8 || ^9 +package: AASLP diff --git a/custom/modules/page/page.module b/custom/modules/page/page.module new file mode 100644 index 0000000..c0de22b --- /dev/null +++ b/custom/modules/page/page.module @@ -0,0 +1,28 @@ +bundle() == 'page') { + // Auto-generate alias from title. + $nid = $entity->id(); + $alias = \Drupal::service('pathauto.alias_cleaner')->cleanString(strToLower(trim($entity->title->getValue()[0]['value']))); + + $path_alias = PathAlias::create([ + 'path' => "/node/$nid", + 'alias' => "/$alias", + ]); + + $path_alias->save(); + } +} +