You are here

function csstidy_optimise::compress_numbers in Advanced CSS/JS Aggregation 6

Same name and namespace in other branches
  1. 7 advagg_css_compress/csstidy/class.csstidy_optimise.inc \csstidy_optimise::compress_numbers()

Compresses numbers (ie. 1.0 becomes 1 or 1.100 becomes 1.1 )

@version 1.2

Parameters

string $subvalue:

Return value

string

1 call to csstidy_optimise::compress_numbers()
csstidy_optimise::subvalue in advagg_css_compress/csstidy/class.csstidy_optimise.inc
Optimises a sub-value @access public @version 1.0

File

advagg_css_compress/csstidy/class.csstidy_optimise.inc, line 366

Class

csstidy_optimise
CSS Optimising Class

Code

function compress_numbers($subvalue) {
  $unit_values =& $GLOBALS['csstidy']['unit_values'];
  $color_values =& $GLOBALS['csstidy']['color_values'];

  // for font:1em/1em sans-serif...;
  if ($this->property === 'font') {
    $temp = explode('/', $subvalue);
  }
  else {
    $temp = array(
      $subvalue,
    );
  }
  for ($l = 0; $l < count($temp); $l++) {

    // if we are not dealing with a number at this point, do not optimise anything
    $number = $this
      ->AnalyseCssNumber($temp[$l]);
    if ($number === false) {
      return $subvalue;
    }

    // Fix bad colors
    if (in_array($this->property, $color_values)) {
      $temp[$l] = '#' . $temp[$l];
      continue;
    }
    if (abs($number[0]) > 0) {
      if ($number[1] == '' && in_array($this->property, $unit_values, true)) {
        $number[1] = 'px';
      }
    }
    else {
      $number[1] = '';
    }
    $temp[$l] = $number[0] . $number[1];
  }
  return count($temp) > 1 ? $temp[0] . '/' . $temp[1] : $temp[0];
}