function onNextendFacebook(&$facebook) { $config = new NextendData(); $config->loadJson(NextendSmartSliderStorage::get(self::$_group)); require_once dirname(__FILE__) . "/api/facebook.php"; $facebook = new Facebook(array('appId' => $config->get('apikey', ''), 'secret' => $config->get('apisecret', ''))); $facebook->setAccessToken($config->get('token', '')); }
function onNextendFlickr(&$flickr) { $config = new NextendData(); $config->loadJson(NextendSmartSliderStorage::get(self::$_group)); require_once dirname(__FILE__) . "/api/phpFlickr.php"; $flickr = new phpFlickr($config->get('apikey', ''), $config->get('apisecret', '')); $flickr->setToken($config->get('token', '')); }
function onNextendInstagram(&$instagram) { $config = new NextendData(); $config->loadJson(NextendSmartSliderStorage::get(self::$_group)); require_once dirname(__FILE__) . "/api/Instagram.php"; $c = array('client_id' => $config->get('apikey', ''), 'client_secret' => $config->get('apisecret', ''), 'redirect_uri' => '', 'grant_type' => 'authorization_code'); $instagram = new Instagram($c); $instagram->setAccessToken($config->get('token', '')); }
function fetchElement() { global $smartslidercontroller, $ss2sliderafterform; $this->_value = htmlspecialchars($this->_form->get($this->_name, $this->_default), ENT_QUOTES); $this->_form->set($this->_name, $this->_value); $html = '<div style="display:none;">' . parent::fetchElement() . '</div>'; $slider = null; $params = new NextendData(); if (nextendIsJoomla()) { nextendimportsmartslider2('nextend.smartslider.joomla.slider'); $module = new stdClass(); $module->id = 0; $params->loadArray(array('slider' => intval($_GET['sliderid']))); $slider = new NextendSliderJoomla($module, $params, dirname(__FILE__), true); } else { if (nextendIsWordpress()) { nextendimportsmartslider2('nextend.smartslider.wordpress.slider'); $slider = new NextendSliderWordpress(intval($_GET['sliderid']), $params, dirname(__FILE__), true); } else { if (nextendIsMagento()) { nextendimportsmartslider2('nextend.smartslider.magento.slider'); $slider = new NextendSliderMagento(intval($_GET['sliderid']), $params, dirname(__FILE__), true); } } } ob_start(); echo "<div id='smartslider-adjust-height' style='overflow:auto; margin: 5px; padding: 5px;'>"; $slider->render(); echo "</div>"; echo "<div id='smart-slider-layer-dummy' class='smart-slider-layer'></div>"; echo '<div class="smartslider-slide-advanced-layers" style="min-width: 1600px;"></div>'; $ss2sliderafterform = ob_get_clean(); $css = NextendCss::getInstance(); $css->addCssLibraryFile('jqueryui/jquery.ui.resizable.css'); $css->addCssFile(NEXTEND_SMART_SLIDER2_ASSETS . 'admin/css/layer.css'); $js = NextendJavascript::getInstance(); $js->addLibraryJsLibraryFile('jquery', 'ui/jquery.ui.core.min.js'); $js->addLibraryJsLibraryFile('jquery', 'ui/jquery.ui.widget.min.js'); $js->addLibraryJsLibraryFile('jquery', 'ui/jquery.ui.mouse.min.js'); $js->addLibraryJsLibraryFile('jquery', 'ui/jquery.ui.resizable.min.js'); $js->addLibraryJsLibraryFile('jquery', 'ui/jquery.ui.draggable.min.js'); $js->addLibraryJsLibraryFile('jquery', 'ui/jquery.ui.sortable.min.js'); $js->addLibraryJsLibraryFile('jquery', 'ui/jquery.ui.droppable.min.js'); $js->addLibraryJsFile('jquery', NEXTENDLIBRARYASSETS . 'js' . DIRECTORY_SEPARATOR . 'base64.js'); $js->addLibraryJsFile('jquery', NEXTENDLIBRARYASSETS . 'js' . DIRECTORY_SEPARATOR . 'sortable.js'); $js->addLibraryJsFile('jquery', NEXTEND_SMART_SLIDER2_ASSETS . 'admin' . DIRECTORY_SEPARATOR . 'js' . DIRECTORY_SEPARATOR . 'console.js'); $js->addLibraryJsFile('jquery', NEXTEND_SMART_SLIDER2_ASSETS . 'admin' . DIRECTORY_SEPARATOR . 'js' . DIRECTORY_SEPARATOR . 'slide.js'); $js->addLibraryJsFile('jquery', NEXTEND_SMART_SLIDER2_ASSETS . 'admin' . DIRECTORY_SEPARATOR . 'js' . DIRECTORY_SEPARATOR . 'slide.layer.js'); $js->addLibraryJsFile('jquery', NEXTEND_SMART_SLIDER2_ASSETS . 'admin' . DIRECTORY_SEPARATOR . 'js' . DIRECTORY_SEPARATOR . 'slide.item.js'); $js->addLibraryJsFile('jquery', NEXTEND_SMART_SLIDER2_ASSETS . 'admin' . DIRECTORY_SEPARATOR . 'js' . DIRECTORY_SEPARATOR . 'slide.layout.js'); $js->addLibraryJs('jquery', "\r\n njQuery(document).ready(function(){\r\n var el = \$('#smartslider-adjust-height');\r\n el.height(el[0].scrollHeight+10);\r\n \$(window).trigger('resize');\r\n });\r\n ndojo.addOnLoad(function(){\r\n SmartSliderAdminSlide('" . $slider->getId() . "','" . $slider->_activeSlide . "','" . $this->_id . "', '" . $smartslidercontroller->route('controller=layouts&action=create') . "');\r\n });\r\n "); if (NextendSmartSliderSettings::get('slideeditoralert', 1)) { $js->addLibraryJs('jquery', "\r\n njQuery(window).on('beforeunload', function() {\r\n if (njQuery.now()-window.nextendtime > 60000 && !window.nextendsave) { // 1 min\r\n return '" . NextendText::_('Your_slide_settings_has_not_been_submitted_yet') . "';\r\n } else {\r\n return;\r\n }\r\n });\r\n "); } return $html; }
function makeItem($args) { if (isset($this->items[$args[1]])) { $data = new NextendData(); $data->loadJson(base64_decode($args[2])); if ($data->_data != null) { ++self::$i[$this->id]; if ($this->admin) { return $this->items[$args[1]]->renderAdmin($data, $this->id . 'item' . self::$i[$this->id], $this->id, $this); } return $this->items[$args[1]]->render($data, $this->id . 'item' . self::$i[$this->id], $this->id, $this); } } return ''; }
function NextendForm() { $this->_xml = null; $this->_tabs = array(); parent::NextendData(); $this->loadQtip(); }
function __construct() { $this->_xml = null; $this->_tabs = array(); NextendText::l('common'); parent::__construct(); $this->loadQtip(); }
function onNextendYoutube(&$google, &$youtube) { $config = new NextendData(); $config->loadJson(NextendSmartSliderStorage::get(self::$_group)); if (!class_exists('Google_Client')) { require_once dirname(__FILE__) . '/googleclient/Google_Client.php'; } if (!class_exists('Google_YouTubeService')) { require_once dirname(__FILE__) . '/googleclient/contrib/Google_YouTubeService.php'; } $google = new Google_Client(); $google->setClientId($config->get('apikey', '')); $google->setClientSecret($config->get('apisecret', '')); $token = $config->get('token', null); if ($token) { $google->setAccessToken($token); } $youtube = new Google_YouTubeService($google); if ($google->isAccessTokenExpired()) { $token = json_decode($google->getAccessToken(), true); if (isset($token['refresh_token'])) { $google->refreshToken($token['refresh_token']); $config->set('token', $google->getAccessToken()); NextendSmartSliderStorage::set(self::$_group, $config->toJSON()); } } }
function onNextendSliderGeneratorList(&$group, &$list, $showall = false) { if ($showall || smartsliderIsFull()) { $installed = NextendFilesystem::existsFolder(JPATH_ADMINISTRATOR . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . 'com_zoo'); if ($installed) { $group[$this->_group] = 'ZOO'; if (!isset($list[$this->_group])) { $list[$this->_group] = array(); } require_once JPATH_ADMINISTRATOR . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . 'com_zoo' . DIRECTORY_SEPARATOR . 'config.php'; $zoo = App::getInstance('zoo'); $apps = $zoo->table->application->all(array('order' => 'name')); require_once $this->getPath() . 'items' . DIRECTORY_SEPARATOR . 'generator.php'; foreach ($apps as $app) { foreach ($app->getTypes() as $type) { //Make them class name safe $appid = preg_replace('/[^a-zA-Z0-9_\\x7f-\\xff]*/', '', $app->id); $identifier = preg_replace('/[^a-zA-Z0-9_\\x7f-\\xff]*/', '', $type->identifier); $list[$this->_group][$this->_group . '_items__' . $appid . '___' . $identifier] = array(ucfirst($app->name) . ' (' . ucfirst($type->identifier) . ')', $this->getPath() . 'items' . DIRECTORY_SEPARATOR, true, true, $installed ? true : 'http://extensions.joomla.org/extensions/authoring-a-content/content-construction/12479', null); if (!class_exists('NextendGeneratorZoo_items__' . $appid . '___' . $identifier)) { eval('class NextendGeneratorZoo_items__' . $appid . '___' . $identifier . ' extends NextendGeneratorZoo_Items{}'); } } } } else { if ($showall) { $group[$this->_group] = 'ZOO'; if (!isset($list[$this->_group])) { $list[$this->_group] = array(); } $list[$this->_group][$this->_group . '_items'] = array('Zoo', $this->getPath() . 'items' . DIRECTORY_SEPARATOR, true, true, 'http://extensions.joomla.org/extensions/authoring-a-content/content-construction/12479', null); } } $app = JFactory::getApplication(); if ($app->isAdmin() && ((NextendRequest::getVar('action') == 'createdynamic' || NextendRequest::getVar('action') == 'generatorsettings') && NextendRequest::getVar('group') == 'zoo' && NextendRequest::getVar('type'))) { $class = 'NextendGenerator' . NextendRequest::getVar('type'); $data = new NextendData(); $data->set('source', NextendRequest::getVar('type')); new $class($data); } } }
function onNextendTwitter(&$twitter) { $config = new NextendData(); $config->loadJson(NextendSmartSliderStorage::get(self::$_group)); require_once dirname(__FILE__) . "/api/tmhOAuth.php"; $twitter = new tmhOAuth(array('consumer_key' => $config->get('apikey', ''), 'consumer_secret' => $config->get('apisecret', ''), 'user_token' => $config->get('token', ''), 'user_secret' => $config->get('tokensecret', ''))); }
?> <?php $accessModuleCreate = $this->canDo('core.create', 'com_modules'); $accessSliderCreate = $this->canDo('slider.create'); $accessSliderEdit = $this->canDo('slider.edit'); $accessSliderDelete = $this->canDo('slider.delete'); $accessSlideCreate = $this->canDo('slide.create'); $accessSlideEdit = $this->canDo('slide.edit'); $accessSlideDelete = $this->canDo('slide.delete'); $accessCore = $this->canDo('core.admin'); $j15 = !nextendIsJoomla() || version_compare(JVERSION, '1.6.0', 'ge') ? false : true; $sliderid = NextendRequest::getInt('sliderid', 0); $slidersModel = $this->getModel('sliders'); $slider = $slidersModel->getSlider($sliderid); $generatorParams = new NextendData(); $generatorParams->loadJSON($slider['generator']); ?> <h2>Generator</h2> <div class="smartslider-button-wrap"> <div class="smartslider-button smartslider-back smartslider-button-grey smartslider-button-blue-active smartslider-icon-container"> <a href="<?php echo $this->route('controller=sliders&view=sliders_generator&action=generatorstart&sliderid=' . $sliderid); ?> " class="smartslider-button-link"><span class="smartslider-icon smartslider-action-icon smartslider-action-icon-generator"></span><?php echo NextendText::_('Change_source'); ?> </a> </div> <?php
if (nextendIsWordpress()) { nextendimportsmartslider2('nextend.smartslider.wordpress.slider'); $d = array(); $slider = new NextendSliderWordpress($sliderid, $d, dirname(__FILE__)); } else { if (nextendIsMagento()) { nextendimportsmartslider2('nextend.smartslider.magento.slider'); $d = array(); $slider = new NextendSliderMagento($sliderid, $d, dirname(__FILE__)); } } } $slidersModel = new NextendSmartsliderAdminModelSliders(null); $fakeslider = $slidersModel->getSlider($sliderid); global $layout, $sliderpreset; $sliderParams = new NextendData(); $sliderParams->loadJSON($fakeslider['params']); $sliders = array(); NextendPlugin::callPlugin('nextendslidergeneratorlayouts', 'onNextendSliderGeneratorSlider', array(&$sliders, $sliderParams->get('size', null))); $sliderpreset = NextendRequest::getVar('sliderpreset', ''); if (isset($sliders[$sliderpreset])) { $fakeslider = $sliders[$sliderpreset]['slider'] + $fakeslider; } $slider->_slider = new NextendData(); $slider->_slider->loadArray($fakeslider); $slider->_sliderParams = new NextendData(); $slider->_sliderParams->loadJSON($fakeslider['params']); $slider->_generatorParams = new NextendData(); $slider->_generatorParams->loadJSON($fakeslider['generator']); if ($fakeslider['slide'] == '' && !isset($_REQUEST['layout'])) { $_REQUEST['layout'] = 'default';
<?php $accessModuleCreate = $this->canDo('core.create', 'com_modules'); $accessSliderCreate = $this->canDo('slider.create'); $accessSliderEdit = $this->canDo('slider.edit'); $accessSliderDelete = $this->canDo('slider.delete'); $accessSlideCreate = $this->canDo('slide.create'); $accessSlideEdit = $this->canDo('slide.edit'); $accessSlideDelete = $this->canDo('slide.delete'); $accessCore = $this->canDo('core.admin'); $j15 = !nextendIsJoomla() || version_compare(JVERSION, '1.6.0', 'ge') ? false : true; $sliderid = NextendRequest::getInt('sliderid', 0); $slidersModel = $this->getModel('sliders'); $slider = $slidersModel->getSlider($sliderid); $generatorParams = new NextendData(); $generatorParams->loadJSON($slider['generator']); ?> <div class="smartslider-button-wrap"> <?php if ($accessSliderEdit) { ?> <div class="smartslider-button smartslider-back smartslider-button-grey smartslider-button-blue-active smartslider-icon-container "> <a href="<?php echo $this->route('controller=sliders&view=sliders_slider&action=edit&sliderid=' . $sliderid); ?> " class="smartslider-button-link"><span class="smartslider-icon smartslider-action-icon smartslider-action-icon-edit"></span><?php echo NextendText::_('Edit_slider');
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; }
<a class="smartslider-button-link" href="<?php echo $this->route('controller=sliders&view=sliders_generator&action=generatorrecords&refreshcache=1&sliderid=' . NextendRequest::getInt('sliderid')); ?> "> <span class="smartslider-icon smartslider-action-icon smartslider-action-icon-refresh"></span> Refresh cache </a> </div> </div> <div style="clear:both;"></div> <?php nextendimportsmartslider2('nextend.smartslider.generator'); $slidersModel = $this->getModel('sliders'); $slider = $slidersModel->getSlider(NextendRequest::getInt('sliderid')); $smartslidergenerator = (array) json_decode($slider['generator'], true); $generatorParams = new NextendData(); $generatorParams->loadArray($smartslidergenerator); if ($generatorParams->get('enabled')) { $source = $generatorParams->get('source', ''); if ($source) { $generator = new NextendSmartsliderGenerator($generatorParams, array(), NextendRequest::getInt('sliderid')); $generator->initDatasource($source, true); $generatorgroup = $generatorParams->get('generatorgroup', 1); if (!empty($generator->_datasource)) { for ($i = 0, $j = 1; $i < count($generator->_datasource); $j++) { ?> <h2>Slide #<?php echo $j; ?> </h2> <table class="ni">
# author Roland Soos # copyright Copyright (C) Nextendweb.com. All Rights Reserved. # @license - http://www.gnu.org/licenses/gpl-3.0.txt GNU/GPL */ defined('_JEXEC') or die('Restricted access'); global $smartslidergeneratorslide, $slidegenerator, $generatorinstance; nextendimportsmartslider2('nextend.smartslider.generator'); $slidersModel = $this->getModel('sliders'); $slider = $slidersModel->getSlider(NextendRequest::getInt('sliderid')); $smartslidergenerator = (array) json_decode($slider['generator'], true); $slidegenerator = null; $generatorParams = new NextendData(); $generatorParams->loadArray($smartslidergenerator); $source = $generatorParams->get('source', ''); if ($source) { $generatorSlideParams = new NextendData(); $generatorSlideParams->loadArray(json_decode($slider['slide'], true)); $generator = new NextendSmartsliderGenerator($generatorParams, $generatorSlideParams, NextendRequest::getInt('sliderid')); $generatorinstance = $generator->initDatasource($source, true); $slidegenerator = $generator; } else { // Here should be a redirect for the generator start! } $this->loadFragment('headerstart'); ?> <div class="smartslider-button smartslider-save" onclick="setTimeout(function(){njQuery('#smartslider-form').submit();}, 300);"><?php echo NextendText::_('Save'); ?> </div> <div class="smartslider-button smartslider-cancel" onclick="window.nextendsave=true;location.href='<?php echo $this->route('controller=sliders&view=sliders_slider&action=generatordashboard&sliderid=' . NextendRequest::getInt('sliderid'));
function refreshCache($sliderid) { $slider = $this->getSlider($sliderid); $generatorParams = new NextendData(); $generatorParams->loadJSON($slider['generator']); $generatorSlideParams = new NextendData(); $generatorSlideParams->loadJSON($slider['slide']); //refresh generator // Set the cache expired $cached = json_decode(NextendSmartSliderStorage::get('generator' . $sliderid), true); if (is_array($cached)) { $cached['time'] = 0; NextendSmartSliderStorage::set('generator' . $sliderid, json_encode($cached)); } if ($generatorParams->get('enabled', 0)) { nextendimportsmartslider2('nextend.smartslider.generator'); $generator = new NextendSmartsliderGenerator($generatorParams, $generatorSlideParams, $sliderid); $source = $generatorParams->get('source', ''); if ($source) { $generator->initDatasource($source); } } self::markChanged($sliderid); }