Skip to content
Snippets Groups Projects
varbase.install 15.7 KiB
Newer Older
  • Learn to ignore specific revisions
  • /**
     * @file
     * Install, update and uninstall functions for the Varbase installation profile.
     */
    
    
    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.
    
      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.
    
      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.
    
      // 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);
      }
    }