Как определить параметры из профиля установки


Я ищу способ установить некоторые настройки на этапе установки.

function genius_profile_final() {
  // Enable default permissions for system roles.
  $filtered_html_permission = filter_permission_name($filtered_html_format);
  user_role_grant_permissions(DRUPAL_ANONYMOUS_RID, array('access content', 'access comments', $filtered_html_permission));
  user_role_grant_permissions(DRUPAL_AUTHENTICATED_RID, array('access content', 'access comments', 'post comments', 'skip comment approval', $filtered_html_permission));

  // Create a default role for site administrators, with all available permissions assigned.
  $admin_role = new stdClass();
  $admin_role->name = 'administrator';
  $admin_role->weight = 2;
  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);
  // Assign user 1 the "administrator" role.
  db_insert('users_roles')
    ->fields(array('uid' => 1, 'rid' => $admin_role->rid))
    ->execute();

  // Create a role for webmaster
  $webmaster_role = new stdClass();
  $webmaster_role->name = 'webmaster';
  $webmaster_role->weight = 3;
  user_role_save($webmaster_role);
  user_role_grant_permissions($webmaster_role->rid, array_keys(module_invoke_all('permission')));

  variable_set('taxonomy_menu_vocab_menu_rubric', 'menu-genius-navigation-menu');
  variable_set('taxonomy_menu_vocab_parent_rubric', 0);
  menu_rebuild();

  // Set the regional settings First day to Monday
  variable_set('date_first_day', 1);

  // The return message is optional, if you omit it the default will be used.
  return '<p>'. (drupal_set_message() ? t('Please review the messages above before continuing on to <a href="@url">your new Profile Name site</a>.', array('@url' => url(''))) : t('You may now visit <a href="@url">your new Profile Name site</a>.', array('@url' => url('')))) .'</p>';
}

В genius_profile_final(), где, как я понял, Drupal полностью загружен, у меня есть variable_set('date_first_day', 1), но первый день недели по-прежнему установлен на Воскресенье, после установки. Так что это работает не так, как я ожидал.

Я использую модуль taxonomy_menu, и я хотел бы установить на этапе установки меню, которое будет связано с таксономией. Поскольку я устанавливаю что-то известное, я знайте, что имена переменных, которые могут быть установлены, следующие:

variable_set('taxonomy_menu_vocab_menu_rubric', 'menu-genius-navigation-menu');
variable_set('taxonomy_menu_vocab_parent_rubric', 0);

Это тоже не работает.

Я следил за https://www.drupal.org/node/1022020 и глядя на другие примеры, но мне не повезло найти, как это сделать.

Можно ли изменить настройки в профиле установки или существуют какие-либо ограничения? В таком случае, какие существуют ограничения?

Что я делаю не так?

Author: kiamlaluno, 2015-02-25

4 answers

Я не могу найти крючок с именем hook_profile_final на drupal.org . Я также не вижу, где вы его нашли по ссылке, которую используете (https://www.drupal.org/node/1022020 ). Вы используете устаревшую версию учебника (https://www.drupal.org/node/67921).

Вам необходимо реализовать функцию hook_install_tasks_alter https://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_install_tasks_alter/7 и измените задачу или измените форму страница конфигурации.

 3
Author: Maarten De Block, 2015-02-26 15:27:55

Другим решением было бы установить переменные и другие параметры в hook_install() в файле profile.install. Я делаю это в разных профилях установки, чтобы задать тему администратора, роли пользователей, настройки даты и настройки для модулей contrib.

 1
Author: beltofte, 2015-04-08 10:36:07

Самый простой способ - использовать модуль profile_builder и подтвердить переменную box! Рекомендуется: https://www.drupal.org/project/profiler_builder

 0
Author: user28134, 2015-02-26 12:23:50

Пожалуйста, убедитесь, что все зарегистрировано, позвонив

    drupal_flush_all_caches();

В конце профиля. Это поможет получить все данные, которые вы сохранили на заключительном этапе.

Пожалуйста, посмотрите на номер строки includes/install.core.inc с 1561 по 1564 следующее поможет вам,

    // Flush all caches to ensure that any full bootstraps during the installer
    // do not leave stale cached data, and that any content types or other items
    // registered by the installation profile are registered correctly.
    drupal_flush_all_caches();
 0
Author: Rahul, 2015-02-26 13:35:55