function csstidy_print::_print in Advanced CSS/JS Aggregation 7
Same name and namespace in other branches
- 6 advagg_css_compress/csstidy/class.csstidy_print.inc \csstidy_print::_print()
Returns the formatted CSS Code and saves it into $this->output_css and $this->output_css_plain
@access private @version 2.0
Parameters
bool $plain plain text or not:
string $default_media default @media to add to selectors without any @media:
2 calls to csstidy_print::_print()
- csstidy_print::formatted in advagg_css_compress/
csstidy/ class.csstidy_print.inc - Returns the formatted CSS code
- csstidy_print::plain in advagg_css_compress/
csstidy/ class.csstidy_print.inc - Returns the CSS code as plain text
File
- advagg_css_compress/
csstidy/ class.csstidy_print.inc, line 166
Class
- csstidy_print
- CSS Printing class
Code
function _print($plain = false, $default_media = '') {
if ($this->output_css && $this->output_css_plain) {
return;
}
$output = '';
if (!$this->parser
->get_cfg('preserve_css')) {
$this
->_convert_raw_css($default_media);
}
$template =& $this->template;
if ($plain) {
$template = array_map('strip_tags', $template);
}
if ($this->parser
->get_cfg('timestamp')) {
array_unshift($this->tokens, array(
COMMENT,
' CSSTidy ' . $this->parser->version . ': ' . date('r') . ' ',
));
}
if (!empty($this->charset)) {
$output .= $template[0] . '@charset ' . $template[5] . $this->charset . $template[6];
}
if (!empty($this->import)) {
for ($i = 0, $size = count($this->import); $i < $size; $i++) {
if (substr($this->import[$i], 0, 4) === 'url(' && substr($this->import[$i], -1, 1) === ')') {
$this->import[$i] = '\'' . substr($this->import[$i], 4, -1) . '\'';
$this->parser
->log('Optimised @import : Removed "url("', 'Information');
}
$output .= $template[0] . '@import ' . $template[5] . $this->import[$i] . $template[6];
}
}
if (!empty($this->namespace)) {
if (substr($this->namespace, 0, 4) === 'url(' && substr($this->namespace, -1, 1) === ')') {
$this->namespace = '\'' . substr($this->namespace, 4, -1) . '\'';
$this->parser
->log('Optimised @namespace : Removed "url("', 'Information');
}
$output .= $template[0] . '@namespace ' . $template[5] . $this->namespace . $template[6];
}
$output .= $template[13];
$in_at_out = '';
$out =& $output;
foreach ($this->tokens as $key => $token) {
switch ($token[0]) {
case AT_START:
$out .= $template[0] . $this
->_htmlsp($token[1], $plain) . $template[1];
$out =& $in_at_out;
break;
case SEL_START:
if ($this->parser
->get_cfg('lowercase_s')) {
$token[1] = strtolower($token[1]);
}
$out .= $token[1][0] !== '@' ? $template[2] . $this
->_htmlsp($token[1], $plain) : $template[0] . $this
->_htmlsp($token[1], $plain);
$out .= $template[3];
break;
case PROPERTY:
if ($this->parser
->get_cfg('case_properties') === 2) {
$token[1] = strtoupper($token[1]);
}
elseif ($this->parser
->get_cfg('case_properties') === 1) {
$token[1] = strtolower($token[1]);
}
$out .= $template[4] . $this
->_htmlsp($token[1], $plain) . ':' . $template[5];
break;
case VALUE:
$out .= $this
->_htmlsp($token[1], $plain);
if ($this
->_seeknocomment($key, 1) == SEL_END && $this->parser
->get_cfg('remove_last_;')) {
$out .= str_replace(';', '', $template[6]);
}
else {
$out .= $template[6];
}
break;
case SEL_END:
$out .= $template[7];
if ($this
->_seeknocomment($key, 1) != AT_END) {
$out .= $template[8];
}
break;
case AT_END:
$out =& $output;
$out .= $template[10] . str_replace("\n", "\n" . $template[10], $in_at_out);
$in_at_out = '';
$out .= $template[9];
break;
case COMMENT:
$out .= $template[11] . '/*' . $this
->_htmlsp($token[1], $plain) . '*/' . $template[12];
break;
}
}
$output = trim($output);
if (!$plain) {
$this->output_css = $output;
$this
->_print(true);
}
else {
// If using spaces in the template, don't want these to appear in the plain output
$this->output_css_plain = str_replace(' ', '', $output);
}
}