Same name in other branches
  1. 5.0.x advagg_validator/src/Form/CssW3Form.php \Drupal\advagg_validator\Form\CssW3Form::testFiles()
  2. 6.0.x advagg_validator/src/Form/CssW3Form.php \Drupal\advagg_validator\Form\CssW3Form::testFiles()
  3. 8.x-3.x advagg_validator/src/Form/CssW3Form.php \Drupal\advagg_validator\Form\CssW3Form::testFiles()
  4. 8.x-4.x advagg_validator/src/Form/CssW3Form.php \Drupal\advagg_validator\Form\CssW3Form::testFiles()

Overrides BaseValidatorForm::testFiles

2 calls to CssW3Form::testFiles()
CssW3Form::submitCheckAll in advagg_validator/src/Form/CssW3Form.php
CssW3Form::submitCheckDirectory in advagg_validator/src/Form/CssW3Form.php

File

advagg_validator/src/Form/CssW3Form.php, line 150

Class

CssW3Form
Configure form for W3C validation of CSS files.

Namespace

Drupal\advagg_validator\Form

Code

protected function testFiles(array $files, array $options = []) {
    $output = [];
    $file_info = $this->advaggFiles
        ->getMultiple($files);
    foreach ($files as $filename) {
        // Skip missing files.
        if (!file_exists($filename)) {
            continue;
        }
        $file_contents = file_get_contents($filename);
        $lines = file($filename);
        $content_hash = Crypt::hashBase64($file_contents);
        // If saved file information not current update filestore.
        if ($file_info[$filename]['content_hash'] != $content_hash) {
            $this->advagg_files
                ->scanFile($filename, $file_info[$filename], $file_contents);
        }
        // If saved validation results available use them rather than re-run.
        if (isset($file_info[$filename]['validation']['w3'])) {
            $output[$filename]['jigsaw.w3.org'] = $file_info[$filename]['validation']['w3'];
            continue;
        }
        // Run jigsaw.w3.org validator.
        $output[$filename]['jigsaw.w3.org'] = $this->testW3C($filename, $options);
        // Get extra context for errors.
        if (!empty($output[$filename]['jigsaw.w3.org']['errors'])) {
            foreach ($output[$filename]['jigsaw.w3.org']['errors'] as &$value) {
                if (isset($value['line'])) {
                    $value['linedata'] = $lines[$value['line'] - 1];
                    if (strlen($value['linedata']) > 512) {
                        unset($value['linedata']);
                    }
                }
            }
            unset($value);
        }
        if (!empty($output[$filename]['jigsaw.w3.org']['warnings'])) {
            foreach ($output[$filename]['jigsaw.w3.org']['warnings'] as &$value) {
                if (isset($value['line'])) {
                    $value['linedata'] = $lines[$value['line'] - 1];
                    if (strlen($value['linedata']) > 512) {
                        unset($value['linedata']);
                    }
                }
            }
            unset($value);
        }
        // Save data.
        $file_info[$filename]['validation']['w3'] = $output[$filename]['jigsaw.w3.org'];
        $this->advaggFiles
            ->set($filename, $file_info[$filename]);
    }
    return $output;
}