demo_umami_content.install
Same filename in other branches
Install, update and uninstall functions for the module.
File
-
core/
profiles/ demo_umami/ modules/ demo_umami_content/ demo_umami_content.install
View source
<?php
/**
* @file
* Install, update and uninstall functions for the module.
*/
use Drupal\demo_umami_content\InstallHelper;
/**
* Implements hook_module_preinstall().
*/
function demo_umami_content_module_preinstall($module) {
if ($module === 'demo_umami_content' && !\Drupal::service('config.installer')->isSyncing()) {
// Run before importing config so blocks are created with the correct
// dependencies.
\Drupal::classResolver(InstallHelper::class)->importContent();
}
}
/**
* Implements hook_install().
*/
function demo_umami_content_install($is_syncing) : void {
if (!$is_syncing) {
$query = \Drupal::entityQuery('node')->accessCheck(TRUE);
$nids = $query->execute();
if (empty($nids)) {
return;
}
// Sort node IDs in descending order
rsort($nids);
$nodes = \Drupal::entityTypeManager()->getStorage('node')
->loadMultiple($nids);
// Use a counter to determine the "days ago" offset
$counter = 1;
foreach ($nodes as $node) {
// Get all translation languages for the node
$languages = $node->getTranslationLanguages();
foreach ($languages as $language) {
// Load the translated version of the node.
$translatedNode = $node->getTranslation($language->getId());
try {
// Use the counter to calculate "days ago".
$timestamp = strtotime("-{$counter} days");
// Set the created and updated time for the translated node.
$translatedNode->setCreatedTime($timestamp);
$translatedNode->setChangedTime($timestamp);
// Check if the translation is the default language.
// If not, mark the translation as changed.
if (!$translatedNode->isDefaultTranslation()) {
$translatedNode->setNewRevision(FALSE);
$translatedNode->isDefaultRevision(FALSE);
$translatedNode->setRevisionTranslationAffected(TRUE);
}
$translatedNode->save();
} catch (\Exception $e) {
\Drupal::logger('system')->error($e->getMessage());
}
}
// Increment the counter for the next node
$counter++;
}
}
}
/**
* Implements hook_uninstall().
*/
function demo_umami_content_uninstall($is_syncing) : void {
if (!$is_syncing) {
\Drupal::classResolver(InstallHelper::class)->deleteImportedContent();
}
}
Functions
Title | Deprecated | Summary |
---|---|---|
demo_umami_content_install | Implements hook_install(). | |
demo_umami_content_module_preinstall | Implements hook_module_preinstall(). | |
demo_umami_content_uninstall | Implements hook_uninstall(). |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.