예제 #1
0
 /**
  * add missing new style fields to the layers as all layers would be broken without this
  * @since 5.0
  */
 public static function add_style_settings_to_layer($sliders = false)
 {
     $sr = new RevSlider();
     $sl = new RevSliderSlide();
     $operations = new RevSliderOperations();
     if ($sliders === false) {
         //do it on all Sliders
         $sliders = $sr->getArrSliders(false);
     } else {
         $sliders = array($sliders);
     }
     $styles = $operations->getCaptionsContentArray();
     if (!empty($sliders) && is_array($sliders)) {
         foreach ($sliders as $slider) {
             $slides = $slider->getSlides();
             $staticID = $sl->getStaticSlideID($slider->getID());
             if ($staticID !== false) {
                 $msl = new RevSliderSlide();
                 if (strpos($staticID, 'static_') === false) {
                     $staticID = 'static_' . $slider->getID();
                 }
                 $msl->initByID($staticID);
                 if ($msl->getID() !== '') {
                     $slides = array_merge($slides, array($msl));
                 }
             }
             if (!empty($slides) && is_array($slides)) {
                 foreach ($slides as $slide) {
                     $layers = $slide->getLayers();
                     if (!empty($layers) && is_array($layers)) {
                         foreach ($layers as $lk => $layer) {
                             $static_styles = (array) RevSliderFunctions::getVal($layer, 'static_styles', array());
                             $def_val = (array) RevSliderFunctions::getVal($layer, 'deformation', array());
                             $defh_val = (array) RevSliderFunctions::getVal($layer, 'deformation-hover', array());
                             if (empty($def_val)) {
                                 //add parallax always!
                                 $def_val['parallax'] = RevSliderFunctions::getVal($layer, 'parallax_level', '-');
                                 $layers[$lk]['deformation'] = $def_val;
                                 //check for selected style in styles, then add all deformations to the layer
                                 $cur_style = RevSliderFunctions::getVal($layer, 'style', '');
                                 if (trim($cur_style) == '') {
                                     continue;
                                 }
                                 $wws = false;
                                 foreach ($styles as $style) {
                                     if ($style['handle'] == '.tp-caption.' . $cur_style) {
                                         $wws = $style;
                                         break;
                                     }
                                 }
                                 if ($wws == false) {
                                     continue;
                                 }
                                 $css_idle = '';
                                 $css_hover = '';
                                 $wws['params'] = (array) $wws['params'];
                                 $wws['hover'] = (array) $wws['hover'];
                                 $wws['advanced'] = (array) $wws['advanced'];
                                 if (isset($wws['params']['font-family'])) {
                                     $def_val['font-family'] = $wws['params']['font-family'];
                                 }
                                 if (isset($wws['params']['padding'])) {
                                     $raw_pad = $wws['params']['padding'];
                                     if (!is_array($raw_pad)) {
                                         $raw_pad = explode(' ', $raw_pad);
                                     }
                                     switch (count($raw_pad)) {
                                         case 1:
                                             $raw_pad = array($raw_pad[0], $raw_pad[0], $raw_pad[0], $raw_pad[0]);
                                             break;
                                         case 2:
                                             $raw_pad = array($raw_pad[0], $raw_pad[1], $raw_pad[0], $raw_pad[1]);
                                             break;
                                         case 3:
                                             $raw_pad = array($raw_pad[0], $raw_pad[1], $raw_pad[2], $raw_pad[1]);
                                             break;
                                     }
                                     $def_val['padding'] = $raw_pad;
                                 }
                                 if (isset($wws['params']['font-style'])) {
                                     $def_val['font-style'] = $wws['params']['font-style'];
                                 }
                                 if (isset($wws['params']['text-decoration'])) {
                                     $def_val['text-decoration'] = $wws['params']['text-decoration'];
                                 }
                                 if (isset($wws['params']['background-color'])) {
                                     if (RevSliderFunctions::isrgb($wws['params']['background-color'])) {
                                         $def_val['background-color'] = RevSliderFunctions::rgba2hex($wws['params']['background-color']);
                                     } else {
                                         $def_val['background-color'] = $wws['params']['background-color'];
                                     }
                                 }
                                 if (isset($wws['params']['background-transparency'])) {
                                     $def_val['background-transparency'] = $wws['params']['background-transparency'];
                                     if ($def_val['background-transparency'] > 1) {
                                         $def_val['background-transparency'] /= 100;
                                     }
                                 } else {
                                     if (isset($wws['params']['background-color'])) {
                                         $def_val['background-transparency'] = RevSliderFunctions::get_trans_from_rgba($wws['params']['background-color'], true);
                                     }
                                 }
                                 if (isset($wws['params']['border-color'])) {
                                     if (RevSliderFunctions::isrgb($wws['params']['border-color'])) {
                                         $def_val['border-color'] = RevSliderFunctions::rgba2hex($wws['params']['border-color']);
                                     } else {
                                         $def_val['border-color'] = $wws['params']['border-color'];
                                     }
                                 }
                                 if (isset($wws['params']['border-style'])) {
                                     $def_val['border-style'] = $wws['params']['border-style'];
                                 }
                                 if (isset($wws['params']['border-width'])) {
                                     $def_val['border-width'] = $wws['params']['border-width'];
                                 }
                                 if (isset($wws['params']['border-radius'])) {
                                     $raw_bor = $wws['params']['border-radius'];
                                     if (!is_array($raw_bor)) {
                                         $raw_bor = explode(' ', $raw_bor);
                                     }
                                     switch (count($raw_bor)) {
                                         case 1:
                                             $raw_bor = array($raw_bor[0], $raw_bor[0], $raw_bor[0], $raw_bor[0]);
                                             break;
                                         case 2:
                                             $raw_bor = array($raw_bor[0], $raw_bor[1], $raw_bor[0], $raw_bor[1]);
                                             break;
                                         case 3:
                                             $raw_bor = array($raw_bor[0], $raw_bor[1], $raw_bor[2], $raw_bor[1]);
                                             break;
                                     }
                                     $def_val['border-radius'] = $raw_bor;
                                 }
                                 if (isset($wws['params']['x'])) {
                                     $def_val['x'] = $wws['params']['x'];
                                 }
                                 if (isset($wws['params']['y'])) {
                                     $def_val['y'] = $wws['params']['y'];
                                 }
                                 if (isset($wws['params']['z'])) {
                                     $def_val['z'] = $wws['params']['z'];
                                 }
                                 if (isset($wws['params']['skewx'])) {
                                     $def_val['skewx'] = $wws['params']['skewx'];
                                 }
                                 if (isset($wws['params']['skewy'])) {
                                     $def_val['skewy'] = $wws['params']['skewy'];
                                 }
                                 if (isset($wws['params']['scalex'])) {
                                     $def_val['scalex'] = $wws['params']['scalex'];
                                 }
                                 if (isset($wws['params']['scaley'])) {
                                     $def_val['scaley'] = $wws['params']['scaley'];
                                 }
                                 if (isset($wws['params']['opacity'])) {
                                     $def_val['opacity'] = $wws['params']['opacity'];
                                 }
                                 if (isset($wws['params']['xrotate'])) {
                                     $def_val['xrotate'] = $wws['params']['xrotate'];
                                 }
                                 if (isset($wws['params']['yrotate'])) {
                                     $def_val['yrotate'] = $wws['params']['yrotate'];
                                 }
                                 if (isset($wws['params']['2d_rotation'])) {
                                     $def_val['2d_rotation'] = $wws['params']['2d_rotation'];
                                 }
                                 if (isset($wws['params']['2d_origin_x'])) {
                                     $def_val['2d_origin_x'] = $wws['params']['2d_origin_x'];
                                 }
                                 if (isset($wws['params']['2d_origin_y'])) {
                                     $def_val['2d_origin_y'] = $wws['params']['2d_origin_y'];
                                 }
                                 if (isset($wws['params']['pers'])) {
                                     $def_val['pers'] = $wws['params']['pers'];
                                 }
                                 if (isset($wws['params']['color'])) {
                                     if (RevSliderFunctions::isrgb($wws['params']['color'])) {
                                         $static_styles['color'] = RevSliderFunctions::rgba2hex($wws['params']['color']);
                                     } else {
                                         $static_styles['color'] = $wws['params']['color'];
                                     }
                                 }
                                 if (isset($wws['params']['font-weight'])) {
                                     $static_styles['font-weight'] = $wws['params']['font-weight'];
                                 }
                                 if (isset($wws['params']['font-size'])) {
                                     $static_styles['font-size'] = $wws['params']['font-size'];
                                 }
                                 if (isset($wws['params']['line-height'])) {
                                     $static_styles['line-height'] = $wws['params']['line-height'];
                                 }
                                 if (isset($wws['params']['font-family'])) {
                                     $static_styles['font-family'] = $wws['params']['font-family'];
                                 }
                                 if (isset($wws['advanced']) && isset($wws['advanced']['idle']) && is_array($wws['advanced']['idle']) && !empty($wws['advanced']['idle'])) {
                                     $css_idle = '{' . "\n";
                                     foreach ($wws['advanced']['idle'] as $handle => $value) {
                                         $value = implode(' ', $value);
                                         if ($value !== '') {
                                             $css_idle .= '	' . $key . ': ' . $value . ';' . "\n";
                                         }
                                     }
                                     $css_idle .= '}' . "\n";
                                 }
                                 if (isset($wws['hover']['color'])) {
                                     if (RevSliderFunctions::isrgb($wws['hover']['color'])) {
                                         $defh_val['color'] = RevSliderFunctions::rgba2hex($wws['hover']['color']);
                                     } else {
                                         $defh_val['color'] = $wws['hover']['color'];
                                     }
                                 }
                                 if (isset($wws['hover']['text-decoration'])) {
                                     $defh_val['text-decoration'] = $wws['hover']['text-decoration'];
                                 }
                                 if (isset($wws['hover']['background-color'])) {
                                     if (RevSliderFunctions::isrgb($wws['hover']['background-color'])) {
                                         $defh_val['background-color'] = RevSliderFunctions::rgba2hex($wws['hover']['background-color']);
                                     } else {
                                         $defh_val['background-color'] = $wws['hover']['background-color'];
                                     }
                                 }
                                 if (isset($wws['hover']['background-transparency'])) {
                                     $defh_val['background-transparency'] = $wws['hover']['background-transparency'];
                                     if ($defh_val['background-transparency'] > 1) {
                                         $defh_val['background-transparency'] /= 100;
                                     }
                                 } else {
                                     if (isset($wws['hover']['background-color'])) {
                                         $defh_val['background-transparency'] = RevSliderFunctions::get_trans_from_rgba($wws['hover']['background-color'], true);
                                     }
                                 }
                                 if (isset($wws['hover']['border-color'])) {
                                     if (RevSliderFunctions::isrgb($wws['hover']['border-color'])) {
                                         $defh_val['border-color'] = RevSliderFunctions::rgba2hex($wws['hover']['border-color']);
                                     } else {
                                         $defh_val['border-color'] = $wws['hover']['border-color'];
                                     }
                                 }
                                 if (isset($wws['hover']['border-style'])) {
                                     $defh_val['border-style'] = $wws['hover']['border-style'];
                                 }
                                 if (isset($wws['hover']['border-width'])) {
                                     $defh_val['border-width'] = $wws['hover']['border-width'];
                                 }
                                 if (isset($wws['hover']['border-radius'])) {
                                     $raw_bor = $wws['hover']['border-radius'];
                                     if (!is_array($raw_bor)) {
                                         $raw_bor = explode(' ', $raw_bor);
                                     }
                                     switch (count($raw_bor)) {
                                         case 1:
                                             $raw_bor = array($raw_bor[0], $raw_bor[0], $raw_bor[0], $raw_bor[0]);
                                             break;
                                         case 2:
                                             $raw_bor = array($raw_bor[0], $raw_bor[1], $raw_bor[0], $raw_bor[1]);
                                             break;
                                         case 3:
                                             $raw_bor = array($raw_bor[0], $raw_bor[1], $raw_bor[2], $raw_bor[1]);
                                             break;
                                     }
                                     $defh_val['border-radius'] = $raw_bor;
                                 }
                                 if (isset($wws['hover']['x'])) {
                                     $defh_val['x'] = $wws['hover']['x'];
                                 }
                                 if (isset($wws['hover']['y'])) {
                                     $defh_val['y'] = $wws['hover']['y'];
                                 }
                                 if (isset($wws['hover']['z'])) {
                                     $defh_val['z'] = $wws['hover']['z'];
                                 }
                                 if (isset($wws['hover']['skewx'])) {
                                     $defh_val['skewx'] = $wws['hover']['skewx'];
                                 }
                                 if (isset($wws['hover']['skewy'])) {
                                     $defh_val['skewy'] = $wws['hover']['skewy'];
                                 }
                                 if (isset($wws['hover']['scalex'])) {
                                     $defh_val['scalex'] = $wws['hover']['scalex'];
                                 }
                                 if (isset($wws['hover']['scaley'])) {
                                     $defh_val['scaley'] = $wws['hover']['scaley'];
                                 }
                                 if (isset($wws['hover']['opacity'])) {
                                     $defh_val['opacity'] = $wws['hover']['opacity'];
                                 }
                                 if (isset($wws['hover']['xrotate'])) {
                                     $defh_val['xrotate'] = $wws['hover']['xrotate'];
                                 }
                                 if (isset($wws['hover']['yrotate'])) {
                                     $defh_val['yrotate'] = $wws['hover']['yrotate'];
                                 }
                                 if (isset($wws['hover']['2d_rotation'])) {
                                     $defh_val['2d_rotation'] = $wws['hover']['2d_rotation'];
                                 }
                                 if (isset($wws['hover']['2d_origin_x'])) {
                                     $defh_val['2d_origin_x'] = $wws['hover']['2d_origin_x'];
                                 }
                                 if (isset($wws['hover']['2d_origin_y'])) {
                                     $defh_val['2d_origin_y'] = $wws['hover']['2d_origin_y'];
                                 }
                                 if (isset($wws['hover']['speed'])) {
                                     $defh_val['speed'] = $wws['hover']['speed'];
                                 }
                                 if (isset($wws['hover']['easing'])) {
                                     $defh_val['easing'] = $wws['hover']['easing'];
                                 }
                                 if (isset($wws['advanced']) && isset($wws['advanced']['hover']) && is_array($wws['advanced']['hover']) && !empty($wws['advanced']['hover'])) {
                                     $css_hover = '{' . "\n";
                                     foreach ($wws['advanced']['hover'] as $handle => $value) {
                                         $value = implode(' ', $value);
                                         if ($value !== '') {
                                             $css_hover .= '	' . $key . ': ' . $value . ';' . "\n";
                                         }
                                     }
                                     $css_hover .= '}' . "\n";
                                 }
                                 if (!isset($layers[$lk]['inline'])) {
                                     $layers[$lk]['inline'] = array();
                                 }
                                 if ($css_idle !== '') {
                                     $layers[$lk]['inline']['idle'] = $css_idle;
                                 }
                                 if ($css_hover !== '') {
                                     $layers[$lk]['inline']['idle'] = $css_hover;
                                 }
                                 $layers[$lk]['deformation'] = $def_val;
                                 $layers[$lk]['deformation-hover'] = $defh_val;
                                 $layers[$lk]['static_styles'] = $static_styles;
                             }
                         }
                         $slide->setLayersRaw($layers);
                         $slide->saveLayers();
                     }
                 }
             }
         }
     }
 }