You are here

function boost_requirements in Boost 7

Same name and namespace in other branches
  1. 6 boost.install \boost_requirements()

Implements hook_requirements().

File

./boost.install, line 39
Handles Boost module installation and upgrade tasks.

Code

function boost_requirements($phase) {
  $requirements = array();
  $t = get_t();

  // Check the server's ability to use boost.
  if ($phase === 'runtime') {

    // Check if core cache is enabled.
    $core_cache = variable_get('cache', 0);
    if ($core_cache) {
      $requirements['boost_core_cache'] = array(
        'title' => $t('Boost'),
        'value' => $t('Core cache is enabled'),
        'severity' => REQUIREMENT_WARNING,
        'description' => $t('Boost will not function properly while Drupal core cache is enabled. Disable Boost or <a href="@settings">the core cache</a>.', array(
          '@settings' => url('admin/config/development/performance'),
        )),
      );
    }

    // Check cache directories.
    $cache_directories = array(
      boost_get_normal_cache_dir(),
    );
    foreach ($cache_directories as $cache_directory) {
      if (boost_mkdir($cache_directory)) {

        //$root_file = file_put_contents($cache_directory . '/' . variable_get('boost_root_file', '.boost'), $cache_directory);
      }
      if (!is_dir($cache_directory)) {
        $requirements['boost_default'] = array(
          'title' => $t('Boost'),
          'description' => $t('!cache_dir: does not exist.', array(
            '!cache_dir' => $cache_directory,
          )),
          'severity' => REQUIREMENT_ERROR,
          'value' => $t('Cache path'),
        );
      }
      if (is_dir($cache_directory) && !is_writable($cache_directory)) {
        $requirements['boost_permissions'] = array(
          'title' => $t('Boost'),
          'description' => $t('Directory %dir credentials - Permissions: %fp. Owner %fo. Group %fg.<br /> Your credentials - Group ID: %gid. User ID: %uid. Current script owner: %user.', array(
            '%dir' => getcwd() . '/' . $cache_directory,
            '%gid' => getmygid(),
            '%uid' => getmyuid(),
            '%user' => get_current_user(),
            '%fp' => substr(sprintf('%o', fileperms($cache_directory)), -4),
            '%fo' => fileowner($cache_directory),
            '%fg' => filegroup($cache_directory),
          )),
          'severity' => REQUIREMENT_ERROR,
          'value' => $t('Can not write to file-system'),
        );
      }
    }
    if (empty($requirements)) {
      $requirements['boost'] = array(
        'title' => $t('Boost'),
        'severity' => REQUIREMENT_OK,
        'value' => $t('Boost installed correctly, should be working if properly <a href="@settings">configured</a>.', array(
          '@settings' => url('admin/config/system/boost'),
        )),
      );
    }
  }
  return $requirements;
}