__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ 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\Widget;
use Nextend\Framework\View\Html;
class WidgetPlacementAdvanced extends WidgetPlacement {
protected $items = array();
protected $variables = array();
public function add($renderCallback, $horizontalSide, $horizontalPosition, $horizontalUnit, $verticalSide, $verticalPosition, $verticalUnit) {
$attributes = array(
'style' => ''
);
$transforms = array();
if (is_numeric($horizontalPosition)) {
$attributes['style'] .= $horizontalSide . ':' . $horizontalPosition . $horizontalUnit . ';';
} else {
$attributes['style'] .= $horizontalSide . ':0;';
$transforms[] = 'translateX(' . $this->toCSSCalc($horizontalSide == 'left' ? 1 : -1, $horizontalPosition) . ')';
}
if (is_numeric($verticalPosition)) {
$attributes['style'] .= $verticalSide . ':' . $verticalPosition . $verticalUnit . ';';
} else {
$attributes['style'] .= $verticalSide . ':0;';
$transforms[] = 'translateY(' . $this->toCSSCalc($verticalSide == 'top' ? 1 : -1, $verticalPosition) . ')';
}
if (!empty($transforms)) {
$attributes['style'] .= 'transform:' . implode(' ', $transforms) . ';';
}
$this->items[] = array(
'renderCallback' => $renderCallback,
'attributes' => $attributes
);
}
public function render() {
$out = '';
foreach ($this->items as $item) {
$out .= call_user_func($item['renderCallback'], $item['attributes']);
}
if (!empty($out)) {
return Html::tag('div', array(
'class' => 'n2-ss-slider-controls n2-ss-slider-controls-' . $this->name,
'data-variables' => implode(',', array_unique($this->variables))
), $out);
}
return '';
}
private function toCSSCalc($modifier, $expression) {
// Remove whitespaces
$expression = preg_replace('/\s+/', '', $expression);
// take care of minus symbol on single number
$expression = preg_replace('/([+\-*\/])[\-]/', '$1[minus]', $expression);
$expression = preg_replace('/[+\-*\/]/', ' $0 ', $expression);
$expression = str_replace('[minus]', '-1 * ', $expression);
preg_match_all('/[a-zA-Z][a-zA-Z0-9]*/', $expression, $matches);
foreach ($matches as $match) {
if (!empty($match)) {
$this->variables = array_merge($this->variables, $match);
}
}
$expression = preg_replace('/[a-zA-Z][a-zA-Z0-9]*/', 'var(--$0, 0)', $expression);
return 'calc(' . $modifier . 'px * (' . $expression . '))';
}
}| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| Arrow | Folder | 0775 |
|
|
| Autoplay | Folder | 0775 |
|
|
| Bar | Folder | 0775 |
|
|
| Bullet | Folder | 0775 |
|
|
| Group | Folder | 0775 |
|
|
| Shadow | Folder | 0775 |
|
|
| Thumbnail | Folder | 0775 |
|
|
| AbstractWidget.php | File | 1.93 KB | 0664 |
|
| AbstractWidgetFrontend.php | File | 4.22 KB | 0664 |
|
| SliderWidget.php | File | 5.98 KB | 0664 |
|
| WidgetGroupFactory.php | File | 1.31 KB | 0664 |
|
| WidgetPlacement.php | File | 280 B | 0664 |
|
| WidgetPlacementAdvanced.php | File | 2.72 KB | 0664 |
|
| WidgetPlacementSimple.php | File | 1.13 KB | 0664 |
|