varbase.install in Varbase: The Ultimate Drupal CMS Starter Kit (Bootstrap Ready) 8.4
Same filename and directory in other branches
Install, update and uninstall functions for the Varbase installation profile.
File
varbase.installView source
<?php
/**
* @file
* Install, update and uninstall functions for the Varbase installation profile.
*/
use Symfony\Component\Yaml\Yaml;
use Drupal\user\Entity\User;
use Drupal\user\RoleInterface;
use Drupal\shortcut\Entity\Shortcut;
/**
* Implements hook_install().
*
* Perform actions to set up the site for this profile.
*
* @see system_install()
*/
function varbase_install() {
// Set front page to "node".
\Drupal::configFactory()
->getEditable('system.site')
->set('page.front', '/node')
->save(TRUE);
// Assign user 1 the "administrator" role.
$user = User::load(1);
$user->roles[] = 'administrator';
$user
->save();
// Restrict user registration to admin role creation.
\Drupal::configFactory()
->getEditable('user.settings')
->set('register', USER_REGISTER_ADMINISTRATORS_ONLY)
->save(TRUE);
// Allow authenticated users to use shortcuts.
user_role_grant_permissions(RoleInterface::AUTHENTICATED_ID, [
'access shortcuts',
]);
// Populate the default shortcut set.
$shortcut = Shortcut::create(array(
'shortcut_set' => 'default',
'title' => t('Add content'),
'weight' => 0,
'link' => array(
'uri' => 'internal:/node/add',
),
));
$shortcut
->save();
$shortcut = Shortcut::create(array(
'shortcut_set' => 'default',
'title' => t('All content'),
'weight' => 1,
'link' => array(
'uri' => 'internal:/admin/content',
),
));
$shortcut
->save();
$shortcut = Shortcut::create(array(
'shortcut_set' => 'default',
'title' => t('All media'),
'weight' => 2,
'link' => array(
'uri' => 'internal:/admin/content/media',
),
));
$shortcut
->save();
$shortcut = Shortcut::create(array(
'shortcut_set' => 'default',
'title' => t('Taxonomy'),
'weight' => 3,
'link' => array(
'uri' => 'internal:/admin/structure/taxonomy',
),
));
$shortcut
->save();
$shortcut = Shortcut::create(array(
'shortcut_set' => 'default',
'title' => t('Permissions'),
'weight' => 4,
'link' => array(
'uri' => 'internal:/admin/people/permissions',
),
));
$shortcut
->save();
// Allow all users to use search.
user_role_grant_permissions(RoleInterface::ANONYMOUS_ID, array(
'search content',
));
user_role_grant_permissions(RoleInterface::AUTHENTICATED_ID, array(
'search content',
));
// Enable the admin theme.
\Drupal::configFactory()
->getEditable('node.settings')
->set('use_admin_theme', TRUE)
->save(TRUE);
// Entity updates to clear up any mismatched entity and/or field definitions
// And Fix changes were detected in the entity type and field definitions.
\Drupal::entityDefinitionUpdateManager()
->applyUpdates();
// Activate Varbase Bootstrap Paragraphs Settings in the active config.
if (\Drupal::moduleHandler()
->moduleExists('varbase_bootstrap_paragraphs')) {
$profile_path = drupal_get_path('profile', 'varbase') . '/config/optional/';
$config_path = $profile_path . 'varbase_bootstrap_paragraphs.settings.yml';
$config_content = file_get_contents($config_path);
$config_data = (array) Yaml::parse($config_content);
$config_factory = \Drupal::configFactory()
->getEditable('varbase_bootstrap_paragraphs.settings');
$config_factory
->setData($config_data)
->save(TRUE);
}
// If Varbase Tour were enabled then redirect to the homepage with activ tour.
if (isset($GLOBALS['homepage_with_varbase_tour']) && $GLOBALS['homepage_with_varbase_tour'] == TRUE) {
$homepage_with_tour = "/?tour";
$response = new Symfony\Component\HttpFoundation\RedirectResponse($homepage_with_tour);
$response
->send();
exit;
include_once __DIR__ . '/../../core/includes/install.core.inc';
include_once __DIR__ . '/../../core/includes/install.inc';
install_goto('?tour');
}
}
/**
* Uninstall not needed feature modules as they had been moved to the profile.
*
* - varbase_user: Provide User related configuration. configs moved to profile.
* - varbase_site: Provides site components. configs moved to profile.
*/
function varbase_update_8001() {
// Read the extension configuration.
$modules_data = \Drupal::config('core.extension')
->get('module');
// Unset the varbase_user feature module.
if (isset($modules_data['varbase_user'])) {
unset($modules_data['varbase_user']);
}
// Unset the varbase_site feature module.
if (isset($modules_data['varbase_site'])) {
unset($modules_data['varbase_site']);
}
// Save the configuration.
\Drupal::configFactory()
->getEditable('core.extension')
->set('module', $modules_data)
->save();
}
/**
* Uninstall Layout plugin, then enables Layout Discovery.
*/
function varbase_update_8002() {
if (\Drupal::moduleHandler()
->moduleExists('layout_plugin')) {
\Drupal::service('module_installer')
->uninstall([
'layout_plugin',
], FALSE);
}
if (!\Drupal::moduleHandler()
->moduleExists('layout_discovery')) {
\Drupal::service('module_installer')
->install([
'layout_discovery',
], FALSE);
}
}
/**
* Disable display suite switch view mode module.
*/
function varbase_update_8003() {
if (\Drupal::moduleHandler()
->moduleExists('ds_switch_view_mode')) {
\Drupal::service('module_installer')
->uninstall([
'ds_switch_view_mode',
], FALSE);
}
}
/**
* Enable node edit protection module.
*/
function varbase_update_8004() {
if (!\Drupal::moduleHandler()
->moduleExists('node_edit_protection')) {
\Drupal::service('module_installer')
->install([
'node_edit_protection',
], FALSE);
}
}
/**
* Enable Settings Tray module.
*/
function varbase_update_8005() {
// Read the extension configuration.
$modules_data = \Drupal::config('core.extension')
->get('module');
// Unset the outside_in module.
if (isset($modules_data['outside_in'])) {
unset($modules_data['outside_in']);
}
// Save the configuration.
\Drupal::configFactory()
->getEditable('core.extension')
->set('module', $modules_data)
->save();
if (!\Drupal::moduleHandler()
->moduleExists('settings_tray')) {
\Drupal::service('module_installer')
->install([
'settings_tray',
], FALSE);
}
}
/**
* Enable content lock module.
*/
function varbase_update_8006() {
if (!\Drupal::moduleHandler()
->moduleExists('content_lock')) {
\Drupal::service('module_installer')
->install([
'content_lock',
], FALSE);
}
}
/**
* Enable content lock timeout module.
*/
function varbase_update_8007() {
if (!\Drupal::moduleHandler()
->moduleExists('content_lock_timeout')) {
\Drupal::service('module_installer')
->install([
'content_lock_timeout',
], FALSE);
}
}
/**
* Enable entityqueue module.
*/
function varbase_update_8008() {
if (!\Drupal::moduleHandler()
->moduleExists('entityqueue')) {
\Drupal::service('module_installer')
->install([
'entityqueue',
], FALSE);
}
}
/**
* Enable Crop API module.
*/
function varbase_update_8009() {
if (!\Drupal::moduleHandler()
->moduleExists('crop')) {
\Drupal::service('module_installer')
->install([
'crop',
], FALSE);
}
}
/**
* Enable focal point module.
*/
function varbase_update_8010() {
if (!\Drupal::moduleHandler()
->moduleExists('focal_point')) {
\Drupal::service('module_installer')
->install([
'focal_point',
], FALSE);
}
}
/**
* Enable mail system module.
*/
function varbase_update_8011() {
if (!\Drupal::moduleHandler()
->moduleExists('mailsystem')) {
\Drupal::service('module_installer')
->install([
'mailsystem',
], FALSE);
}
}
/**
* Enable SMTP Authentication Support module.
*/
function varbase_update_8012() {
if (!\Drupal::moduleHandler()
->moduleExists('smtp')) {
\Drupal::service('module_installer')
->install([
'smtp',
], FALSE);
}
}
/**
* Enable DropzoneJS module.
*/
function varbase_update_8013() {
if (!\Drupal::moduleHandler()
->moduleExists('dropzonejs')) {
\Drupal::service('module_installer')
->install([
'dropzonejs',
], FALSE);
}
}
/**
* Enable DropzoneJS entity browser widget module.
*/
function varbase_update_8014() {
if (!\Drupal::moduleHandler()
->moduleExists('dropzonejs_eb_widget')) {
\Drupal::service('module_installer')
->install([
'dropzonejs_eb_widget',
], FALSE);
}
}
/**
* Enable Enhanced Entity Browser module.
*/
function varbase_update_8015() {
if (!\Drupal::moduleHandler()
->moduleExists('entity_browser_enhanced')) {
\Drupal::service('module_installer')
->install([
'entity_browser_enhanced',
], FALSE);
}
}
/**
* Enable Image Optimize (or ImageAPI Optimize) module.
*/
function varbase_update_8016() {
if (!\Drupal::moduleHandler()
->moduleExists('imageapi_optimize')) {
\Drupal::service('module_installer')
->install([
'imageapi_optimize',
], FALSE);
}
}
/**
* Enable Libraries module.
*/
function varbase_update_8017() {
if (!\Drupal::moduleHandler()
->moduleExists('libraries')) {
\Drupal::service('module_installer')
->install([
'libraries',
], FALSE);
}
}
/**
* Enable ACE Editor module.
*/
function varbase_update_8018() {
if (!\Drupal::moduleHandler()
->moduleExists('ace_editor')) {
\Drupal::service('module_installer')
->install([
'ace_editor',
], FALSE);
}
}
/**
* Enable Menu Block module.
*/
function varbase_update_8019() {
if (!\Drupal::moduleHandler()
->moduleExists('menu_block')) {
\Drupal::service('module_installer')
->install([
'menu_block',
], FALSE);
}
}
/**
* Enable Persistent Login module.
*/
function varbase_update_8020() {
if (!\Drupal::moduleHandler()
->moduleExists('persistent_login')) {
\Drupal::service('module_installer')
->install([
'persistent_login',
], FALSE);
}
}
/**
* Enable Rabbit Hole module.
*/
function varbase_update_8021() {
if (!\Drupal::moduleHandler()
->moduleExists('rabbit_hole')) {
\Drupal::service('module_installer')
->install([
'rabbit_hole',
], FALSE);
}
}
/**
* Enable Rabbit Hole nodes module.
*/
function varbase_update_8022() {
if (!\Drupal::moduleHandler()
->moduleExists('rh_node')) {
\Drupal::service('module_installer')
->install([
'rh_node',
], FALSE);
}
}
/**
* Enable Rabbit Hole taxonomy module.
*/
function varbase_update_8023() {
if (!\Drupal::moduleHandler()
->moduleExists('rh_taxonomy')) {
\Drupal::service('module_installer')
->install([
'rh_taxonomy',
], FALSE);
}
}
/**
* Enable Fast 404 module.
*/
function varbase_update_8024() {
if (!\Drupal::moduleHandler()
->moduleExists('fast404')) {
\Drupal::service('module_installer')
->install([
'fast404',
], FALSE);
}
}
/**
* Enable Views Bootstrap module.
*/
function varbase_update_8025() {
if (!\Drupal::moduleHandler()
->moduleExists('views_bootstrap')) {
\Drupal::service('module_installer')
->install([
'views_bootstrap',
], FALSE);
}
}
/**
* Enable Varbase Security module.
*/
function varbase_update_8026() {
if (!\Drupal::moduleHandler()
->moduleExists('varbase_security')) {
\Drupal::service('module_installer')
->install([
'varbase_security',
], FALSE);
}
}
/**
* Enable Varbase SEO module.
*/
function varbase_update_8027() {
if (!\Drupal::moduleHandler()
->moduleExists('varbase_seo')) {
\Drupal::service('module_installer')
->install([
'varbase_seo',
], FALSE);
}
}
/**
* Enable Max length module.
*/
function varbase_update_8028() {
if (!\Drupal::moduleHandler()
->moduleExists('maxlength')) {
\Drupal::service('module_installer')
->install([
'maxlength',
], FALSE);
}
}
/**
* Enable Menu position module.
*/
function varbase_update_8029() {
if (!\Drupal::moduleHandler()
->moduleExists('menu_position')) {
\Drupal::service('module_installer')
->install([
'menu_position',
], FALSE);
}
}
/**
* Enable Better Exposed Filters module.
*/
function varbase_update_8030() {
if (!\Drupal::moduleHandler()
->moduleExists('better_exposed_filters')) {
\Drupal::service('module_installer')
->install([
'better_exposed_filters',
], FALSE);
}
}
/**
* Enable Link Attributes widget module.
*/
function varbase_update_8031() {
if (!\Drupal::moduleHandler()
->moduleExists('link_attributes')) {
\Drupal::service('module_installer')
->install([
'link_attributes',
], FALSE);
}
}
/**
* Add Field Description.
*/
function varbase_update_8032() {
$profile_path = drupal_get_path('profile', 'varbase') . '/config/install/';
$configs['field.storage.block_content.field_description'] = $profile_path . 'field.storage.block_content.field_description.yml';
$configs['field.storage.node.field_description'] = $profile_path . 'field.storage.node.field_description.yml';
$configs['field.storage.taxonomy_term.field_description'] = $profile_path . 'field.storage.taxonomy_term.field_description.yml';
foreach ($configs as $name => $config_path) {
$data = (array) Yaml::parse($config_path);
$config = \Drupal::configFactory()
->getEditable($name);
$config
->setData($data)
->save(TRUE);
}
}
/**
* Enabled "Create new revision" for Basic block.
*/
function varbase_update_8033() {
$profile_path = drupal_get_path('profile', 'varbase') . '/config/install/';
$config_path = $profile_path . 'block_content.type.basic.yml';
$data = (array) Yaml::parse($config_path);
$config = \Drupal::configFactory()
->getEditable('block_content.type.basic');
$config
->setData($data)
->save(TRUE);
}
/**
* Enable Config Filter module.
*/
function varbase_update_8034() {
if (!\Drupal::moduleHandler()
->moduleExists('config_filter')) {
\Drupal::service('module_installer')
->install([
'config_filter',
], FALSE);
}
}
/**
* Enable Config Ignore module.
*/
function varbase_update_8035() {
if (!\Drupal::moduleHandler()
->moduleExists('config_ignore')) {
\Drupal::service('module_installer')
->install([
'config_ignore',
], FALSE);
}
}
/**
* Init config settings for which general config to ignore with config ignore.
*/
function varbase_update_8036() {
$profile_path = drupal_get_path('profile', 'varbase') . '/config/install/';
$config_path = $profile_path . 'config_ignore.settings.yml';
$data = (array) Yaml::parse($config_path);
$config = \Drupal::configFactory()
->getEditable('config_ignore.settings');
$config
->setData($data)
->save(TRUE);
}
/**
* Enable Entityqueue Form Widget module.
*/
function varbase_update_8037() {
if (!\Drupal::moduleHandler()
->moduleExists('entityqueue_form_widget')) {
\Drupal::service('module_installer')
->install([
'entityqueue_form_widget',
], FALSE);
}
}
/**
* Enable Entity clone module.
*/
function varbase_update_8038() {
if (!\Drupal::moduleHandler()
->moduleExists('entity_clone')) {
\Drupal::service('module_installer')
->install([
'entity_clone',
], FALSE);
}
}
/**
* Enable Autocomplete Deluxe module.
*/
function varbase_update_8039() {
if (!\Drupal::moduleHandler()
->moduleExists('autocomplete_deluxe')) {
\Drupal::service('module_installer')
->install([
'autocomplete_deluxe',
], FALSE);
}
}
/**
* Add Color Configs to the Available styles for Varbase Bootstrap Paragraphs.
*/
function varbase_update_8040() {
// Activate Varbase Bootstrap Paragraphs Settings in the active config.
if (\Drupal::moduleHandler()
->moduleExists('varbase_bootstrap_paragraphs')) {
$profile_path = drupal_get_path('profile', 'varbase') . '/config/optional/';
$config_path = $profile_path . 'varbase_bootstrap_paragraphs.settings.yml';
$config_content = file_get_contents($config_path);
$config_data = (array) Yaml::parse($config_content);
$config_factory = \Drupal::configFactory()
->getEditable('varbase_bootstrap_paragraphs.settings');
$config_factory
->setData($config_data)
->save(TRUE);
}
}
/**
* Enable Varbase Tour module.
*/
function varbase_update_8041() {
if (!\Drupal::moduleHandler()
->moduleExists('varbase_tour')) {
\Drupal::service('module_installer')
->install([
'varbase_tour',
], FALSE);
}
}
/**
* Enable Settings Tray module as outside_in had been renamed settings_tray.
*/
function varbase_update_8042() {
// Read the extension configuration.
$modules_data = \Drupal::config('core.extension')
->get('module');
// Unset the outside_in module.
if (isset($modules_data['outside_in'])) {
unset($modules_data['outside_in']);
}
// Save the configuration.
\Drupal::configFactory()
->getEditable('core.extension')
->set('module', $modules_data)
->save();
if (!\Drupal::moduleHandler()
->moduleExists('settings_tray')) {
\Drupal::service('module_installer')
->install([
'settings_tray',
], FALSE);
}
}
Functions
Name | Description |
---|---|
varbase_install | Implements hook_install(). |
varbase_update_8001 | Uninstall not needed feature modules as they had been moved to the profile. |
varbase_update_8002 | Uninstall Layout plugin, then enables Layout Discovery. |
varbase_update_8003 | Disable display suite switch view mode module. |
varbase_update_8004 | Enable node edit protection module. |
varbase_update_8005 | Enable Settings Tray module. |
varbase_update_8006 | Enable content lock module. |
varbase_update_8007 | Enable content lock timeout module. |
varbase_update_8008 | Enable entityqueue module. |
varbase_update_8009 | Enable Crop API module. |
varbase_update_8010 | Enable focal point module. |
varbase_update_8011 | Enable mail system module. |
varbase_update_8012 | Enable SMTP Authentication Support module. |
varbase_update_8013 | Enable DropzoneJS module. |
varbase_update_8014 | Enable DropzoneJS entity browser widget module. |
varbase_update_8015 | Enable Enhanced Entity Browser module. |
varbase_update_8016 | Enable Image Optimize (or ImageAPI Optimize) module. |
varbase_update_8017 | Enable Libraries module. |
varbase_update_8018 | Enable ACE Editor module. |
varbase_update_8019 | Enable Menu Block module. |
varbase_update_8020 | Enable Persistent Login module. |
varbase_update_8021 | Enable Rabbit Hole module. |
varbase_update_8022 | Enable Rabbit Hole nodes module. |
varbase_update_8023 | Enable Rabbit Hole taxonomy module. |
varbase_update_8024 | Enable Fast 404 module. |
varbase_update_8025 | Enable Views Bootstrap module. |
varbase_update_8026 | Enable Varbase Security module. |
varbase_update_8027 | Enable Varbase SEO module. |
varbase_update_8028 | Enable Max length module. |
varbase_update_8029 | Enable Menu position module. |
varbase_update_8030 | Enable Better Exposed Filters module. |
varbase_update_8031 | Enable Link Attributes widget module. |
varbase_update_8032 | Add Field Description. |
varbase_update_8033 | Enabled "Create new revision" for Basic block. |
varbase_update_8034 | Enable Config Filter module. |
varbase_update_8035 | Enable Config Ignore module. |
varbase_update_8036 | Init config settings for which general config to ignore with config ignore. |
varbase_update_8037 | Enable Entityqueue Form Widget module. |
varbase_update_8038 | Enable Entity clone module. |
varbase_update_8039 | Enable Autocomplete Deluxe module. |
varbase_update_8040 | Add Color Configs to the Available styles for Varbase Bootstrap Paragraphs. |
varbase_update_8041 | Enable Varbase Tour module. |
varbase_update_8042 | Enable Settings Tray module as outside_in had been renamed settings_tray. |