コード例 #1
0
ファイル: Styles.php プロジェクト: OneataBogdan/lead_coriolan
 /**
  * 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;
 }