File "cssparser.class.php"
Full path: /home/kosmetik/public_html/wp-content/plugins/unlimited-elements-for-elementor/inc_php/framework/cssparser.class.php
File
size: 8.11 B
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor Back
<?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;
}
}