You are here

function varbase_install in Varbase: The Ultimate Drupal CMS Starter Kit (Bootstrap Ready) 7

Same name and namespace in other branches
  1. 8.8 varbase.install \varbase_install()
  2. 8.4 varbase.install \varbase_install()
  3. 8.5 varbase.install \varbase_install()
  4. 8.6 varbase.install \varbase_install()
  5. 8.7 varbase.install \varbase_install()
  6. 7.3 varbase.install \varbase_install()
  7. 7.2 varbase.install \varbase_install()
  8. 9.0.x varbase.install \varbase_install()

Implements hook_install().

Perform actions to set up the site for this profile.

See also

system_install()

File

./varbase.install, line 14
Install, update and uninstall functions for the Vardot Base install profile.

Code

function varbase_install() {

  // Default "Basic page" to not be promoted.
  variable_set('node_options_page', array(
    'status',
  ));

  // Don't display date and author information for "Basic page" nodes by default.
  variable_set('node_submitted_page', FALSE);

  // Disable user picture support.
  variable_set('user_pictures', '0');

  // Allow visitor account creation with administrative approval.
  variable_set('user_register', USER_REGISTER_ADMINISTRATORS_ONLY);

  // Enable default permissions for system roles.
  user_role_grant_permissions(DRUPAL_ANONYMOUS_RID, array(
    'access content',
  ));
  user_role_grant_permissions(DRUPAL_AUTHENTICATED_RID, array(
    'access content',
  ));

  // Projects to disable.
  $dis_module = array(
    "toolbar",
    "overlay",
  );

  // Disable Projects.
  db_update('system')
    ->fields(array(
    'status' => 0,
  ))
    ->condition('name', $dis_module, 'IN')
    ->execute();

  //themes to enable
  $en_theme = array(
    'ember',
    'bootstrap',
    'vartheme2',
  );
  theme_enable($en_theme);

  // Set admin theme
  variable_set('admin_theme', 'ember');
  variable_set('node_admin_theme', '1');

  // Set default theme
  variable_set('theme_default', 'vartheme2');

  // Create a default role for site administrators, with all available permissions assigned.
  $admin_role = new stdClass();
  $admin_role->name = 'Super admin';
  $admin_role->weight = 4;
  if ($role = user_role_load_by_name($admin_role->name)) {
    $admin_role = $role;
  }
  else {
    user_role_save($admin_role);
  }
  user_role_grant_permissions($admin_role->rid, array_keys(module_invoke_all('permission')));

  // Set this as the administrator role.
  variable_set('user_admin_role', $admin_role->rid);

  //Create a other roles for specific site administration tasks.
  $content_role = new stdClass();
  $content_role->name = 'Content admin';
  $content_role->weight = 2;
  if (!($role = user_role_load_by_name($content_role->name))) {
    user_role_save($content_role);
  }
  $site_admin_role = new stdClass();
  $site_admin_role->name = 'Site admin';
  $site_admin_role->weight = 3;
  if (!($role = user_role_load_by_name($site_admin_role->name))) {
    user_role_save($content_role);
  }

  // Assign user 1 the "administrator" role.
  db_insert('users_roles')
    ->fields(array(
    'uid' => 1,
    'rid' => $admin_role->rid,
  ))
    ->execute();

  // Insert default pre-defined node types into the database. For a complete
  // list of available node type attributes, refer to the node type API
  // documentation at: http://api.drupal.org/api/HEAD/function/hook_node_info.
  $types = array(
    array(
      'type' => 'page',
      'name' => st('Basic page'),
      'base' => 'node_content',
      'description' => st("Use <em>basic pages</em> for your static content, such as an 'About us' page."),
      'custom' => 1,
      'modified' => 1,
      'locked' => 0,
    ),
  );
  foreach ($types as $type) {
    $type = node_type_set_defaults($type);
    node_type_save($type);
    node_add_body_field($type);
  }

  /** VarBase: Module Configs **/

  // jQuery Update
  variable_set('jquery_update_jquery_version', '1.8');
  variable_set('jquery_update_jquery_cdn', 'jquery');

  // External Links Config
  variable_set('extlink_class', '0');
  variable_set('extlink_target', '_blank');
}