<?php class N2AssetsCss extends N2AssetsAbstract { public function __construct() { $this->cache = new N2AssetsCacheCSS(); } public function getOutput() { N2GoogleFonts::build(); N2LESS::build(); $output = ""; $this->urls = array_unique($this->urls); foreach ($this->urls AS $url) { $output .= N2Html::style($this->filterSrc($url), true, array( 'media' => 'all' )) . "\n"; } $needProtocol = !N2Settings::get('protocol-relative', '1'); $mode = N2Settings::get('css-mode', 'normal'); if (N2Platform::$isAdmin || $mode != 'inline') { foreach ($this->getFiles() AS $file) { if (substr($file, 0, 2) == '//') { $output .= N2Html::style($this->filterSrc($file), true, array( 'media' => 'all' )) . "\n"; } else { $output .= N2Html::style($this->filterSrc(N2Uri::pathToUri($file, $needProtocol) . '?' . filemtime($file)), true, array( 'media' => 'all' )) . "\n"; } } $inline = implode("\n", $this->inline); if (!empty($inline)) { $output .= N2Html::style($inline); } } else if ($mode == 'inline') { $inline = ''; foreach ($this->getFiles() AS $file) { if (substr($file, 0, 2) == '//') { $output .= N2Html::style($this->filterSrc($file), true, array( 'media' => 'screen, print' )) . "\n"; } else { $inline .= N2Filesystem::readFile($file); } } $inline .= implode("\n", $this->inline); if (!empty($inline)) { $output .= N2Html::style($inline); } } return $output; } private function filterSrc($src) { return N2Pluggable::applyFilters('n2_style_loader_src', $src); } public function get() { N2GoogleFonts::build(); N2LESS::build(); return array( 'url' => $this->urls, 'files' => $this->getFiles(), 'inline' => implode("\n", $this->inline) ); } public function getAjaxOutput() { $output = implode("\n", $this->inline); return $output; } }