@랖r# X%l0 @Xl# ͺT @;_N# i% @b۸# @b۸# p S=@scۀ %@H# %@H# $ ם@# 0 @'# F̰@Ǫ 1 @k`@! %< ]Ѱ@!+# ( ϰ@ ! / F@AEg# @z# 6 @d# $ @d# @, )@ކ# > KB@R# 6 D@# 0& w@sV# $)p @/|# B ð@ٷi# &h R@# j 6?@whm;# H B@ߢc# 3 N@o# b H°@1Ƴ# + @G1# Le @ob# B6 @2# x1 py@# G& @NḰ# , @L# t @ e# @7# .{ @# X @vQ# յ< #*@Ԡ:# VS@X# x ̰@ ̀ q $@ # T Zа@rZ># Bȕ S@w`# Q ;.@. _ @0# en@/ +1# B@&c# @# 4 +)@xq# 7X =@נ! F ; 2@]# g, @rBKI# ರ ;@Z## '_ b@y# b@y# +@# 08 ,@+# % A˰@Ɂ # D@FRy# s L| D@FRy# J D@FRy# D@FRy# ĝ D@FRy# Zܝ D@FRy# / D@FRy# _ D)@# + 7< D)@# T D)@# l D)@# D D)@# D)@# D)@# d̞ D)@# V D)@# d D)@# 5 D)@# m, D)@# ^D D)@# \1\ D)@# ?t D)@# w D)@# D)@# Q @u]## WP A@աr ) 7@^͜# O 7@^͜# ]5O iz@# L @ # @ # @bN(# 90` F*@1Aw# EX F*@1Aw# p F*@1Aw# H @s8;# 0(` :@dn# 6Z 9@lؒ# XX @N( T# Wl z@]0# ='Xq e@+D# b m e@+D# D8m K@_bj# T Ͱ@$N{ @`C# B@֮# p B@u # u d@g3D_# @~# ̄ s@# 3lE @ܯ\# S7\ @# v@~# %x @JU# i`@d# i`@d# }t@K# b<~ @%q# % Z@{# g5 Z@{# F58 l@uJQ# a @LG0# + B@GEc# x5l w@!nV# Eϰ@# Eϰ@# n U߰@# @8ۢ# d @M# $̇ 8@ja# d ~@:J# T ; %V@N # T \@\# Y@Ѫx# @TF # 3 P@p / p @r# @r# 1 4 (@G# Q/ { @% F g@Q# ( N@o# 3b /@mO# % @v# H @# 4( @# ($ g.@,P9 # GN@5i# " GN@5i# " FU@-# = t@Z\# O>& @4['# N0 @1Fu# S @1Fu# 3 ΰ@:# )$ le@ # $-@C# 8 P@I! F ] @HZ# ۳ u@ /R# S u@ /R# 4S @b# VP' @8# @- @8# - ,f@# @ U@y ^ f @)# T @)# il I@d9h# \'$^ @7# MD@Ƶh# oB @Bv)# Z< @c# f@ RG# 1_ f@ RG# ` Nİ@%# M Nİ@%# 8M η@# Am @)4# 'h @F/! cY &@ϗ! @RR# pH @ȍ(# 10 J@5y# %>D5 w@m! X 3 T@Zxu# _ T@Zxu# V $ a@"# d 2@# + 2@# , 2@# $, m@U# @q# : @oH\# @P -f@Cn ^ f @!# hC @_+3# ( =@4w\# D2 u|@m# ѶP j@h`e# %@ ider_data_delay'] = 0; } // attributes $data_position = StringUtil::deserialize($cte['revolutionslider_data_position']); $data_position9 = explode(' ',$cte['revolutionslider_data_pos9grid']); $data_position_m = StringUtil::deserialize($cte['revolutionslider_data_position_m']); $arrAttributes = array ( 'data-easing' => $cte['revolutionslider_data_easing'], 'data-speed' => ($cte['revolutionslider_data_speed'] > 0 ? $cte['revolutionslider_data_speed'] * 1000 : 0), // sec to ms 'data-y' => (strlen($data_position[1]) ? $data_position[1]: $data_position9[1]), 'data-start' => ($cte['revolutionslider_data_start'] > 0 ? $cte['revolutionslider_data_start'] * 1000 : 100), 'data-elementdelay' => ($cte['revolutionslider_data_delay'] > 0 ? $cte['revolutionslider_data_delay'] / 100 : 0), ); // DESKTOP, SMARTPHONE #$pos_x = $data_position[0]; #$pos_y = $data_position[1]; #$pos_x_m = $data_position_m[0]; #$pos_y_m = $data_position_m[1]; #$hoffset = 0; #$hoffset_m = null; #$voffset = 0; #$voffset_m = null; // positions $arrPosition = array ( 'x' => $data_position[0], 'y' => $data_position[1], 'hoffset' => null, 'voffset' => null, ); // positions mobile $arrPositionM = array ( 'x' => $data_position_m[0], 'y' => $data_position_m[1], 'hoffset' => null, 'voffset' => null, ); // h offset if(isset($data_position[0]) && strlen($data_position9[0]) > 0) { $arrPosition['x'] = $arrPositionM['x'] = $data_position9[0]; $arrPosition['hoffset'] = $data_position[0]; $arrPositionM['hoffset'] = $data_position_m[0]; } // v offset if(isset($data_position[1]) && strlen($data_position9[1]) > 0) { $arrPosition['y'] = $arrPositionM['y'] = str_replace(array('center'),array('middle'), $data_position9[1]); $arrPosition['voffset'] = $data_position[1]; $arrPositionM['voffset'] = $data_position_m[1]; } #$arrAttributes['data-x'] = $this->buildDataAttributeValueFromArray( array($pos_x,$pos_x_m) ); #\sprintf("['%s','%s']",$pos_x,$pos_x_m); #"['$data_position[0]','','','$data_position_m[0]']"; #$arrAttributes['data-y'] = $this->buildDataAttributeValueFromArray( array($pos_y,$pos_y_m) ); #$arrAttributes['data-hoffset'] = $this->buildDataAttributeValueFromArray( array($hoffset,$hoffset_m) ); #\sprintf("['%s','%s']",$hoffset,$hoffset_m); #"['$data_position[0]','','','$data_position_m[0]']"; #$arrAttributes['data-voffset'] = $this->buildDataAttributeValueFromArray( array($voffset,$voffset_m) ); #"['$data_position[0]','','','$data_position_m[0]']"; // check if there is atleas one mobile value and mark this slider as mobile first $GLOBALS['REVOLUTIONSLIDER_HAS_MOBILE'][ $this->Slider->id ] = false; if( empty( array_filter( $arrPositionM ) ) === false ) { $GLOBALS['REVOLUTIONSLIDER_HAS_MOBILE'][ $this->Slider->id ] = true; } // DESKTOP, SMARTPHONE $arrAttributes['data-x'] = \sprintf("['%s','%s']",$arrPosition['x'],$arrPositionM['x']); $arrAttributes['data-y'] = \sprintf("['%s','%s']",$arrPosition['y'],$arrPositionM['y']); if( empty($arrPosition['hoffset']) === false || empty($arrPositionM['hoffset']) === false ) { $arrAttributes['data-hoffset'] = \sprintf("['%s','%s']",$arrPosition['hoffset'],$arrPositionM['hoffset']); } if( empty($arrPosition['voffset']) === false || empty($arrPositionM['voffset']) === false ) { $arrAttributes['data-voffset'] = \sprintf("['%s','%s']",$arrPosition['voffset'],$arrPositionM['voffset']); #"['$data_position[0]','','','$data_position_m[0]']"; } $arrAttributes['data-lineheight'] = "['inherit','inherit']"; $arrAttributes['data-whitespace'] = "nowrap"; $arrAttributes['data-responsive_offset'] = "on"; // visibility $arrAttributes['data-visibility'] = "['on','on']"; if( $objContentModel->revolutionslider_visibility == 1 ) { $arrAttributes['data-visibility'] = "['on','off']"; } else if( $objContentModel->revolutionslider_visibility == 2 ) { $arrAttributes['data-visibility'] = "['off','on']"; } // hyperlinks if( \in_array($objContentModel->type, array('hyperlink','revolutionslider_hyperlink') ) ) { $arrAttributes['data-responsive'] = "off"; if( $arrPosition['x'] == 'center' ) { $arrAttributes['data-responsive_offset'] = "off"; } } // data type $arrAttributes['data-type'] = 'text'; if( \in_array($objContentModel->type, array('image','revolutionslider_image') ) ) { $arrAttributes['data-type'] = 'image'; } //! data-fontsize $arrFontSize = StringUtil::deserialize($objContentModel->revolutionslider_text_fontsize); if( !\is_array($arrFontSize) ) { $arrFontSize = \explode(',',$arrFontSize); } if( empty($arrFontSize[1]) === false ) { $arrAttributes['data-fontsize'] = \sprintf("['%s','%s']",$arrFontSize[0],$arrFontSize[1]); } if( \in_array($objContentModel->type, array('hyperlink','revolutionslider_hyperlink') ) ) { unset($arrAttributes['data-fontsize']); } //-- // out animation attributes if( (boolean)$cte['revolutionslider_OUT'] === true) { $arrAttributes['data-endelementdelay'] = ( !empty($objContentModel->revolutionslider_data_start_OUT) ? $cte['revolutionslider_data_start_OUT'] * 1000 : 'wait'); $arrAttributes['data-endspeed'] = $cte['revolutionslider_data_speed_OUT'] * 1000; $arrAttributes['data-endeasing'] = $cte['revolutionslider_data_easing_OUT'] ?: 'wait'; } //! link element to slide if($cte['revolutionslider_data_linktoslide'] > 0) { $objModels = \RevolutionSlider\Models\Slides::findBy( array('pid=?','published=?'), array($this->get('pid'),1), array('order' => 'sorting') ); if( $objModels !== null ) { foreach($objModels as $i => $objModel) { if($cte['revolutionslider_data_linktoslide'] == $objModel->id) { $arrAttributes['data-linktoslide'] = $i + 1; } } } } // disable debug mode $blnDebug = Config::get('debugMode'); Config::set('debugMode',0); // generate the content element $strCte = Controller::replaceInsertTags('{{insert_content::'.$cte['id'].'}}'); Config::set('debugMode',$blnDebug); //! data-frames $strFrameJson = $GLOBALS['REVOLUTIONSLIDER']['FRAMES'][ $objContentModel->revolutionslider_data_animation_start ]; $arrFrameJson = \explode('},{',$strFrameJson); $arrFrameJson[0] .= '}'; $arrFrameJson[1] = '{'.$arrFrameJson[1]; $arrFrames = array ( 'start' => \json_decode($arrFrameJson[0],true), 'end' => \json_decode($arrFrameJson[1],true), ); // map attributes to frame $frameFromAttributes = array ( 'start' => array ( 'delay' => 'data-start', 'speed' => 'data-speed', 'ease' => 'data-easing', ), 'end' => array ( 'delay' => 'data-start', 'speed' => 'data-endspeed', 'ease' => 'data-endeasing', ), ); // if no out animation is set, use the default if( (boolean)$objContentModel->revolutionslider_OUT === false) { unset( $frameFromAttributes['end'] ); } foreach( $frameFromAttributes as $k => $arr) { foreach( $arr as $frame => $attr ) { if( isset($arrAttributes[ $attr ]) ) { $arrFrames[$k][$frame ] = $arrAttributes[ $attr ]; // remove from attributes unset( $arrAttributes[ $attr ] ); } } } $json_frames_start = \json_encode($arrFrames['start']); $json_frames_end = \json_encode($arrFrames['end']); // inject attributes in content element $strAttributes = ''; foreach($arrAttributes as $attr => $value) { $strAttributes .= $attr .'="'.$value.'" '; } trim($strAttributes); $str_data_frames = \sprintf("[%s,%s]", $json_frames_start,$json_frames_end); //! custom data-frames if( (boolean)$objContentModel->revolutionslider_frames === true ) { $str_data_frames = trim($objContentModel->revolutionslider_data_frames); } // append data-frames $strAttributes .= " data-frames='".$str_data_frames."'"; //-- // since we only work on html elements we can easily just replace everything in the first <...> $preg = preg_match('/<(.*?)\>/', $strCte,$result); if($preg) { $search = $result[0]; $replace = sprintf('<%s %s>',$result[1], $strAttributes); $strCte = str_replace($search, $replace, $strCte); } // inject attributes $strCte = \str_replace('###attributes###',$strAttributes,$strCte); $arrReturn[] = $strCte; // add must have classes $preg = preg_match('/class="(.*?)\"/', $strCte,$result); if($preg) { $arrClass = explode(' ', trim($result[1])); $arrClass[] = 'tp-caption'; $arrClass[] = 'tp-resizeme'; #$arrClass[] = 'rs-parallaxlevel-0'; // parallax if( (int)$cte['revolutionslider_parallax'] > 0 && empty($cte['revolutionslider_parallax']) === false ) { $arrClass[] = 'rs-parallaxlevel-'.(int)$cte['revolutionslider_parallax']; } // visibility if( (int)$cte['revolutionslider_visibility'] == 1 ) { $arrClass[] = ''; } else if( (int)$cte['revolutionslider_visibility'] == 2 ) { $arrClass[] = ''; } // add start animation class (deprecated fallback) $arrClass[] = $cte['revolutionslider_data_animation_start']; // add end animation class (deprecated fallback) $arrClass[] = $cte['revolutionslider_data_animation_end']; $search = $result[0]; $strCte = str_replace($search, 'class="'.implode(' ', array_unique($arrClass)).'"', $strCte); } } return $arrReturn; } /** * Generate the current thumbnail from the main image or from the slide image and return the filepath * @param string * @param string * @param string * @param string * @return string path to thumb */ protected function getThumb() { if($this->get('singleSRC') == '' && $this->get('singleSRC_thumb') == '') { return ''; } $src = $this->get('singleSRC_thumb'); if($src == '') { $src = $this->get('singleSRC'); } $objFile = FilesModel::findByPk($src); if( $objFile === null ) { return ''; } $size = $GLOBALS['REVOLUTIONSLIDER']['THUMBNAIL_SIZES'] ?? array(); return Image::get($objFile->path,$size[0] ?? null, $size[1] ?? null, $size[2] ?? null); } }
Something is broken. Please let us know what you were doing when this error occurred. We will fix it as soon as possible. Sorry for any inconvenience caused.