| Current Path : /var/www/components/com_sppagebuilder/addons/div/ |
| Current File : /var/www/components/com_sppagebuilder/addons/div/site.php |
<?php
/**
* @package SP Page Builder
* @author JoomShaper http://www.joomshaper.com
* @copyright Copyright (c) 2010 - 2025 JoomShaper
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or later
*/
//no direct access
defined('_JEXEC') or die('Restricted access');
class SppagebuilderAddonDiv extends SppagebuilderAddons
{
/**
* The render method of the DIV addon.
* The HTML of the DIV addon is managed from
* the `addon-parser.php` file. Nothing is needed to return from here.
*
* @return string
* @since 4.0.0
*/
public function render()
{
return '';
}
/**
* The DIV addon's CSS stylings.
*
* @return string The CSS string.
* @since 4.0.0
*/
public function css()
{
$settings = $this->addon->settings;
$addon_id = '#sppb-addon-' . $this->addon->id;
$cssHelper = new CSSHelper($addon_id);
$css = '';
$props = [
'display' => 'display',
'width' => 'width',
'height' => 'height',
'overflow' => 'overflow'
];
$units = [
'display' => false,
'overflow' => false,
];
if (isset($settings->reverse_direction) && $settings->reverse_direction) {
if (is_object($settings->reverse_direction)) {
if (is_object($settings->flex_direction)) {
foreach ($settings->reverse_direction as $key => $value) {
if (!empty($value) && !empty($settings->flex_direction->$key)) {
$settings->flex_direction->$key = $settings->flex_direction->$key . '-reverse';
}
}
} else {
foreach ($settings->reverse_direction as $key => $value) {
if (!empty($value) && !empty($settings->flex_direction)) {
$settings->flex_direction->$key = $settings->flex_direction . '-reverse';
}
}
}
} else if (!empty($settings->flex_direction)) {
$settings->flex_direction = $settings->flex_direction . '-reverse';
}
}
if (isset($settings->display) && \in_array($settings->display, ['flex', 'inline-flex'])) {
$props = array_merge($props, [
'flex_direction' => 'flex-direction',
'justify_content' => 'justify-content',
'align_items' => 'align-items',
'flex_gap' => 'gap',
'flex_wrap' => 'flex-wrap'
]);
$units = array_merge($units, [
'flex_direction' => false,
'justify_content' => false,
'align_items' => false,
'flex_gap' => false,
'flex_wrap' => false,
]);
}
$divStyle = $cssHelper->generateStyle(':self', $settings, $props, $units);
$transformCss = $cssHelper->generateTransformStyle(':self', $settings, 'transform');
$css .= $divStyle;
$css .= $transformCss;
return $css;
}
public static function getTemplate() {
$lodash = new Lodash('#sppb-addon-{{ data.id }}');
$output = '<style type="text/css">';
$output .= $lodash->generateTransformCss('', 'data.transform');
$output .= '</style>';
return $output;
}
}