function parseTshadow($v)
 {
     $v = NextendParse::parse($v);
     $rgba = NextendColor::hex2rgba($v[3]);
     if ($v[0] == 0 && $v[1] == 0 && $v[2] == 0) {
         return 'text-shadow: none;';
     }
     return 'text-shadow: ' . $v[0] . 'px ' . $v[1] . 'px ' . $v[2] . 'px RGBA(' . $rgba[0] . ',' . $rgba[1] . ',' . $rgba[2] . ',' . round($rgba[3] / 127, 2) . ');';
 }
Exemple #2
0
 function transparentcolor($color)
 {
     $cachefile = $this->_folder . 'transparentcolor' . $color . '.' . $this->_filetype;
     if (!NextendFilesystem::existsFile($cachefile)) {
         $rgba = NextendColor::hex2rgba($color);
         $this->createIm(1, 1);
         $fillcolor = imagecolorallocatealpha($this->_im, $rgba[0], $rgba[1], $rgba[2], 127 - $rgba[3]);
         imagefilledrectangle($this->_im, 0, 0, 1, 1, $fillcolor);
         $this->saveIm($cachefile);
     }
     return NextendFilesystem::pathToAbsoluteURL($cachefile);
 }
$params = $this->_sliderParams;
$width = intval($context['width']);
$height = intval($context['height']);
$context['bgsize'] = NextendParse::parse($params->get('simplebackgroundimagesize', 'auto'));
$border = NextendParse::parse($params->get('simpleborder', '0|*|3E3E3Eff'));
$border1 = intval($border[0]);
$padding = NextendParse::parse($params->get('simplepadding', '0|*|0|*|0|*|0'));
$context['paddingt'] = $padding[0] . 'px';
$context['paddingr'] = $padding[1] . 'px';
$context['paddingb'] = $padding[2] . 'px';
$context['paddingl'] = $padding[3] . 'px';
if ($context['canvas']) {
    $width += 2 * $border1 + $padding[1] + $padding[3];
    $height += 2 * $border1 + $padding[0] + $padding[2];
    $context['width'] = $width . "px";
    $context['height'] = $height . "px";
}
$context['border'] = $border1 . 'px';
$rgba = NextendColor::hex2rgba($border[1]);
$context['borderrgba'] = 'RGBA(' . $rgba[0] . ',' . $rgba[1] . ',' . $rgba[2] . ',' . round($rgba[3] / 127, 2) . ')';
$context['borderhex'] = '#' . substr($border[1], 0, 6);
$borderradius = NextendParse::parse($params->get('simpleborderradius', '0|*|0|*|0|*|0'));
$context['tl'] = $borderradius[0] . 'px';
$context['tr'] = $borderradius[1] . 'px';
$context['br'] = $borderradius[2] . 'px';
$context['bl'] = $borderradius[3] . 'px';
$width = $width - ($padding[1] + $padding[3]) - $border1 * 2;
$height = $height - ($padding[0] + $padding[2]) - $border1 * 2;
$context['inner1height'] = $height . 'px';
$context['canvaswidth'] = $width . "px";
$context['canvasheight'] = $height . "px";
 static function render($slider, $id, $params)
 {
     $html = '';
     $thumbnail = $params->get('thumbnail', false);
     if ($thumbnail && $thumbnail != '-1') {
         $displayclass = self::getDisplayClass($params->get('widgetthumbnaildisplay', '0|*|always|*|0|*|0'), true);
         $css = NextendCss::getInstance();
         $css->addCssFile(NextendFilesystem::translateToMediaPath(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'vertical' . DIRECTORY_SEPARATOR . 'style.css'));
         $js = NextendJavascript::getInstance();
         $js->addLibraryJsLibraryFile('jquery', 'jquery.mousewheel.js');
         $js->addLibraryJsFile('jquery', dirname(__FILE__) . '/vertical/script.js');
         $thumbnailactivebackground = $params->get('thumbnailactivebackground', '00000080');
         $rgbathumbnailactivebackground = NextendColor::hex2rgba($thumbnailactivebackground);
         $rgbacssthumbnailactivebackground = 'RGBA(' . $rgbathumbnailactivebackground[0] . ',' . $rgbathumbnailactivebackground[1] . ',' . $rgbathumbnailactivebackground[2] . ',' . round($rgbathumbnailactivebackground[3] / 127, 2) . ')';
         $colorhexthumbnailactivebackground = substr($thumbnailactivebackground, 0, 6);
         $info = pathinfo($thumbnail);
         $class = 'nextend-thumbnail nextend-thumbnail-vertical nextend-thumbnail-vertical-' . basename($thumbnail, '.' . $info['extension']);
         $thumbnailsize = array(NextendParse::parse($params->get('thumbnailsize', '300')));
         $thumbnailcolumn = $params->get('thumbnailcolumn', '30');
         $thumbnailperpage = $params->get('thumbnailperpage', 2);
         list($positionstyle, $data) = self::getPosition($params->get('thumbnailposition', ''));
         $positionstyle .= 'z-index:10; font-size: ' . intval($slider->_sliderParams->get('globalfontsize', '12')) . 'px;';
         $html .= '<div id="' . $id . '-thumbnail" class="' . $displayclass . '" style="width: ' . $thumbnailsize[0] . 'px;height: 100%;' . $positionstyle . '" ' . $data . '>';
         $html .= '<div class="nextend-thumbnail-container ' . $class . ' nextend-clearfix">
         <div class="nextend-arrow-top"></div>';
         $html .= '<div class="nextend-thumbnail-strip-hider"><div class="nextend-thumbnail-strip">';
         $thumbnailtitlelink = $params->get('thumbnailtitlelink', 0);
         for ($i = 0; $i < count($slider->_slides); $i++) {
             $html .= '<div onclick="njQuery(\'#' . $id . '\').smartslider(\'goto\',' . $i . ',false);" class="' . $class . ($slider->_slides[$i]['first'] ? ' active' : '') . '">';
             if ($thumbnailcolumn != 0) {
                 if (!$slider->_slides[$i]['thumbnail'] && $slider->_slides[$i]['bg']['desktop']) {
                     $slider->_slides[$i]['thumbnail'] = $slider->_slides[$i]['bg']['desktop'];
                 }
                 $html .= '<div class="nextend-thumbnail-vertical-image" style="float:left;width:' . $thumbnailcolumn . '%; background-image:url(\'' . $slider->_slides[$i]['thumbnail'] . '\');"></div>';
             }
             $html .= '<div class="nextend-thumbnail-vertical-content" style="width:' . (100 - $thumbnailcolumn) . '%;">';
             $link = NextendParse::parse($slider->_slides[$i]['params']->get('link'));
             if ($thumbnailtitlelink && $link[0] != '' && $link[0] != '#') {
                 $html .= '<h4 class="' . $params->get('thumbnailfontclasstitle') . '"><a href="' . $link[0] . '" target="' . $link[1] . '">' . $slider->_slides[$i]['title'] . '</a></h4>';
             } else {
                 $html .= '<h4 class="' . $params->get('thumbnailfontclasstitle') . '">' . $slider->_slides[$i]['title'] . '</h4>';
             }
             $html .= '<p class="' . $params->get('thumbnailfontclassdescription') . '">' . $slider->_slides[$i]['description'] . '</p>
                 </div></div>';
         }
         $html .= '</div></div></td>';
         $html .= '<div class="nextend-arrow-bottom"></div></div></div>';
         $html .= "\n              <script type='text/javascript'>\n                  njQuery(document).ready(function () {\n                      window['" . $id . "-thumbnail'] = new smartSliderVertical({\n                          id: '" . $id . "',\n                          node: window.njQuery('#" . $id . "-thumbnail'),\n                          thumbnailperpage: '" . $thumbnailperpage . "',\n                          thumbnailanimation: '" . $params->get('thumbnailanimation', 700) . "'\n                      });\n                  });\n              </script>\n            ";
         $css->addCssFile('
             #' . $id . ' .nextend-thumbnail-container .nextend-thumbnail-vertical-vertical1:HOVER,            
             #' . $id . ' .nextend-thumbnail-container .nextend-thumbnail-vertical-vertical1.active,                      
             #' . $id . ' .nextend-thumbnail-container.nextend-thumbnail-vertical-vertical1 .nextend-arrow-top:HOVER,
             #' . $id . ' .nextend-thumbnail-container.nextend-thumbnail-vertical-vertical1 .nextend-arrow-bottom:HOVER,
             #' . $id . ' .nextend-thumbnail-container .nextend-thumbnail-vertical-vertical-light:HOVER,            
             #' . $id . ' .nextend-thumbnail-container .nextend-thumbnail-vertical-vertical-light.active,                      
             #' . $id . ' .nextend-thumbnail-container.nextend-thumbnail-vertical-vertical-light .nextend-arrow-top:HOVER,
             #' . $id . ' .nextend-thumbnail-container.nextend-thumbnail-vertical-vertical-light .nextend-arrow-bottom:HOVER{            
                 background-color:' . $rgbacssthumbnailactivebackground . ';
             }', $id);
     }
     return $html;
 }
 function initSlides($slides)
 {
     if ($this->_backend) {
         if (NextendRequest::getCmd('action') == 'create') {
             array_unshift($slides, array('id' => 0, 'title' => '{_slidetitle}', 'slider' => NextendRequest::getInt('sliderid'), 'publish_up' => '0000-00-00 00:00:00', 'publish_down' => '0000-00-00 00:00:00', 'published' => 1, 'first' => 0, 'slide' => '', 'params' => '', 'thumbnail' => '', 'background' => 'ffffff00|*|', 'description' => 'Description', 'ordering' => count($slides)));
         }
         if (NextendRequest::getCmd('action') == 'generatoredit') {
             global $smartslidergeneratorslide;
             if (!$smartslidergeneratorslide) {
                 $smartslidergeneratorslide = array();
             }
             array_unshift($slides, array_merge(array('id' => 0, 'title' => '{_slidetitle}', 'slider' => NextendRequest::getInt('sliderid'), 'publish_up' => '0000-00-00 00:00:00', 'publish_down' => '0000-00-00 00:00:00', 'published' => 1, 'first' => 0, 'slide' => '', 'params' => '', 'thumbnail' => '', 'background' => 'ffffff00|*|', 'description' => 'Description', 'ordering' => count($slides)), $smartslidergeneratorslide));
         } else {
             if (NextendRequest::getCmd('controller') == 'layouts' && NextendRequest::getCmd('action') == 'edit') {
                 global $smartsliderlayout;
                 if (!$smartsliderlayout) {
                     $smartsliderlayout = '';
                 }
                 array_unshift($slides, array('id' => 0, 'title' => '{_slidetitle}', 'slide' => $smartsliderlayout, 'params' => ''));
             } else {
                 if (NextendRequest::getCmd('controller') == 'slides') {
                     $currentlyedited = NextendRequest::getInt('slideid');
                     for ($i = 0; $i < count($slides); $i++) {
                         if ($slides[$i]['id'] == $currentlyedited) {
                             $this->_activeSlide = $i;
                             break;
                         }
                     }
                 }
             }
         }
     } else {
         for ($i = 0; $i < count($slides); $i++) {
             if ($slides[$i]['first'] == 1) {
                 $this->_activeSlide = $i;
                 break;
             }
         }
     }
     nextendimport('nextend.image.color');
     for ($i = 0; $i < count($slides); $i++) {
         $params = new NextendData();
         $params->loadJSON($slides[$i]['params']);
         $slides[$i]['params'] = $params;
         $slides[$i]['classes'] = 'smart-slider-canvas';
         if (!isset($slides[$i]['background'])) {
             $slides[$i]['background'] = 'ffffff00|*|';
         }
         $bg = (array) NextendParse::parse($slides[$i]['background']);
         $style = '';
         if (isset($bg[0]) && strlen($bg[0]) == 8) {
             if (substr($bg[0], 6, 2) != '00') {
                 $style .= 'background-color: #' . substr($bg[0], 0, 6) . ';';
                 $rgba = NextendColor::hex2rgba($bg[0]);
                 $style .= 'background-color: RGBA(' . $rgba[0] . ',' . $rgba[1] . ',' . $rgba[2] . ',' . round($rgba[3] / 127, 2) . ');';
             }
         }
         $slides[$i]['style'] = $style;
         $bgmore = (array) NextendParse::parse($slides[$i]['params']->get('backgroundmore'));
         $slides[$i]['bg'] = array('desktop' => empty($bg[1]) ? 0 : NextendUri::fixrelative($bg[1]), 'desktopretina' => empty($bgmore[0]) ? 0 : NextendUri::fixrelative($bgmore[0]), 'tablet' => empty($bgmore[1]) ? 0 : NextendUri::fixrelative($bgmore[1]), 'tabletretina' => empty($bgmore[2]) ? 0 : NextendUri::fixrelative($bgmore[2]), 'mobile' => empty($bgmore[3]) ? 0 : NextendUri::fixrelative($bgmore[3]), 'mobileretina' => empty($bgmore[4]) ? 0 : NextendUri::fixrelative($bgmore[4]), 'alt' => empty($bg[2]) ? '' : $bg[2]);
         if (!empty($slides[$i]['thumbnail'])) {
             $slides[$i]['thumbnail'] = NextendUri::fixrelative($slides[$i]['thumbnail']);
         }
         $link = $params->get('link', '');
         $link = (array) NextendParse::parse($link);
         if (!$this->_backend && $link && isset($link[0]) && $link[0] != '' && $link[0] != '#') {
             if (!isset($link[1])) {
                 $link[1] = '_self';
             }
             $slides[$i]['link'] = ' onclick="' . htmlspecialchars(strpos($link[0], 'javascript:') === 0 ? $link[0] : ($link[1] == '_blank' ? "window.open('" . (nextendIsJoomla() ? JRoute::_($link[0], false) : $link[0]) . "','_blank');" : "window.location='" . (nextendIsJoomla() ? JRoute::_($link[0], false) : $link[0]) . "'")) . '" ';
             $slides[$i]['style'] .= 'cursor:pointer;';
         } else {
             $slides[$i]['link'] = '';
         }
     }
     return $slides;
 }