| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692 |
- <?php
- /**
- * @author ThemePunch <info@themepunch.com>
- * @link http://www.themepunch.com/
- * @copyright 2015 ThemePunch
- */
-
- if( !defined( 'ABSPATH') ) exit();
- class RevSliderFunctions{
-
- public static function throwError($message,$code=null){
- if(!empty($code)){
- throw new Exception($message,$code);
- }else{
- throw new Exception($message);
- }
- }
-
-
- /**
- * set output for download
- */
- public static function downloadFile($str,$filename="output.txt"){
-
- //output for download
- header('Content-Description: File Transfer');
- header('Content-Type: text/html; charset=UTF-8');
- header("Content-Disposition: attachment; filename=".$filename.";");
- header("Content-Transfer-Encoding: binary");
- header("Content-Length: ".strlen($str));
- echo $str;
- exit();
- }
-
-
-
- /**
- * turn boolean to string
- */
- public static function boolToStr($bool){
- if(gettype($bool) == "string")
- return($bool);
- if($bool == true)
- return("true");
- else
- return("false");
- }
-
- /**
- * convert string to boolean
- */
- public static function strToBool($str){
- if(is_bool($str))
- return($str);
-
- if(empty($str))
- return(false);
-
- if(is_numeric($str))
- return($str != 0);
-
- $str = strtolower($str);
- if($str == "true")
- return(true);
-
- return(false);
- }
-
-
- /**
- * get value from array. if not - return alternative
- */
- public static function getVal($arr,$key,$altVal=""){
- if(is_array($arr)){
- if(isset($arr[$key])){
- return($arr[$key]);
- }
- }elseif(is_object($arr)){
- if(isset($arr->$key)){
- return($arr->$key);
- }
- }
- return($altVal);
- }
-
- //------------------------------------------------------------
- // get variable from post or from get. post wins.
- public static function getPostGetVariable($name,$initVar = ""){
- $var = $initVar;
- if(isset($_POST[$name])) $var = $_POST[$name];
- else if(isset($_GET[$name])) $var = $_GET[$name];
- return($var);
- }
-
-
- //------------------------------------------------------------
- public static function getPostVariable($name,$initVar = ""){
- $var = $initVar;
- if(isset($_POST[$name])) $var = $_POST[$name];
- return($var);
- }
-
-
- //------------------------------------------------------------
- public static function getGetVar($name,$initVar = ""){
- $var = $initVar;
- if(isset($_GET[$name])) $var = $_GET[$name];
- return($var);
- }
-
- public static function sortByOrder($a, $b) {
- return $a['order'] - $b['order'];
- }
-
- /**
- * validate that some file exists, if not - throw error
- */
- public static function validateFilepath($filepath,$errorPrefix=null){
- if(file_exists($filepath) == true)
- return(false);
- if($errorPrefix == null)
- $errorPrefix = "File";
- $message = $errorPrefix." ".esc_attr($filepath)." not exists!";
- self::throwError($message);
- }
-
- /**
- * validate that some value is numeric
- */
- public static function validateNumeric($val,$fieldName=""){
- self::validateNotEmpty($val,$fieldName);
-
- if(empty($fieldName))
- $fieldName = "Field";
-
- if(!is_numeric($val))
- self::throwError("$fieldName should be numeric ");
- }
-
- /**
- * validate that some variable not empty
- */
- public static function validateNotEmpty($val,$fieldName=""){
-
- if(empty($fieldName))
- $fieldName = "Field";
-
- if(empty($val) && is_numeric($val) == false)
- self::throwError("Field <b>$fieldName</b> should not be empty");
- }
-
- //------------------------------------------------------------
- //get path info of certain path with all needed fields
- public static function getPathInfo($filepath){
- $info = pathinfo($filepath);
-
- //fix the filename problem
- if(!isset($info["filename"])){
- $filename = $info["basename"];
- if(isset($info["extension"]))
- $filename = substr($info["basename"],0,(-strlen($info["extension"])-1));
- $info["filename"] = $filename;
- }
-
- return($info);
- }
-
- /**
- * Convert std class to array, with all sons
- * @param unknown_type $arr
- */
- public static function convertStdClassToArray($arr){
- $arr = (array)$arr;
-
- $arrNew = array();
-
- foreach($arr as $key=>$item){
- $item = (array)$item;
- $arrNew[$key] = $item;
- }
-
- return($arrNew);
- }
-
- public static function cleanStdClassToArray($arr){
- $arr = (array)$arr;
-
- $arrNew = array();
-
- foreach($arr as $key=>$item){
- $arrNew[$key] = $item;
- }
-
- return($arrNew);
- }
-
-
- /**
- * encode array into json for client side
- */
- public static function jsonEncodeForClientSide($arr){
- $json = "";
- if(!empty($arr)){
- $json = json_encode($arr);
- $json = addslashes($json);
- }
- if(empty($json)) $json = '{}';
- $json = "'".$json."'";
-
- return($json);
- }
- /**
- * decode json from the client side
- */
- public static function jsonDecodeFromClientSide($data){
-
- $data = stripslashes($data);
- $data = str_replace('\"','\"',$data);
- $data = json_decode($data);
- $data = (array)$data;
-
- return($data);
- }
-
-
- /**
- * do "trim" operation on all array items.
- */
- public static function trimArrayItems($arr){
- if(gettype($arr) != "array")
- RevSliderFunctions::throwError("trimArrayItems error: The type must be array");
-
- foreach ($arr as $key=>$item){
- if(is_array($item)){
- foreach($item as $key => $value){
- $arr[$key][$key] = trim($value);
- }
- }else{
- $arr[$key] = trim($item);
- }
- }
-
- return($arr);
- }
-
-
- /**
- * get link html
- */
- public static function getHtmlLink($link,$text,$id="",$class=""){
-
- if(!empty($class))
- $class = " class='$class'";
-
- if(!empty($id))
- $id = " id='$id'";
-
- $html = "<a href=\"$link\"".$id.$class.">$text</a>";
- return($html);
- }
-
- /**
- * get select from array
- */
- public static function getHTMLSelect($arr,$default="",$htmlParams="",$assoc = false){
-
- $html = "<select $htmlParams>";
- foreach($arr as $key=>$item){
- $selected = "";
-
- if($assoc == false){
- if($item == $default) $selected = " selected ";
- }else{
- if(trim($key) == trim($default)) $selected = " selected ";
- }
-
-
- if($assoc == true)
- $html .= "<option $selected value='$key'>$item</option>";
- else
- $html .= "<option $selected value='$item'>$item</option>";
- }
- $html.= "</select>";
- return($html);
- }
-
-
- /**
- * convert assoc array to array
- */
- public static function assocToArray($assoc){
- $arr = array();
- foreach($assoc as $item)
- $arr[] = $item;
-
- return($arr);
- }
-
- /**
- *
- * strip slashes from textarea content after ajax request to server
- */
- public static function normalizeTextareaContent($content){
- if(empty($content))
- return($content);
- $content = stripslashes($content);
- $content = trim($content);
- return($content);
- }
-
-
- /**
- * get text intro, limit by number of words
- */
- public static function getTextIntro($text, $limit){
-
- $arrIntro = explode(' ', $text, $limit);
-
- if (count($arrIntro)>=$limit) {
- array_pop($arrIntro);
- $intro = implode(" ",$arrIntro);
- $intro = trim($intro);
- if(!empty($intro))
- $intro .= '...';
- } else {
- $intro = implode(" ",$arrIntro);
- }
-
- $intro = preg_replace('`\[[^\]]*\]`','',$intro);
- return($intro);
- }
-
-
- /**
- * add missing px/% to value, do also for object and array
- * @since: 5.0
- **/
- public static function add_missing_val($obj, $set_to = 'px'){
- if(is_array($obj)){
- foreach($obj as $key => $value){
- if(strpos($value, $set_to) === false){
- $obj[$key] = $value.$set_to;
- }
- }
- }elseif(is_object($obj)){
- foreach($obj as $key => $value){
- if(strpos($value, $set_to) === false){
- $obj->$key = $value.$set_to;
- }
- }
- }else{
- if(strpos($obj, $set_to) === false){
- $obj .= $set_to;
- }
- }
-
- return $obj;
- }
-
-
- /**
- * normalize object with device informations depending on what is enabled for the Slider
- * @since: 5.0
- **/
- public static function normalize_device_settings($obj, $enabled_devices, $return = 'obj', $set_to_if = array()){ //array -> from -> to
- /*desktop
- notebook
- tablet
- mobile*/
-
- if(!empty($set_to_if)){
- foreach($obj as $key => $value) {
- foreach($set_to_if as $from => $to){
- if(trim($value) == $from) $obj->$key = $to;
- }
- }
- }
-
- $inherit_size = self::get_biggest_device_setting($obj, $enabled_devices);
- if($enabled_devices['desktop'] == 'on'){
- if(!isset($obj->desktop) || $obj->desktop === ''){
- $obj->desktop = $inherit_size;
- }else{
- $inherit_size = $obj->desktop;
- }
- }else{
- $obj->desktop = $inherit_size;
- }
-
- if($enabled_devices['notebook'] == 'on'){
- if(!isset($obj->notebook) || $obj->notebook === ''){
- $obj->notebook = $inherit_size;
- }else{
- $inherit_size = $obj->notebook;
- }
- }else{
- $obj->notebook = $inherit_size;
- }
-
- if($enabled_devices['tablet'] == 'on'){
- if(!isset($obj->tablet) || $obj->tablet === ''){
- $obj->tablet = $inherit_size;
- }else{
- $inherit_size = $obj->tablet;
- }
- }else{
- $obj->tablet = $inherit_size;
- }
-
- if($enabled_devices['mobile'] == 'on'){
- if(!isset($obj->mobile) || $obj->mobile === ''){
- $obj->mobile = $inherit_size;
- }else{
- $inherit_size = $obj->mobile;
- }
- }else{
- $obj->mobile = $inherit_size;
- }
-
- switch($return){
- case 'obj':
- //order according to: desktop, notebook, tablet, mobile
- $new_obj = new stdClass();
- $new_obj->desktop = $obj->desktop;
- $new_obj->notebook = $obj->notebook;
- $new_obj->tablet = $obj->tablet;
- $new_obj->mobile = $obj->mobile;
- return $new_obj;
- break;
- case 'html-array':
- if($obj->desktop === $obj->notebook && $obj->desktop === $obj->mobile && $obj->desktop === $obj->tablet){
- return $obj->desktop;
- }else{
- return "['".@$obj->desktop."','".@$obj->notebook."','".@$obj->tablet."','".@$obj->mobile."']";
- }
- break;
- }
-
- return $obj;
- }
-
-
- /**
- * return biggest value of object depending on which devices are enabled
- * @since: 5.0
- **/
- public static function get_biggest_device_setting($obj, $enabled_devices){
-
- if($enabled_devices['desktop'] == 'on'){
- if(isset($obj->desktop) && $obj->desktop != ''){
- return $obj->desktop;
- }
- }
-
- if($enabled_devices['notebook'] == 'on'){
- if(isset($obj->notebook) && $obj->notebook != ''){
- return $obj->notebook;
- }
- }
-
- if($enabled_devices['tablet'] == 'on'){
- if(isset($obj->tablet) && $obj->tablet != ''){
- return $obj->tablet;
- }
- }
-
- if($enabled_devices['mobile'] == 'on'){
- if(isset($obj->mobile) && $obj->mobile != ''){
- return $obj->mobile;
- }
- }
-
- return '';
- }
-
-
- /**
- * change hex to rgba
- */
- public static function hex2rgba($hex, $transparency = false, $raw = false, $do_rgb = false) {
- if($transparency !== false){
- $transparency = ($transparency > 0) ? number_format( ( $transparency / 100 ), 2, ".", "" ) : 0;
- }else{
- $transparency = 1;
- }
- $hex = str_replace("#", "", $hex);
-
- if(strlen($hex) == 3) {
- $r = hexdec(substr($hex,0,1).substr($hex,0,1));
- $g = hexdec(substr($hex,1,1).substr($hex,1,1));
- $b = hexdec(substr($hex,2,1).substr($hex,2,1));
- } else if(self::isrgb($hex)){
- return $hex;
- } else {
- $r = hexdec(substr($hex,0,2));
- $g = hexdec(substr($hex,2,2));
- $b = hexdec(substr($hex,4,2));
- }
-
- if($do_rgb){
- $ret = $r.', '.$g.', '.$b;
- }else{
- $ret = $r.', '.$g.', '.$b.', '.$transparency;
- }
- if($raw){
- return $ret;
- }else{
- return 'rgba('.$ret.')';
- }
- }
-
- public static function isrgb($rgba){
- if(strpos($rgba, 'rgb') !== false) return true;
-
- return false;
- }
-
- /**
- * change rgba to hex
- * @since: 5.0
- */
- public static function rgba2hex($rgba){
- if(strtolower($rgba) == 'transparent') return $rgba;
-
- $temp = explode(',', $rgba);
- $rgb = array();
- if(count($temp) == 4) unset($temp[3]);
- foreach($temp as $val){
- $t = dechex(preg_replace('/[^\d.]/', '', $val));
- if(strlen($t) < 2) $t = '0'.$t;
- $rgb[] = $t;
- }
-
- return '#'.implode('', $rgb);
- }
-
-
- /**
- * get transparency from rgba
- * @since: 5.0
- */
- public static function get_trans_from_rgba($rgba, $in_percent = false){
- if(strtolower($rgba) == 'transparent') return 100;
-
- $temp = explode(',', $rgba);
- if(count($temp) == 4){
- return ($in_percent) ? preg_replace('/[^\d.]/', '', $temp[3]) : preg_replace('/[^\d.]/', "", $temp[3]) * 100;
- }
- return 100;
- }
-
-
- public static function get_responsive_size($slider){
- $operations = new RevSliderOperations();
- $arrValues = $operations->getGeneralSettingsValues();
-
- $enable_custom_size_notebook = $slider->slider->getParam('enable_custom_size_notebook','off');
- $enable_custom_size_tablet = $slider->slider->getParam('enable_custom_size_tablet','off');
- $enable_custom_size_iphone = $slider->slider->getParam('enable_custom_size_iphone','off');
- $adv_resp_sizes = ($enable_custom_size_notebook == 'on' || $enable_custom_size_tablet == 'on' || $enable_custom_size_iphone == 'on') ? true : false;
-
- if($adv_resp_sizes == true){
- $width = $slider->slider->getParam("width", 1240, RevSlider::FORCE_NUMERIC);
- $def = $width;
- $width .= ',';
- if($enable_custom_size_notebook == 'on'){
- $width.= $slider->slider->getParam("width_notebook", 1024, RevSlider::FORCE_NUMERIC);
- $def = $slider->slider->getParam("width_notebook", 1024, RevSlider::FORCE_NUMERIC);
- }else{
- $width.= $def;
- }
- $width.= ',';
- if($enable_custom_size_tablet == 'on'){
- $width.= $slider->slider->getParam("width_tablet", 778, RevSlider::FORCE_NUMERIC);
- $def = $slider->slider->getParam("width_tablet", 778, RevSlider::FORCE_NUMERIC);
- }else{
- $width.= $def;
- }
- $width.= ',';
- if($enable_custom_size_iphone == 'on'){
- $width.= $slider->slider->getParam("width_mobile", 480, RevSlider::FORCE_NUMERIC);
- $def = $slider->slider->getParam("width_mobile", 480, RevSlider::FORCE_NUMERIC);
- }else{
- $width.= $def;
- }
-
- $height = $slider->slider->getParam("height", 1240, RevSlider::FORCE_NUMERIC);
- $def = $height;
- $height .= ',';
- if($enable_custom_size_notebook == 'on'){
- $height.= $slider->slider->getParam("height_notebook", 1024, RevSlider::FORCE_NUMERIC);
- $def = $slider->slider->getParam("height_notebook", 1024, RevSlider::FORCE_NUMERIC);
- }else{
- $height.= $def;
- }
- $height.= ',';
- if($enable_custom_size_tablet == 'on'){
- $height.= $slider->slider->getParam("height_tablet", 778, RevSlider::FORCE_NUMERIC);
- $def = $slider->slider->getParam("height_tablet", 778, RevSlider::FORCE_NUMERIC);
- }else{
- $height.= $def;
- }
- $height.= ',';
- if($enable_custom_size_iphone == 'on'){
- $height.= $slider->slider->getParam("height_mobile", 480, RevSlider::FORCE_NUMERIC);
- $def = $slider->slider->getParam("height_mobile", 480, RevSlider::FORCE_NUMERIC);
- }else{
- $height.= $def;
- }
-
- $responsive = (isset($arrValues['width'])) ? $arrValues['width'] : '1240';
- $def = (isset($arrValues['width'])) ? $arrValues['width'] : '1240';
-
- $responsive.= ',';
- if($enable_custom_size_notebook == 'on'){
- $responsive.= (isset($arrValues['width_notebook'])) ? $arrValues['width_notebook'] : '1024';
- $def = (isset($arrValues['width_notebook'])) ? $arrValues['width_notebook'] : '1024';
- }else{
- $responsive.= $def;
- }
- $responsive.= ',';
- if($enable_custom_size_tablet == 'on'){
- $responsive.= (isset($arrValues['width_tablet'])) ? $arrValues['width_tablet'] : '778';
- $def = (isset($arrValues['width_tablet'])) ? $arrValues['width_tablet'] : '778';
- }else{
- $responsive.= $def;
- }
- $responsive.= ',';
- if($enable_custom_size_iphone == 'on'){
- $responsive.= (isset($arrValues['width_mobile'])) ? $arrValues['width_mobile'] : '480';
- $def = (isset($arrValues['width_mobile'])) ? $arrValues['width_mobile'] : '480';
- }else{
- $responsive.= $def;
- }
-
- return array(
- 'level' => $responsive,
- 'height' => $height,
- 'width' => $width
- );
- }else{
-
- $responsive = (isset($arrValues['width'])) ? $arrValues['width'] : '1240';
- $def = (isset($arrValues['width'])) ? $arrValues['width'] : '1240';
- $responsive.= ',';
- $responsive.= (isset($arrValues['width_notebook'])) ? $arrValues['width_notebook'] : '1024';
- $responsive.= ',';
- $responsive.= (isset($arrValues['width_tablet'])) ? $arrValues['width_tablet'] : '778';
- $responsive.= ',';
- $responsive.= (isset($arrValues['width_mobile'])) ? $arrValues['width_mobile'] : '480';
-
- return array(
- 'visibilitylevel' => $responsive,
- 'height' => $slider->slider->getParam("height", "868", RevSlider::FORCE_NUMERIC),
- 'width' => $slider->slider->getParam("width", "1240", RevSlider::FORCE_NUMERIC)
- );
- }
- }
-
-
- }
- if(!function_exists("dmp")){
- function dmp($str){
- echo "<div align='left'>";
- echo "<pre>";
- print_r($str);
- echo "</pre>";
- echo "</div>";
- }
- }
- /**
- * old classname extends new one (old classnames will be obsolete soon)
- * @since: 5.0
- **/
- class UniteFunctionsRev extends RevSliderFunctions {}
- ?>
|