/** * Converts URL (http://e.com/a.png) to CSS property ( url("../a.png") ) * @param string $style_id style ID * @param array $style_data style data (fields) * @return array modified style data */ private function urlToCss($style_id, $style_data) { $patterns_url = Registry::get('config.current_location') . '/' . fn_get_theme_path('[relative]/[theme]'); if (!empty($this->schema['backgrounds']['fields'])) { foreach ($this->schema['backgrounds']['fields'] as $field) { if (!empty($field['properties']['pattern'])) { $var_name = $field['properties']['pattern']; if (!empty($style_data[$var_name]) && strpos($style_data[$var_name], '//') !== false) { $url = preg_replace('/url\\([\'"]?(.*?)[\'"]?\\)/', '$1', $style_data[$var_name]); if (strpos($url, '//') === 0) { $url = 'http:' . $url; } if (strpos($url, $patterns_url) !== false) { $url = str_replace($patterns_url, '..', $url); } elseif ($style_id) { // external url $content = fn_get_contents($url); $filename = basename($url); fn_put_contents(Patterns::getPath($style_id) . '/' . $var_name . '.' . fn_get_file_ext($filename), $content); $url = Patterns::getRelPath($style_id) . '/' . $var_name . '.' . fn_get_file_ext($filename); } $style_data[$var_name] = 'url(' . $url . '?' . TIME . ')'; } } } } return $style_data; }