Пример #1
0
 function ot_insert_css_with_markers($field_id = '', $insertion = '', $meta = false)
 {
     /* missing $field_id or $insertion exit early */
     if ('' == $field_id || '' == $insertion) {
         return;
     }
     /* path to the dynamic.css file */
     $filepath = get_stylesheet_directory() . '/dynamic.css';
     if (is_multisite()) {
         $multisite_filepath = get_stylesheet_directory() . '/dynamic-' . get_current_blog_id() . '.css';
         if (file_exists($multisite_filepath)) {
             $filepath = $multisite_filepath;
         }
     }
     /* allow filter on path */
     $filepath = apply_filters('css_option_file_path', $filepath, $field_id);
     /* grab a copy of the paths array */
     $ot_css_file_paths = get_option('ot_css_file_paths', array());
     if (is_multisite()) {
         $ot_css_file_paths = get_blog_option(get_current_blog_id(), 'ot_css_file_paths', $ot_css_file_paths);
     }
     /* set the path for this field */
     $ot_css_file_paths[$field_id] = $filepath;
     /* update the paths */
     if (is_multisite()) {
         update_blog_option(get_current_blog_id(), 'ot_css_file_paths', $ot_css_file_paths);
     } else {
         update_option('ot_css_file_paths', $ot_css_file_paths);
     }
     /* insert CSS into file */
     if (file_exists($filepath)) {
         $insertion = ot_normalize_css($insertion);
         $regex = "/{{([a-zA-Z0-9\\_\\-\\#\\|\\=]+)}}/";
         $marker = $field_id;
         /* Match custom CSS */
         preg_match_all($regex, $insertion, $matches);
         /* Loop through CSS */
         foreach ($matches[0] as $option) {
             $value = '';
             $option_id = str_replace(array('{{', '}}'), '', $option);
             $option_array = explode('|', $option_id);
             $option_type = ot_get_option_type_by_id($option_id);
             /* get the array value */
             if ($meta) {
                 global $post;
                 $value = get_post_meta($post->ID, $option_array[0], true);
             } else {
                 $options = get_option(ot_options_id());
                 if (isset($options[$option_array[0]])) {
                     $value = $options[$option_array[0]];
                 }
             }
             if (is_array($value)) {
                 if (!isset($option_array[1])) {
                     /* Measurement */
                     if (isset($value[0]) && isset($value[1])) {
                         /* set $value with measurement properties */
                         $value = $value[0] . $value[1];
                         /* Colorpicker Opacity */
                     } else {
                         if (isset($value['color']) && isset($value['opacity'])) {
                             /* get the RGB color value */
                             $color = ot_hex2RGB($value['color']);
                             if (is_array($color)) {
                                 $value = 'rgba(' . $color['r'] . ', ' . $color['g'] . ', ' . $color['b'] . ', ' . $value['opacity'] . ')';
                             } else {
                                 if ($color == $value['color']) {
                                     $value = $value['color'];
                                 }
                             }
                             /* Border */
                         } else {
                             if (ot_array_keys_exists($value, array('width', 'unit', 'style', 'color')) && !ot_array_keys_exists($value, array('top', 'right', 'bottom', 'left', 'height', 'inset', 'offset-x', 'offset-y', 'blur-radius', 'spread-radius'))) {
                                 $border = array();
                                 $unit = !empty($value['unit']) ? $value['unit'] : 'px';
                                 if (!empty($value['width'])) {
                                     $border[] = $value['width'] . $unit;
                                 }
                                 if (!empty($value['style'])) {
                                     $border[] = $value['style'];
                                 }
                                 if (!empty($value['color'])) {
                                     $border[] = $value['color'];
                                 }
                                 /* set $value with border properties or empty string */
                                 $value = !empty($border) ? implode(' ', $border) : '';
                                 /* Box Shadow */
                             } else {
                                 if (ot_array_keys_exists($value, array('inset', 'offset-x', 'offset-y', 'blur-radius', 'spread-radius', 'color')) && !ot_array_keys_exists($value, array('width', 'height', 'unit', 'style', 'top', 'right', 'bottom', 'left'))) {
                                     /* set $value with box-shadow properties or empty string */
                                     $value = !empty($value) ? implode(' ', $value) : '';
                                     /* Dimension */
                                 } else {
                                     if (ot_array_keys_exists($value, array('width', 'height', 'unit')) && !ot_array_keys_exists($value, array('style', 'color', 'top', 'right', 'bottom', 'left'))) {
                                         $dimension = array();
                                         $unit = !empty($value['unit']) ? $value['unit'] : 'px';
                                         if (!empty($value['width'])) {
                                             $dimension[] = $value['width'] . $unit;
                                         }
                                         if (!empty($value['height'])) {
                                             $dimension[] = $value['height'] . $unit;
                                         }
                                         /* set $value with dimension properties or empty string */
                                         $value = !empty($dimension) ? implode(' ', $dimension) : '';
                                         /* Spacing */
                                     } else {
                                         if (ot_array_keys_exists($value, array('top', 'right', 'bottom', 'left', 'unit')) && !ot_array_keys_exists($value, array('width', 'height', 'style', 'color'))) {
                                             $spacing = array();
                                             $unit = !empty($value['unit']) ? $value['unit'] : 'px';
                                             if (!empty($value['top'])) {
                                                 $spacing[] = $value['top'] . $unit;
                                             }
                                             if (!empty($value['right'])) {
                                                 $spacing[] = $value['right'] . $unit;
                                             }
                                             if (!empty($value['bottom'])) {
                                                 $spacing[] = $value['bottom'] . $unit;
                                             }
                                             if (!empty($value['left'])) {
                                                 $spacing[] = $value['left'] . $unit;
                                             }
                                             /* set $value with spacing properties or empty string */
                                             $value = !empty($spacing) ? implode(' ', $spacing) : '';
                                             /* typography */
                                         } else {
                                             if (ot_array_keys_exists($value, array('font-color', 'font-family', 'font-size', 'font-style', 'font-variant', 'font-weight', 'letter-spacing', 'line-height', 'text-decoration', 'text-transform'))) {
                                                 $font = array();
                                                 if (!empty($value['font-color'])) {
                                                     $font[] = "color: " . $value['font-color'] . ";";
                                                 }
                                                 if (!empty($value['font-family'])) {
                                                     foreach (ot_recognized_font_families($marker) as $key => $v) {
                                                         if ($key == $value['font-family']) {
                                                             $font[] = "font-family: " . $v . ";";
                                                         }
                                                     }
                                                 }
                                                 if (!empty($value['font-size'])) {
                                                     $font[] = "font-size: " . $value['font-size'] . ";";
                                                 }
                                                 if (!empty($value['font-style'])) {
                                                     $font[] = "font-style: " . $value['font-style'] . ";";
                                                 }
                                                 if (!empty($value['font-variant'])) {
                                                     $font[] = "font-variant: " . $value['font-variant'] . ";";
                                                 }
                                                 if (!empty($value['font-weight'])) {
                                                     $font[] = "font-weight: " . $value['font-weight'] . ";";
                                                 }
                                                 if (!empty($value['letter-spacing'])) {
                                                     $font[] = "letter-spacing: " . $value['letter-spacing'] . ";";
                                                 }
                                                 if (!empty($value['line-height'])) {
                                                     $font[] = "line-height: " . $value['line-height'] . ";";
                                                 }
                                                 if (!empty($value['text-decoration'])) {
                                                     $font[] = "text-decoration: " . $value['text-decoration'] . ";";
                                                 }
                                                 if (!empty($value['text-transform'])) {
                                                     $font[] = "text-transform: " . $value['text-transform'] . ";";
                                                 }
                                                 /* set $value with font properties or empty string */
                                                 $value = !empty($font) ? implode("\n", $font) : '';
                                                 /* background */
                                             } else {
                                                 if (ot_array_keys_exists($value, array('background-color', 'background-image', 'background-repeat', 'background-attachment', 'background-position', 'background-size'))) {
                                                     $bg = array();
                                                     if (!empty($value['background-color'])) {
                                                         $bg[] = $value['background-color'];
                                                     }
                                                     if (!empty($value['background-image'])) {
                                                         /* If an attachment ID is stored here fetch its URL and replace the value */
                                                         if (wp_attachment_is_image($value['background-image'])) {
                                                             $attachment_data = wp_get_attachment_image_src($value['background-image'], 'original');
                                                             /* check for attachment data */
                                                             if ($attachment_data) {
                                                                 $value['background-image'] = $attachment_data[0];
                                                             }
                                                         }
                                                         $bg[] = 'url("' . $value['background-image'] . '")';
                                                     }
                                                     if (!empty($value['background-repeat'])) {
                                                         $bg[] = $value['background-repeat'];
                                                     }
                                                     if (!empty($value['background-attachment'])) {
                                                         $bg[] = $value['background-attachment'];
                                                     }
                                                     if (!empty($value['background-position'])) {
                                                         $bg[] = $value['background-position'];
                                                     }
                                                     if (!empty($value['background-size'])) {
                                                         $size = $value['background-size'];
                                                     }
                                                     /* set $value with background properties or empty string */
                                                     $value = !empty($bg) ? 'background: ' . implode(" ", $bg) . ';' : '';
                                                     if (isset($size)) {
                                                         if (!empty($bg)) {
                                                             $value .= apply_filters('ot_insert_css_with_markers_bg_size_white_space', "\n  ", $option_id);
                                                         }
                                                         $value .= "background-size: {$size};";
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 } else {
                     $value = $value[$option_array[1]];
                 }
             }
             /* If an attachment ID is stored here fetch its URL and replace the value */
             if ($option_type == 'upload' && wp_attachment_is_image($value)) {
                 $attachment_data = wp_get_attachment_image_src($value, 'original');
                 /* check for attachment data */
                 if ($attachment_data) {
                     $value = $attachment_data[0];
                 }
             }
             // Filter the CSS
             $value = apply_filters('ot_insert_css_with_markers_value', $value, $option_id);
             /* insert CSS, even if the value is empty */
             $insertion = stripslashes(str_replace($option, $value, $insertion));
         }
         /* create array from the lines of code */
         $markerdata = explode("\n", implode('', file($filepath)));
         /* can't write to the file return false */
         if (!($f = ot_file_open($filepath, 'w'))) {
             return false;
         }
         $searching = true;
         $foundit = false;
         /* has array of lines */
         if (!empty($markerdata)) {
             /* foreach line of code */
             foreach ($markerdata as $n => $markerline) {
                 /* found begining of marker, set $searching to false  */
                 if ($markerline == "/* BEGIN {$marker} */") {
                     $searching = false;
                 }
                 /* keep rewrite each line of CSS  */
                 if ($searching == true) {
                     if ($n + 1 < count($markerdata)) {
                         ot_file_write($f, "{$markerline}\n");
                     } else {
                         ot_file_write($f, "{$markerline}");
                     }
                 }
                 /* found end marker write code */
                 if ($markerline == "/* END {$marker} */") {
                     ot_file_write($f, "/* BEGIN {$marker} */\n");
                     ot_file_write($f, "{$insertion}\n");
                     ot_file_write($f, "/* END {$marker} */\n");
                     $searching = true;
                     $foundit = true;
                 }
             }
         }
         /* nothing inserted, write code. DO IT, DO IT! */
         if (!$foundit) {
             ot_file_write($f, "/* BEGIN {$marker} */\n");
             ot_file_write($f, "{$insertion}\n");
             ot_file_write($f, "/* END {$marker} */\n");
         }
         /* close file */
         ot_file_close($f);
         return true;
     }
     return false;
 }
 function ot_insert_css_with_markers($field_id = '', $insertion = '', $meta = false)
 {
     /* missing $field_id or $insertion exit early */
     if ('' == $field_id || '' == $insertion) {
         return;
     }
     /* path to the dynamic.css file */
     $filepath = get_stylesheet_directory() . '/dynamic.css';
     /* allow filter on path */
     $filepath = apply_filters('css_option_file_path', $filepath, $field_id);
     /* grab a copy of the paths array */
     $ot_css_file_paths = get_option('ot_css_file_paths', array());
     /* set the path for this field */
     $ot_css_file_paths[$field_id] = $filepath;
     /* update the paths */
     update_option('ot_css_file_paths', $ot_css_file_paths);
     /* insert CSS into file */
     if (file_exists($filepath)) {
         $insertion = ot_normalize_css($insertion);
         $regex = "/{{([a-zA-Z0-9\\_\\-\\#\\|\\=]+)}}/";
         $marker = $field_id;
         /* Match custom CSS */
         preg_match_all($regex, $insertion, $matches);
         /* Loop through CSS */
         foreach ($matches[0] as $option) {
             $value = '';
             $option_id = str_replace(array('{{', '}}'), '', $option);
             $option_array = explode('|', $option_id);
             /* get the array value */
             if ($meta) {
                 global $post;
                 $value = get_post_meta($post->ID, $option_array[0], true);
             } else {
                 $options = get_option(ot_options_id());
                 if (isset($options[$option_array[0]])) {
                     $value = $options[$option_array[0]];
                 }
             }
             if (is_array($value)) {
                 if (!isset($option_array[1])) {
                     /* Measurement */
                     if (isset($value[0]) && isset($value[1])) {
                         /* set $value with measurement properties */
                         $value = $value[0] . $value[1];
                         /* typography */
                     } else {
                         if (ot_array_keys_exists($value, array('font-color', 'font-family', 'font-size', 'font-style', 'font-variant', 'font-weight', 'letter-spacing', 'line-height', 'text-decoration', 'text-transform'))) {
                             $font = array();
                             if (!empty($value['font-color'])) {
                                 $font[] = "color: " . $value['font-color'] . ";";
                             }
                             if (!empty($value['font-family'])) {
                                 foreach (ot_recognized_font_families($marker) as $key => $v) {
                                     if ($key == $value['font-family']) {
                                         $font[] = "font-family: " . $v . ";";
                                     }
                                 }
                             }
                             if (!empty($value['font-size'])) {
                                 $font[] = "font-size: " . $value['font-size'] . ";";
                             }
                             if (!empty($value['font-style'])) {
                                 $font[] = "font-style: " . $value['font-style'] . ";";
                             }
                             if (!empty($value['font-variant'])) {
                                 $font[] = "font-variant: " . $value['font-variant'] . ";";
                             }
                             if (!empty($value['font-weight'])) {
                                 $font[] = "font-weight: " . $value['font-weight'] . ";";
                             }
                             if (!empty($value['letter-spacing'])) {
                                 $font[] = "letter-spacing: " . $value['letter-spacing'] . ";";
                             }
                             if (!empty($value['line-height'])) {
                                 $font[] = "line-height: " . $value['line-height'] . ";";
                             }
                             if (!empty($value['text-decoration'])) {
                                 $font[] = "text-decoration: " . $value['text-decoration'] . ";";
                             }
                             if (!empty($value['text-transform'])) {
                                 $font[] = "text-transform: " . $value['text-transform'] . ";";
                             }
                             /* set $value with font properties or empty string */
                             $value = !empty($font) ? implode("\n", $font) : '';
                             /* background */
                         } else {
                             if (ot_array_keys_exists($value, array('background-color', 'background-image', 'background-repeat', 'background-attachment', 'background-position', 'background-size'))) {
                                 $bg = array();
                                 if (!empty($value['background-color'])) {
                                     $bg[] = $value['background-color'];
                                 }
                                 if (!empty($value['background-image'])) {
                                     $bg[] = 'url("' . $value['background-image'] . '")';
                                 }
                                 if (!empty($value['background-repeat'])) {
                                     $bg[] = $value['background-repeat'];
                                 }
                                 if (!empty($value['background-attachment'])) {
                                     $bg[] = $value['background-attachment'];
                                 }
                                 if (!empty($value['background-position'])) {
                                     $bg[] = $value['background-position'];
                                 }
                                 if (!empty($value['background-size'])) {
                                     $size = $value['background-size'];
                                 }
                                 /* set $value with background properties or empty string */
                                 $value = !empty($bg) ? 'background: ' . implode(" ", $bg) . ';' : '';
                                 if (isset($size)) {
                                     if (!empty($bg)) {
                                         $value .= apply_filters('ot_insert_css_with_markers_bg_size_white_space', "\n  ", $option_id);
                                     }
                                     $value .= "background-size: {$size};";
                                 }
                             }
                         }
                     }
                 } else {
                     $value = $value[$option_array[1]];
                 }
             }
             // Filter the CSS
             $value = apply_filters('ot_insert_css_with_markers_value', $value, $option_id);
             /* insert CSS, even if the value is empty */
             $insertion = stripslashes(str_replace($option, $value, $insertion));
         }
         /* create array from the lines of code */
         $markerdata = explode("\n", implode('', file($filepath)));
         /* can't write to the file return false */
         if (!($f = ot_file_open($filepath, 'w'))) {
             return false;
         }
         $searching = true;
         $foundit = false;
         /* has array of lines */
         if (!empty($markerdata)) {
             /* foreach line of code */
             foreach ($markerdata as $n => $markerline) {
                 /* found begining of marker, set $searching to false  */
                 if ($markerline == "/* BEGIN {$marker} */") {
                     $searching = false;
                 }
                 /* keep rewrite each line of CSS  */
                 if ($searching == true) {
                     if ($n + 1 < count($markerdata)) {
                         ot_file_write($f, "{$markerline}\n");
                     } else {
                         ot_file_write($f, "{$markerline}");
                     }
                 }
                 /* found end marker write code */
                 if ($markerline == "/* END {$marker} */") {
                     ot_file_write($f, "/* BEGIN {$marker} */\n");
                     ot_file_write($f, "{$insertion}\n");
                     ot_file_write($f, "/* END {$marker} */\n");
                     $searching = true;
                     $foundit = true;
                 }
             }
         }
         /* nothing inserted, write code. DO IT, DO IT! */
         if (!$foundit) {
             ot_file_write($f, "/* BEGIN {$marker} */\n");
             ot_file_write($f, "{$insertion}\n");
             ot_file_write($f, "/* END {$marker} */\n");
         }
         /* close file */
         ot_file_close($f);
         return true;
     }
     return false;
 }
Пример #3
0
 function ot_insert_css_with_markers($field_id = '', $insertion = '', $meta = false)
 {
     /* missing $field_id or $insertion exit early */
     if ('' == $field_id || '' == $insertion) {
         return;
     }
     /* path to the dynamic.css file */
     $filepath = get_stylesheet_directory() . '/dynamic.css';
     if (is_multisite()) {
         $multisite_filepath = get_stylesheet_directory() . '/dynamic-' . get_current_blog_id() . '.css';
         if (file_exists($multisite_filepath)) {
             $filepath = $multisite_filepath;
         }
     }
     /* allow filter on path */
     $filepath = apply_filters('css_option_file_path', $filepath, $field_id);
     /* grab a copy of the paths array */
     $ot_css_file_paths = get_option('ot_css_file_paths', array());
     if (is_multisite()) {
         $ot_css_file_paths = get_blog_option(get_current_blog_id(), 'ot_css_file_paths', $ot_css_file_paths);
     }
     /* set the path for this field */
     $ot_css_file_paths[$field_id] = $filepath;
     /* update the paths */
     if (is_multisite()) {
         update_blog_option(get_current_blog_id(), 'ot_css_file_paths', $ot_css_file_paths);
     } else {
         update_option('ot_css_file_paths', $ot_css_file_paths);
     }
     /* insert CSS into file */
     if (file_exists($filepath)) {
         $insertion = ot_normalize_css($insertion);
         $regex = "/{{([a-zA-Z0-9\\_\\-\\#\\|\\=]+)}}/";
         $marker = $field_id;
         /* Match custom CSS */
         preg_match_all($regex, $insertion, $matches);
         /* Loop through CSS */
         foreach ($matches[0] as $option) {
             $value = '';
             $option_array = explode('|', str_replace(array('{{', '}}'), '', $option));
             $option_id = isset($option_array[0]) ? $option_array[0] : '';
             $option_key = isset($option_array[1]) ? $option_array[1] : '';
             $option_type = ot_get_option_type_by_id($option_id);
             $fallback = '';
             // Get the meta array value
             if ($meta) {
                 global $post;
                 $value = get_post_meta($post->ID, $option_id, true);
                 // Get the options array value
             } else {
                 $options = get_option(ot_options_id());
                 if (isset($options[$option_id])) {
                     $value = $options[$option_id];
                 }
             }
             // This in an array of values
             if (is_array($value)) {
                 if (empty($option_key)) {
                     // Measurement
                     if ($option_type == 'measurement') {
                         // Set $value with measurement properties
                         if (isset($value[0]) && isset($value[1])) {
                             $value = $value[0] . $value[1];
                         }
                         // Border
                     } else {
                         if ($option_type == 'border') {
                             $border = array();
                             $unit = !empty($value['unit']) ? $value['unit'] : 'px';
                             if (!empty($value['width'])) {
                                 $border[] = $value['width'] . $unit;
                             }
                             if (!empty($value['style'])) {
                                 $border[] = $value['style'];
                             }
                             if (!empty($value['color'])) {
                                 $border[] = $value['color'];
                             }
                             /* set $value with border properties or empty string */
                             $value = !empty($border) ? implode(' ', $border) : '';
                             // Box Shadow
                         } else {
                             if ($option_type == 'box-shadow') {
                                 /* set $value with box-shadow properties or empty string */
                                 $value = !empty($value) ? implode(' ', $value) : '';
                                 // Dimension
                             } else {
                                 if ($option_type == 'dimension') {
                                     $dimension = array();
                                     $unit = !empty($value['unit']) ? $value['unit'] : 'px';
                                     if (!empty($value['width'])) {
                                         $dimension[] = $value['width'] . $unit;
                                     }
                                     if (!empty($value['height'])) {
                                         $dimension[] = $value['height'] . $unit;
                                     }
                                     // Set $value with dimension properties or empty string
                                     $value = !empty($dimension) ? implode(' ', $dimension) : '';
                                     // Spacing
                                 } else {
                                     if ($option_type == 'spacing') {
                                         $spacing = array();
                                         $unit = !empty($value['unit']) ? $value['unit'] : 'px';
                                         if (!empty($value['top'])) {
                                             $spacing[] = $value['top'] . $unit;
                                         }
                                         if (!empty($value['right'])) {
                                             $spacing[] = $value['right'] . $unit;
                                         }
                                         if (!empty($value['bottom'])) {
                                             $spacing[] = $value['bottom'] . $unit;
                                         }
                                         if (!empty($value['left'])) {
                                             $spacing[] = $value['left'] . $unit;
                                         }
                                         // Set $value with spacing properties or empty string
                                         $value = !empty($spacing) ? implode(' ', $spacing) : '';
                                         // Typography
                                     } else {
                                         if ($option_type == 'typography') {
                                             $font = array();
                                             if (!empty($value['font-color'])) {
                                                 $font[] = "color: " . $value['font-color'] . ";";
                                             }
                                             if (!empty($value['font-family'])) {
                                                 foreach (ot_recognized_font_families($marker) as $key => $v) {
                                                     if ($key == $value['font-family']) {
                                                         $font[] = "font-family: " . $v . ";";
                                                     }
                                                 }
                                             }
                                             if (!empty($value['font-size'])) {
                                                 $font[] = "font-size: " . $value['font-size'] . ";";
                                             }
                                             if (!empty($value['font-style'])) {
                                                 $font[] = "font-style: " . $value['font-style'] . ";";
                                             }
                                             if (!empty($value['font-variant'])) {
                                                 $font[] = "font-variant: " . $value['font-variant'] . ";";
                                             }
                                             if (!empty($value['font-weight'])) {
                                                 $font[] = "font-weight: " . $value['font-weight'] . ";";
                                             }
                                             if (!empty($value['letter-spacing'])) {
                                                 $font[] = "letter-spacing: " . $value['letter-spacing'] . ";";
                                             }
                                             if (!empty($value['line-height'])) {
                                                 $font[] = "line-height: " . $value['line-height'] . ";";
                                             }
                                             if (!empty($value['text-decoration'])) {
                                                 $font[] = "text-decoration: " . $value['text-decoration'] . ";";
                                             }
                                             if (!empty($value['text-transform'])) {
                                                 $font[] = "text-transform: " . $value['text-transform'] . ";";
                                             }
                                             // Set $value with font properties or empty string
                                             $value = !empty($font) ? implode("\n", $font) : '';
                                             // Background
                                         } else {
                                             if ($option_type == 'background') {
                                                 $bg = array();
                                                 if (!empty($value['background-color'])) {
                                                     $bg[] = $value['background-color'];
                                                 }
                                                 if (!empty($value['background-image'])) {
                                                     // If an attachment ID is stored here fetch its URL and replace the value
                                                     if (wp_attachment_is_image($value['background-image'])) {
                                                         $attachment_data = wp_get_attachment_image_src($value['background-image'], 'original');
                                                         // Check for attachment data
                                                         if ($attachment_data) {
                                                             $value['background-image'] = $attachment_data[0];
                                                         }
                                                     }
                                                     $bg[] = 'url("' . $value['background-image'] . '")';
                                                 }
                                                 if (!empty($value['background-repeat'])) {
                                                     $bg[] = $value['background-repeat'];
                                                 }
                                                 if (!empty($value['background-attachment'])) {
                                                     $bg[] = $value['background-attachment'];
                                                 }
                                                 if (!empty($value['background-position'])) {
                                                     $bg[] = $value['background-position'];
                                                 }
                                                 if (!empty($value['background-size'])) {
                                                     $size = $value['background-size'];
                                                 }
                                                 // Set $value with background properties or empty string
                                                 $value = !empty($bg) ? 'background: ' . implode(" ", $bg) . ';' : '';
                                                 if (isset($size)) {
                                                     if (!empty($bg)) {
                                                         $value .= apply_filters('ot_insert_css_with_markers_bg_size_white_space', "\n  ", $option_id);
                                                     }
                                                     $value .= "background-size: {$size};";
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 } else {
                     $value = $value[$option_key];
                 }
             }
             // If an attachment ID is stored here fetch its URL and replace the value
             if ($option_type == 'upload' && wp_attachment_is_image($value)) {
                 $attachment_data = wp_get_attachment_image_src($value, 'original');
                 // Check for attachment data
                 if ($attachment_data) {
                     $value = $attachment_data[0];
                 }
             }
             // Attempt to fallback when `$value` is empty
             if (empty($value)) {
                 // We're trying to access a single array key
                 if (!empty($option_key)) {
                     // Link Color `inherit`
                     if ($option_type == 'link-color') {
                         $fallback = 'inherit';
                     }
                 } else {
                     // Border
                     if ($option_type == 'border') {
                         $fallback = 'inherit';
                     }
                     // Box Shadow
                     if ($option_type == 'box-shadow') {
                         $fallback = 'none';
                     }
                     // Colorpicker
                     if ($option_type == 'colorpicker') {
                         $fallback = 'inherit';
                     }
                     // Colorpicker Opacity
                     if ($option_type == 'colorpicker-opacity') {
                         $fallback = 'inherit';
                     }
                 }
                 /**
                  * Filter the `dynamic.css` fallback value.
                  *
                  * @since 2.5.3
                  *
                  * @param string $fallback The default CSS fallback value.
                  * @param string $option_id The option ID.
                  * @param string $option_type The option type.
                  * @param string $option_key The option array key.
                  */
                 $fallback = apply_filters('ot_insert_css_with_markers_fallback', $fallback, $option_id, $option_type, $option_key);
             }
             // Let's fallback!
             if (!empty($fallback)) {
                 $value = $fallback;
             }
             // Filter the CSS
             $value = apply_filters('ot_insert_css_with_markers_value', $value, $option_id);
             // Insert CSS, even if the value is empty
             $insertion = stripslashes(str_replace($option, $value, $insertion));
         }
         // Can't write to the file so we error out
         if (!is_writable($filepath)) {
             add_settings_error('option-tree', 'dynamic_css', sprintf(__('Unable to write to file %s.', 'option-tree'), '<code>' . $filepath . '</code>'), 'error');
             return false;
         }
         // Create array from the lines of code
         $markerdata = explode("\n", implode('', file($filepath)));
         // Can't write to the file return false
         if (!($f = ot_file_open($filepath, 'w'))) {
             return false;
         }
         $searching = true;
         $foundit = false;
         // Has array of lines
         if (!empty($markerdata)) {
             // Foreach line of code
             foreach ($markerdata as $n => $markerline) {
                 // Found begining of marker, set $searching to false
                 if ($markerline == "/* BEGIN {$marker} */") {
                     $searching = false;
                 }
                 // Keep searching each line of CSS
                 if ($searching == true) {
                     if ($n + 1 < count($markerdata)) {
                         ot_file_write($f, "{$markerline}\n");
                     } else {
                         ot_file_write($f, "{$markerline}");
                     }
                 }
                 // Found end marker write code
                 if ($markerline == "/* END {$marker} */") {
                     ot_file_write($f, "/* BEGIN {$marker} */\n");
                     ot_file_write($f, "{$insertion}\n");
                     ot_file_write($f, "/* END {$marker} */\n");
                     $searching = true;
                     $foundit = true;
                 }
             }
         }
         // Nothing inserted, write code. DO IT, DO IT!
         if (!$foundit) {
             ot_file_write($f, "/* BEGIN {$marker} */\n");
             ot_file_write($f, "{$insertion}\n");
             ot_file_write($f, "/* END {$marker} */\n");
         }
         // Close file
         ot_file_close($f);
         return true;
     }
     return false;
 }