You are here

function _coder_review_7x_info_file_callback in Coder 7.2

Define the rule callbacks for 7.x, see do_coder_callback().

1 string reference to '_coder_review_7x_info_file_callback'
coder_review_7x_reviews in coder_review/includes/coder_review_7x.inc
Implements hook_reviews().

File

coder_review/includes/coder_review_7x.inc, line 1257
This include file implements coder functionality for 6.x -> 7.x upgrades.

Code

function _coder_review_7x_info_file_callback(&$coder_args, $review, $rule, $lines, &$results) {

  // Only perform this check for module's (not includes).
  $filename = $coder_args['#filename'];
  $pathinfo = pathinfo($filename);
  if ($pathinfo['extension'] == 'module') {

    // @NOTE: no simpletest for this.
    // Read the .info file.
    $files_line = FALSE;
    $core = FALSE;
    $filename = $pathinfo['dirname'] . '/' . $pathinfo['filename'] . '.info';
    if (file_exists($filename)) {
      $lines = file($filename);
      if ($lines) {
        foreach ($lines as $lineno => $line) {
          if (preg_match('/^files\\s*\\[\\s*\\]\\s*=/', $line)) {
            $files_line = TRUE;
          }
          if (preg_match('/^core\\s*=\\s*7/', $line)) {
            $core = TRUE;
          }
        }
        if (empty($files_line)) {
          $severity_name = _coder_review_severity_name($coder_args, $review, $rule);
          $tmprule = $rule;
          $tmprule['#warning'] = array(
            '#text' => 'Module .info files must now specify all loadable code files explicitly.',
            '#link' => _drupalnode(224333, 'registry'),
          );
          _coder_review_error($results, $tmprule, $severity_name, $lineno, $line, $coder_args['#ignores']);
        }
        if (!$core) {
          $severity_name = _coder_review_severity_name($coder_args, $review, $rule);
          $tmprule = $rule;
          $tmprule['#warning'] = 'Info file should specify core=7.x';
          _coder_review_error($results, $tmprule, $severity_name, $lineno, $line, $coder_args['#ignores']);
        }
      }
    }
  }
}