You are here

function multipurpose_corporate_profile_install in Multipurpose Corporate Profile 8

Same name and namespace in other branches
  1. 7 multipurpose_corporate_profile.install \multipurpose_corporate_profile_install()

Implements hook_install().

Perform actions to set up the site for this profile.

See also

system_install()

File

./multipurpose_corporate_profile.install, line 21
Installing file.

Code

function multipurpose_corporate_profile_install() {

  // First, do everything in standard profile.
  include_once DRUPAL_ROOT . '/core/profiles/standard/standard.install';
  standard_install();

  // Set front page to "node".
  \Drupal::configFactory()
    ->getEditable('system.site')
    ->set('page.front', '/home')
    ->save(TRUE);

  // Allow visitor account creation with administrative approval.
  $user_settings = \Drupal::configFactory()
    ->getEditable('user.settings');
  $user_settings
    ->set('register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL)
    ->save(TRUE);

  // Enable default permissions for system roles.
  user_role_grant_permissions(RoleInterface::ANONYMOUS_ID, [
    'search content',
  ]);
  user_role_grant_permissions(RoleInterface::AUTHENTICATED_ID, [
    'search content',
  ]);

  // Assign user 1 the "administrator" role.
  $user = User::load(1);
  $user->roles[] = 'administrator';
  $user
    ->save();
  user_role_grant_permissions(RoleInterface::ANONYMOUS_ID, [
    'access site-wide contact form',
  ]);
  user_role_grant_permissions(RoleInterface::AUTHENTICATED_ID, [
    'access site-wide contact form',
  ]);

  // Allow authenticated users to use shortcuts.
  user_role_grant_permissions(RoleInterface::AUTHENTICATED_ID, [
    'access shortcuts',
  ]);

  // Enable the admin theme.
  \Drupal::configFactory()
    ->getEditable('node.settings')
    ->set('use_admin_theme', TRUE)
    ->save(TRUE);

  // Set front page of the site.
  \Drupal::configFactory()
    ->getEditable('system.site')
    ->set('page.front', '/home')
    ->save(TRUE);
  multipurpose_corporate_profile_public_files_copy();
  multipurpose_corporate_profile_libraries_files_copy();
  multipurpose_corporate_profile_theme_templates_files_copy();

  // Enable features and default content modules.
  multipurpose_corporate_profile_install_custom_modules();

  // Setting aliases for nodes.
  multipurpose_corporate_profile_set_aliases();
}