public function assetsBackend() { static $once; if ($once != null) { return; } $once = true; $path = $this->getAssetsPath(); N2CSS::addInline('.n2-expert {display: none !important;'); N2CSS::addFile($path . "/admin/css/smartslider.css", 'smartslider-backend'); foreach (glob($path . "/admin/js/*.js") as $file) { N2JS::addFile($file, 'smartslider-backend'); } if (!N2Base::getApplication('smartslider')->storage->get('free', 'rated')) { N2JS::addFile($path . "/admin/js/free/gopro.js", 'smartslider-free'); } foreach (glob($path . "/admin/js/element/*.js") as $file) { N2JS::addFile($file, 'smartslider-backend'); } N2Localization::addJS(array('Insert', 'Insert variable', 'Choose the group', 'Choose the variable', 'Result', 'Filter', 'No', 'Clean HTML', 'Remove HTML', 'Split', 'Chars', 'Words', 'Start', 'Length', 'Find image', 'Index', 'Find link', 'Index')); foreach (glob($path . "/admin/js/generator/*.js") as $file) { N2JS::addFile($file, 'smartslider-backend'); } foreach (glob($path . "/admin/js/item/*.js") as $file) { N2JS::addFile($file, 'smartslider-backend'); } foreach (glob($path . "/admin/js/item/parser/*.js") as $file) { N2JS::addFile($file, 'smartslider-backend'); } foreach (glob($path . "/admin/js/layer/*.js") as $file) { N2JS::addFile($file, 'smartslider-backend'); } N2Form::$documentation = 'http://doc.smartslider3.com/'; }
/** * @param $slider N2SmartSliderAbstract * @param $id * @param $params * * @return string */ static function render($slider, $id, $params) { N2CSS::addFile(N2Filesystem::translate(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'horizontal' . DIRECTORY_SEPARATOR . 'style.css'), $id); N2JS::addFile(N2Filesystem::translate(dirname(__FILE__) . '/horizontal/bar.js'), $id); list($displayClass, $displayAttributes) = self::getDisplayAttributes($params, self::$key); $styleClass = N2StyleRenderer::render($params->get(self::$key . 'style'), 'simple', $slider->elementId, 'div#' . $slider->elementId . ' '); $fontTitle = N2FontRenderer::render($params->get(self::$key . 'font-title'), 'simple', $slider->elementId, 'div#' . $slider->elementId . ' ', $slider->fontSize); $fontDescription = N2FontRenderer::render($params->get(self::$key . 'font-description'), 'simple', $slider->elementId, 'div#' . $slider->elementId . ' ', $slider->fontSize); list($style, $attributes) = self::getPosition($params, self::$key); $attributes['data-offset'] = $params->get(self::$key . 'position-offset'); $style .= 'text-align: ' . $params->get(self::$key . 'align') . ';'; $width = $params->get(self::$key . 'width'); if (is_numeric($width) || substr($width, -1) == '%' || substr($width, -2) == 'px') { $style .= 'width:' . $width . ';'; } else { $attributes['data-sswidth'] = $width; } $innerStyle = ''; if (!$params->get(self::$key . 'full-width')) { $innerStyle = 'display: inline-block;'; } $separator = $params->get(self::$key . 'separator'); $showDescription = intval($params->get(self::$key . 'show-description')); $slides = array(); for ($i = 0; $i < count($slider->slides); $i++) { $slides[$i] = N2Html::tag('span', array('class' => $fontTitle), $slider->slides[$i]->getTitle()); $description = $slider->slides[$i]->getDescription(); if ($showDescription && !empty($description)) { $slides[$i] .= N2Html::tag('span', array('class' => $fontDescription), $separator . $description); } } $parameters = array('overlay' => $params->get(self::$key . 'position-mode') != 'simple' || $params->get(self::$key . 'overlay'), 'area' => intval($params->get(self::$key . 'position-area')), 'animate' => intval($params->get(self::$key . 'animate'))); N2JS::addInline('new NextendSmartSliderWidgetBarHorizontal("' . $id . '", ' . json_encode($slides) . ', ' . json_encode($parameters) . ');'); return N2Html::tag("div", $displayAttributes + $attributes + array("class" => $displayClass . "nextend-bar nextend-bar-horizontal", "style" => $style), N2Html::tag("div", array("class" => $styleClass, "style" => $innerStyle), $slides[$slider->_activeSlide])); }
static function render($slider, $id, $params) { $html = ''; $play = $params->get(self::$key . 'play-image'); $playColor = $params->get(self::$key . 'play-color'); if (empty($play)) { $play = $params->get(self::$key . 'play'); if ($play == -1) { $play = null; } elseif ($play[0] != '$') { $play = N2Uri::pathToUri(dirname(__FILE__) . '/image/play/' . $play); } } if ($params->get(self::$key . 'mirror')) { $pause = str_replace('image/play/', 'image/pause/', $play); $pauseColor = $playColor; } else { $pause = $params->get(self::$key . 'pause-image'); $pauseColor = $params->get(self::$key . 'pause-color'); if (empty($pause)) { $pause = $params->get(self::$key . 'pause'); if ($pause == -1) { $pause = null; } elseif ($pause[0] != '$') { $pause = N2Uri::pathToUri(dirname(__FILE__) . '/image/pause/' . $pause); } } } $ext = pathinfo($play, PATHINFO_EXTENSION); if (substr($play, 0, 1) == '$' && $ext == 'svg') { list($color, $opacity) = N2Color::colorToSVG($playColor); $play = 'data:image/svg+xml;base64,' . base64_encode(str_replace(array('fill="#FFF"', 'opacity="1"'), array('fill="#' . $color . '"', 'opacity="' . $opacity . '"'), N2Filesystem::readFile(N2ImageHelper::fixed($play, true)))); } else { $play = N2ImageHelper::fixed($play); } $ext = pathinfo($pause, PATHINFO_EXTENSION); if (substr($pause, 0, 1) == '$' && $ext == 'svg') { list($color, $opacity) = N2Color::colorToSVG($pauseColor); $pause = 'data:image/svg+xml;base64,' . base64_encode(str_replace(array('fill="#FFF"', 'opacity="1"'), array('fill="#' . $color . '"', 'opacity="' . $opacity . '"'), N2Filesystem::readFile(N2ImageHelper::fixed($pause, true)))); } else { $pause = N2ImageHelper::fixed($pause); } if ($play && $pause) { N2CSS::addFile(N2Filesystem::translate(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'image' . DIRECTORY_SEPARATOR . 'style.css'), $id); N2JS::addFile(N2Filesystem::translate(dirname(__FILE__) . '/image/autoplay.js'), $id); list($displayClass, $displayAttributes) = self::getDisplayAttributes($params, self::$key); $styleClass = N2StyleRenderer::render($params->get(self::$key . 'style'), 'heading', $slider->elementId, 'div#' . $slider->elementId . ' '); list($style, $attributes) = self::getPosition($params, self::$key); N2JS::addInline('new NextendSmartSliderWidgetAutoplayImage("' . $id . '", ' . floatval($params->get(self::$key . 'responsive-desktop')) . ', ' . floatval($params->get(self::$key . 'responsive-tablet')) . ', ' . floatval($params->get(self::$key . 'responsive-mobile')) . ');'); $html = N2Html::tag('div', $displayAttributes + $attributes + array('class' => $displayClass . $styleClass . 'nextend-autoplay nextend-autoplay-image', 'style' => $style), N2Html::image($play, '', array('class' => 'nextend-autoplay-play n2-ow')) . N2Html::image($pause, '', array('class' => 'nextend-autoplay-pause n2-ow'))); } return $html; }
public function renderPlaceholder($sizes) { if (!$this->slider->isAdmin && $this->fadeOnLoad && ($this->slider->features->responsive->scaleDown || $this->slider->features->responsive->scaleUp)) { if (N2SystemHelper::testMemoryLimit()) { if ($sizes['width'] + $sizes['marginHorizontal'] > 0 && $sizes['height'] > 0 && function_exists('imagecreatetruecolor')) { return N2Html::tag("div", array("id" => $this->slider->elementId . "-placeholder", "encode" => false, "style" => 'position: relative;z-index:2;'), $this->makeImage($sizes)); } else { N2CSS::addCode("#{$this->slider->elementId} .n2-ss-load-fade{position: relative !important;}", $this->slider->cacheId); } } else { N2Message::error(n2_("It seems like the <a href='http://php.net/manual/en/ini.core.php#ini.memory-limit'>memory_limit</a> on the server is too low for the fade on load feature. Please set it minimum 60M and reload the page! You can disable this message in <a href='" . N2Form::$documentation . "#Troubleshooting-G-Server'>global configuration</a> 'Frontend debug message' option.")); } } else { N2CSS::addCode("#{$this->slider->elementId}.n2-ss-load-fade{position: relative !important;}", $this->slider->cacheId); } return ''; }
public static function frontend($force = false) { static $once; if ($once != null && !$force) { return; } $once = true; N2AssetsManager::getInstance(); N2JS::addInline('window.N2PRO=' . N2PRO . ';', true); N2JS::addInline('window.N2GSAP=' . N2GSAP . ';', true); N2JS::addInline('window.N2PLATFORM="' . N2Platform::getPlatform() . '";', true); N2JS::addInline('window.nextend={localization: {}, deferreds:[], loadScript: function(url){n2jQuery.ready(function () {nextend.deferreds.push(n2.ajax({url:url,dataType:"script",cache:true,error:function(){console.log(arguments)}}))})}, ready: function(cb){n2.when.apply(n2, nextend.deferreds).done(function(){cb.call(window,n2)})}};', true); N2JS::jQuery($force); N2JS::addFiles(N2LIBRARYASSETS . "/js", array('consts.js', 'class.js', 'base64.js', 'mobile-detect.js'), 'nextend-frontend'); N2JS::addFiles(N2LIBRARYASSETS . "/js/core/jquery", array("jquery.imagesloaded.js", "litebox.js", "jquery.universalpointer.js", "jquery.mousewheel.js", "EventBurrito.js"), "nextend-frontend"); N2JS::modernizr(); N2CSS::addFiles(N2LIBRARYASSETS . "/css", array('litebox.css'), 'nextend-frontend'); self::animation($force); N2Loader::import('libraries.fonts.fonts'); N2Plugin::callPlugin('fontservices', 'onFontManagerLoad', array($force)); }
public static function render($style, $mode, $group, $pre = '') { self::$pre = $pre; $selector = ''; if (intval($style) > 0) { // Linked $style = N2StorageSectionAdmin::getById($style, 'style'); if ($style) { if (is_string($style['value'])) { $value = json_decode(base64_decode($style['value']), true); } else { $value = $style['value']; } $selector = 'n2-style-' . $style['id'] . '-' . $mode; self::$sets[] = $style['referencekey']; if (!isset(self::$styles[$style['id']])) { self::$styles[$style['id']] = array($mode); } else { if (!in_array($mode, self::$styles[$style['id']])) { self::$styles[$style['id']][] = $mode; } } N2CSS::addCode(self::renderStyle($mode, $pre, $selector, $value['data']), $group); return $selector . ' '; } } else { if ($style != '') { $value = json_decode(base64_decode($style), true); if ($value) { $selector = 'n2-style-' . md5($style) . '-' . $mode; N2CSS::addCode(self::renderStyle($mode, $pre, $selector, $value['data']), $group); return $selector . ' '; } } } return ''; }
public static function render($font, $mode, $group, $pre = '', $fontSize = false) { self::$pre = $pre; if (intval($font) > 0) { // Linked $font = N2StorageSectionAdmin::getById($font, 'font'); if ($font) { if (is_string($font['value'])) { $value = json_decode(base64_decode($font['value']), true); } else { $value = $font['value']; } $selector = 'n2-font-' . $font['id'] . '-' . $mode; self::$sets[] = $font['referencekey']; if (!isset(self::$fonts[$font['id']])) { self::$fonts[$font['id']] = array($mode); } else { if (!in_array($mode, self::$fonts[$font['id']])) { self::$fonts[$font['id']][] = $mode; } } N2CSS::addCode(self::renderFont($mode, $pre, $selector, $value['data'], $fontSize), $group); return $selector . ' '; } } else { if ($font != '') { $value = json_decode(base64_decode($font), true); if ($value) { $selector = 'n2-font-' . md5($font) . '-' . $mode; N2CSS::addCode(self::renderFont($mode, $pre, $selector, $value['data'], $fontSize), $group); return $selector . ' '; } } } return ''; }
public static function build() { foreach (N2AssetsManager::$less->getFiles() as $group => $file) { N2CSS::addFile($file, $group); } }
/** * @param $slider N2SmartSliderAbstract * @param $id * @param $params * * @return string */ static function render($slider, $id, $params) { N2JS::addFile(N2Filesystem::translate(dirname(__FILE__) . '/transition/bullet.js'), $id); N2CSS::addFile(N2Filesystem::translate(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'transition' . DIRECTORY_SEPARATOR . 'style.css'), $id); list($displayClass, $displayAttributes) = self::getDisplayAttributes($params, self::$key); $bulletStyle = N2StyleRenderer::render($params->get(self::$key . 'style'), 'dot', $slider->elementId, 'div#' . $slider->elementId . ' '); $barStyle = N2StyleRenderer::render($params->get(self::$key . 'bar'), 'simple', $slider->elementId, 'div#' . $slider->elementId . ' '); list($style, $attributes) = self::getPosition($params, self::$key); $attributes['data-offset'] = $params->get(self::$key . 'position-offset', 0); $dots = array(); $i = 1; foreach ($slider->slides as $slide) { $dots[] = N2Html::tag('div', array('class' => $bulletStyle . ($slide->isActive() ? 'n2-active' : '')), ''); $i++; } $orientation = self::getOrientationByPosition($params->get(self::$key . 'position-mode'), $params->get(self::$key . 'position-area'), $params->get(self::$key . 'orientation')); if ($orientation == 'auto') { $orientation = 'horizontal'; } $html = ''; switch ($orientation) { case 'vertical': $html .= implode('<br>', $dots); break; default: $html .= implode('', $dots); } $parameters = array('overlay' => $params->get(self::$key . 'position-mode') != 'simple' || $params->get(self::$key . 'overlay'), 'area' => intval($params->get(self::$key . 'position-area'))); $thumbnails = array(); if ($params->get(self::$key . 'thumbnail-show-image')) { foreach ($slider->slides as $slide) { $thumbnails[] = $slide->getThumbnail(); } $parameters['thumbnailWidth'] = intval($params->get(self::$key . 'thumbnail-width')); $parameters['thumbnailHeight'] = intval($params->get(self::$key . 'thumbnail-height')); $parameters['thumbnailStyle'] = N2StyleRenderer::render($params->get(self::$key . 'thumbnail-style'), 'simple', $slider->elementId, ''); $side = $params->get(self::$key . 'thumbnail-side'); if ($side == 'before') { if ($orientation == 'vertical') { $position = 'left'; } else { $position = 'top'; } } else { if ($orientation == 'vertical') { $position = 'right'; } else { $position = 'bottom'; } } $parameters['thumbnailPosition'] = $position; } $parameters['thumbnails'] = $thumbnails; $parameters['action'] = $params->get(self::$key . 'action'); $parameters['numeric'] = 0; N2JS::addInline('new NextendSmartSliderWidgetBulletTransition("' . $id . '", ' . json_encode($parameters) . ');'); $fullSize = intval($params->get(self::$key . 'bar-full-size')); if ($fullSize) { $displayClass .= "n2-bullet-bar-full-size "; } return N2Html::tag("div", $displayAttributes + $attributes + array("class" => $displayClass . $barStyle . "nextend-bullet-bar nextend-bullet-bar-" . $orientation, "style" => "text-align: " . $params->get(self::$key . 'align') . ";" . $style), $html); }