/** * 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(); } } } } } }