varbase_heroslider_media.install in Media Hero Slider 9.0.x
Same filename and directory in other branches
Install, update and uninstall functions for the varbase hero slider media.
File
varbase_heroslider_media.installView source
<?php
/**
* @file
* Install, update and uninstall functions for the varbase hero slider media.
*/
use Symfony\Component\Yaml\Yaml;
use Drupal\Core\Config\InstallStorage;
use Drupal\Core\Config\StorageInterface;
use Drupal\Core\Config\FileStorage;
/**
* Implements hook_install().
*/
function varbase_heroslider_media_install() {
$module_name = preg_replace('/_install$/', '', __FUNCTION__);
$module_path = Drupal::service('module_handler')
->getModule($module_name)
->getPath();
// Processer for install: in [$module_name].info.yml file.
// --------------------------------------------------------------------------.
$module_info_file = $module_path . '/' . $module_name . '.info.yml';
if (file_exists($module_info_file)) {
$module_info_data = (array) Yaml::parse(file_get_contents($module_info_file));
if (isset($module_info_data['install']) && is_array($module_info_data['install'])) {
\Drupal::service('module_installer')
->install($module_info_data['install'], TRUE);
}
}
// Install optional configs.
$optional_install_path = $module_path . '/' . InstallStorage::CONFIG_OPTIONAL_DIRECTORY;
if (is_dir($optional_install_path)) {
$config_installer = \Drupal::service('config.installer');
$config_installer
->installDefaultConfig('module', $module_name);
// Install any optional config the module provides.
$storage = new FileStorage($optional_install_path, StorageInterface::DEFAULT_COLLECTION);
$config_installer
->installOptionalConfig($storage, '');
// Have the .settings.yml configs into the active config.
$settings_config_files = \Drupal::service('file_system')
->scanDirectory($optional_install_path, '/^.*\\.(settings.yml)$/i');
foreach ($settings_config_files as $settings_config_file) {
$settings_config_file_content = file_get_contents(DRUPAL_ROOT . '/' . $settings_config_file->uri);
$settings_config_file_data = (array) Yaml::parse($settings_config_file_content);
$config_factory = \Drupal::configFactory()
->getEditable($settings_config_file->name);
$config_factory
->setData($settings_config_file_data)
->save(TRUE);
}
}
// --------------------------------------------------------------------------.
}
/**
* Implements hook_requirements().
*/
function varbase_heroslider_media_requirements($phase) {
$requirements = [];
$path = DRUPAL_ROOT . '/libraries/slick/slick/slick.min.js';
// Is the library found in the root libraries path.
$library_found = file_exists($path);
// If library is not found, then look in the current profile libraries path.
if (!$library_found) {
$profile_path = drupal_get_path('profile', \Drupal::installProfile());
$profile_path .= '/libraries/slick/slick/slick.min.js';
// Is the library found in the current profile libraries path.
$library_found = file_exists($profile_path);
}
if (!$library_found) {
$requirements['slick_library'] = [
'title' => t('Slick library missing'),
'description' => t('Media Hero Slider requires the slick.min.js library.
Download it (https://github.com/kenwheeler/slick) and place it in the
libraries folder (/libraries)'),
'severity' => REQUIREMENT_ERROR,
];
}
return $requirements;
}
/**
* Issue #3175810: Fix deprecated function getCurrentUserId replaced.
*
* By getDefaultEntityOwner in
* core.base_field_override.node.varbase_heroslider_media.uid config.
*/
function varbase_heroslider_media_update_8701() {
$config_factory = \Drupal::service('config.factory');
$node_uid_configs = $config_factory
->listAll('core.base_field_override.node.');
// Update for core.base_field_override.node.varbase_heroslider_media.uid
// And all content types.
foreach ($node_uid_configs as $node_uid_config) {
if (substr($node_uid_config, -4) === ".uid") {
$node_uid_config_factory = $config_factory
->getEditable($node_uid_config);
$default_value_callback = $node_uid_config_factory
->get('default_value_callback');
if (isset($default_value_callback) && !empty($default_value_callback) && $default_value_callback === 'Drupal\\node\\Entity\\Node::getCurrentUserId') {
$node_uid_config_factory
->set('default_value_callback', 'Drupal\\node\\Entity\\Node::getDefaultEntityOwner')
->save(TRUE);
}
}
}
}
Functions
Name![]() |
Description |
---|---|
varbase_heroslider_media_install | Implements hook_install(). |
varbase_heroslider_media_requirements | Implements hook_requirements(). |
varbase_heroslider_media_update_8701 | Issue #3175810: Fix deprecated function getCurrentUserId replaced. |