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/';
 }
Пример #2
0
 /**
  * @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]));
 }
Пример #3
0
 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;
 }
Пример #4
0
 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 '';
 }
Пример #5
0
 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));
 }
Пример #6
0
 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 '';
 }
Пример #7
0
 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 '';
 }
Пример #8
0
 public static function build()
 {
     foreach (N2AssetsManager::$less->getFiles() as $group => $file) {
         N2CSS::addFile($file, $group);
     }
 }
Пример #9
0
 /**
  * @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);
 }