bee_hotel-1.x-dev/bee_hotel.install
bee_hotel.install
<?php
/**
* @file
* BEE Hotel install/update/uninstall hook implementation.
*/
use Drupal\Component\Serialization\Yaml;
use Drupal\image\Entity\ImageStyle;
/**
* Implements hook_requirements().
*
* Bee Hotel has dependencies on more core/contributed module settings.
* Managed as Drupal requirements, we limit controls at runtime.
*/
function bee_hotel_requirements($phase) {
$requirements = [];
// ******************.
/* A. Image styles */
// Required image styles.
$data['required']['styles'] = [
"cover_image_teaser",
"thumbnail",
];
$styles = ImageStyle::loadMultiple();
foreach ($data['required']['styles'] as $required_style) {
$key = 'bee_hotel_style_' . $required_style;
$missings_styles[$required_style] = FALSE;
$requirements[$key] = [
'title' => t('Required image style'),
'description' => t('@style not fund. Please <a href="/admin/config/media/image-styles">check or create image style @style', ['@style' => $required_style]),
'severity' => REQUIREMENT_ERROR,
];
foreach (ImageStyle::loadMultiple() as $id => $object) {
if ($required_style == $id) {
unset($requirements[$key]);
}
}
}
return $requirements;
}
/**
* Implements hook_install().
*/
function bee_hotel_install() {
bee_hotel_update_modules_weight();
}
/**
* Implements hook_entity_uninstall().
*/
function bee_hotel_uninstall() {
\Drupal::configFactory()->getEditable('bee_hotel.settings')->delete();
bee_hotel_clean_config();
}
/**
* Update all config settings (beehotel unit image cover field now defined)
*/
function bee_hotel_update_8001(&$sandbox) {
$data = [];
$data['module_path'] = \Drupal::service('extension.list.module')->getPath('bee_hotel');
$data['yml'] = Yaml::decode(file_get_contents($data['module_path'] . '/config/install/beehotel.settings.yml'));
$data['config'] = \Drupal::service('config.factory')->getEditable('beehotel.settings');
if (empty($data['config']->get("beehotel"))) {
$data['config']->set("beehotel", $data['yml']['beehotel'])->save();
}
}
/**
* Enable beehotel_utils module.
*/
function bee_hotel_update_8002(&$sandbox) {
if (!\Drupal::service('module_handler')->moduleExists('beehotel_utils')) {
\Drupal::service('module_installer')->install(['beehotel_utils']);
}
drupal_flush_all_caches();
}
/**
* Ewelink integration with role and permission.
*/
function bee_hotel_update_8003(&$sandbox) {
// @todo 21lug2025.
// Check ewelink module is enabled.
// Create a Role named open_the_door_user.
// Assign Role open_the_door_user ewelink : "access ewelink open-the-door".
drupal_flush_all_caches();
}
/**
* Set default check-in/check-out times for existing sites.
*/
function bee_hotel_update_8004(&$sandbox) {
$config = \Drupal::service('config.factory')->getEditable('bee_hotel.settings');
if (!$config->get('dateandtime.default_checkin_time')) {
$config->set('dateandtime.default_checkin_time', '15:00');
}
if (!$config->get('dateandtime.default_checkout_time')) {
$config->set('dateandtime.default_checkout_time', '10:00');
}
$config->save();
return t('Default check-in and check-out times have been set.');
}
