Create New Item
×
Item Type
File
Folder
Item Name
×
Search file in folder and subfolders...
File Manager
/
wp-content
/
plugins
/
unlimited-elements-for-elementor
/
inc_php
/
framework
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access'); class UniteCssParserUC { private $cssContent; public function __construct() { } public function initContent($cssContent) { $this->cssContent = $cssContent; } public function getArrClasses($startText = "", $endText = "") { $content = $this->cssContent; if (!empty($startText)) { $posStart = strpos($content, $startText); if ($posStart !== false) { $content = substr($content, $posStart, strlen($content) - $posStart); } } if (!empty($endText)) { $posEnd = strpos($content, $endText); if ($posEnd !== false) { $content = substr($content, 0, $posEnd); } } $lines = explode("\n", $content); $arrClasses = array(); foreach ($lines as $key => $line) { $line = trim($line); if (strpos($line, "{") === false) { continue; } if (strpos($line, ".caption a") !== false) { continue; } if (strpos($line, ".tp-caption a") !== false) { continue; } $class = str_replace("{", "", $line); $class = trim($class); if (strpos($class, " ") !== false) { continue; } if (strpos($class, ":") !== false) { continue; } $class = str_replace(".caption.", ".", $class); $class = str_replace(".tp-caption.", ".", $class); $class = str_replace(".", "", $class); $class = trim($class); $arrWords = explode(" ", $class); $class = $arrWords[count($arrWords) - 1]; $class = trim($class); $arrClasses[] = $class; } sort($arrClasses); return $arrClasses; } public static function parseCssToArray($css) { while (strpos($css, '/*') !== false) { if (strpos($css, '*/') === false) { return false; } $start = strpos($css, '/*'); $end = strpos($css, '*/') + 2; $css = str_replace(substr($css, $start, $end - $start), '', $css); } preg_match_all('/(?ims)([a-z0-9\\s\\.\\:#_\\-@]+)\\{([^\\}]*)\\}/', $css, $arr); $result = array(); foreach ($arr[0] as $i => $x) { $selector = trim($arr[1][$i]); if (strpos($selector, '{') !== false || strpos($selector, '}') !== false) { return false; } $rules = explode(';', trim($arr[2][$i])); $result[$selector] = array(); foreach ($rules as $strRule) { if (!empty($strRule)) { $rule = explode(":", $strRule); if (strpos($rule[0], '{') !== false || strpos($rule[0], '}') !== false || strpos($rule[1], '{') !== false || strpos($rule[1], '}') !== false) { return false; } $key = trim($rule[0]); unset($rule[0]); $values = implode(':', $rule); $result[$selector][trim($key)] = trim(str_replace("'", '"', $values)); } } } return $result; } public static function parseDbArrayToCss($cssArray, $nl = "\n\r") { $css = ''; foreach ($cssArray as $id => $attr) { $params = $attr['params']; $styles = json_decode($params); if (empty($styles)) { $styles = json_decode($params); } if (!empty($styles)) { $styles = (array) $styles; } $css .= $attr['handle'] . " {" . $nl; if (is_array($styles)) { foreach ($styles as $name => $style) { $css .= $name . ':' . $style . ";" . $nl; } } $css .= "}" . $nl . $nl; $setting = json_decode($attr['settings'], true); if (@$setting['hover'] == 'true') { $hover = json_decode($attr['hover'], true); if (is_array($hover)) { $css .= $attr['handle'] . ":hover {" . $nl; foreach ($hover as $name => $style) { $css .= $name . ':' . $style . ";" . $nl; } $css .= "}" . $nl . $nl; } } } return $css; } public static function parseArrayToCss($cssArray, $nl = "\n\r") { $css = ''; foreach ($cssArray as $id => $attr) { $styles = (array) $attr['params']; $css .= $attr['handle'] . " {" . $nl; if (is_array($styles) && !empty($styles)) { foreach ($styles as $name => $style) { if ($name == 'background-color' && strpos($style, 'rgba') !== false) { $rgb = explode(',', str_replace('rgba', 'rgb', $style)); unset($rgb[count($rgb) - 1]); $rgb = implode(',', $rgb) . ')'; $css .= $name . ':' . $rgb . ";" . $nl; } $css .= $name . ':' . $style . ";" . $nl; } } $css .= "}" . $nl . $nl; $setting = (array) $attr['settings']; if (@$setting['hover'] == 'true') { $hover = (array) $attr['hover']; if (is_array($hover)) { $css .= $attr['handle'] . ":hover {" . $nl; foreach ($hover as $name => $style) { if ($name == 'background-color' && strpos($style, 'rgba') !== false) { $rgb = explode(',', str_replace('rgba', 'rgb', $style)); unset($rgb[count($rgb) - 1]); $rgb = implode(',', $rgb) . ')'; $css .= $name . ':' . $rgb . ";" . $nl; } $css .= $name . ':' . $style . ";" . $nl; } $css .= "}" . $nl . $nl; } } } return $css; } public static function parseStaticArrayToCss($cssArray, $nl = "\n") { $css = ''; foreach ($cssArray as $class => $styles) { $css .= $class . " {" . $nl; if (is_array($styles) && !empty($styles)) { foreach ($styles as $name => $style) { $css .= $name . ':' . $style . ";" . $nl; } } $css .= "}" . $nl . $nl; } return $css; } public static function parseDbArrayToArray($cssArray, $handle = false) { if (!is_array($cssArray) || empty($cssArray)) { return false; } foreach ($cssArray as $key => $css) { if ($handle != false) { if ($cssArray[$key]['handle'] == '.tp-caption.' . $handle) { $cssArray[$key]['params'] = json_decode($css['params']); $cssArray[$key]['hover'] = json_decode($css['hover']); $cssArray[$key]['settings'] = json_decode($css['settings']); return $cssArray[$key]; } else { unset($cssArray[$key]); } } else { $cssArray[$key]['params'] = json_decode($css['params']); $cssArray[$key]['hover'] = json_decode($css['hover']); $cssArray[$key]['settings'] = json_decode($css['settings']); } } return $cssArray; } public static function compress_css($buffer) { $buffer = preg_replace("!/\\*[^*]*\\*+([^/][^*]*\\*+)*/!", "", $buffer); $arr = array("\r\n", "\r", "\n", "\t", " ", " ", " "); $rep = array("", "", "", "", " ", " ", " "); $buffer = str_replace($arr, $rep, $buffer); $buffer = preg_replace("/\\s*([\\{\\}:,])\\s*/", "\$1", $buffer); $buffer = str_replace(';}', "}", $buffer); return $buffer; } }