在安装配置文件中添加自定义要Drupal 7

时间:2012-01-27 04:03:53

标签: drupal drupal-distributions

我正在编写安装配置文件,并且想要注意用户是否有较低的" max_execution_time"和" memory_limit"值。据我所知,Drupal必须检查myprofile.install文件以了解可能的要求,所以我放置了以下内容:

        function myprofile_requirements($phase) {
          $requirements = array();
          // Min required PHP execution time
          $min_time  = 60;
          // Min required memory limit, Mb
          $min_memory = 128;
          // Get current value of "max_execution_time"
          $time = ini_get('max_execution_time');
          // Get current value of "max_execution_time"
          $memory = ini_get('memory_limit');
          // Get "raw" numeric value
          preg_match("|\d+|", $memory, $value);
          $severity_time = ($time < $min_time) ? REQUIREMENT_WARNING : REQUIREMENT_OK;
          $severity_memory = ($value[0] < $min_memory) ? REQUIREMENT_WARNING : REQUIREMENT_OK;
          $t = get_t();
          if ($phase == 'install') {
            $requirements['max_execution_time'] = array(
              'title' => $t('PHP max execution time'),
              'value' => $t('Please increase the parameter "max_execution_time" in your PHP settings . Recommended value is at least @min sec. and more (now you have @current sec.', 
        array('@min' => $min_time, '@current' => $time)),
              'severity' => $severity_time,
    );
            $requirements['memory_limit'] = array(
              'title' => $t('PHP memory limit'),
              'value' => $t('Please increase the parameter "memory_limit" in your PHP settings . Recommended value is at least @minM and more (now you have @current', 
        array('@min' => $min_memory, '@current' => $memory)),
              'severity' => $severity_memory,
    );
  }
  return $requirements;
}

它不起作用 - Drupal simple忽略了上面的代码。怎么了?

1 个答案:

答案 0 :(得分:1)

看起来hook_requirements()未在安装配置文件中调用,它在以下阶段调用:

  • 安装:正在安装模块。
  • update:启用模块并运行update.php。
  • 运行时:正在检查运行时要求并显示在状态报告页面上。

请注意,上面的install指的是正在安装的模块,而不是整个安装配置文件。