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 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', ''))); }
function loadglobalfonts($sliderid) { $this->clearfonts($sliderid); if ($sliderid) { NextendSmartSliderStorage::set('font' . $sliderid, NextendSmartSliderStorage::get('font')); } return true; }
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 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 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 onNextendSliderGeneratorList(&$group, &$list, $showall = false) { if ($showall || smartsliderIsFull()) { $group[self::$_group] = 'Twitter'; if (!isset($list[self::$_group])) { $list[self::$_group] = array(); } $configured = is_string(NextendSmartSliderStorage::get(self::$_group)); $list[self::$_group][self::$_group . '_timeline'] = array(NextendText::_('Timeline'), $this->getPath() . 'twittertimeline' . DIRECTORY_SEPARATOR, $configured, true, true); } }
function onNextendSliderGeneratorList(&$group, &$list, $showall = false) { if ($showall || smartsliderIsFull()) { $group[self::$_group] = 'YouTube'; if (!isset($list[self::$_group])) { $list[self::$_group] = array(); } $configured = is_string(NextendSmartSliderStorage::get(self::$_group)); $list[self::$_group][self::$_group . '_bysearch'] = array('By search', $this->getPath() . 'bysearch' . DIRECTORY_SEPARATOR, $configured, true, true); $list[self::$_group][self::$_group . '_byplaylist'] = array('By playlist', $this->getPath() . 'byplaylist' . DIRECTORY_SEPARATOR, $configured, true, true); } }
function onNextendSliderGeneratorList(&$group, &$list, $showall = false) { if ($showall || smartsliderIsFull()) { $group[self::$_group] = 'Flickr'; if (!isset($list[self::$_group])) { $list[self::$_group] = array(); } $configured = is_string(NextendSmartSliderStorage::get(self::$_group)); $list[self::$_group][self::$_group . '_peoplephotostream'] = array(NextendText::_('My_photostream'), $this->getPath() . 'peoplephotostream' . DIRECTORY_SEPARATOR, $configured, true, true); $list[self::$_group][self::$_group . '_peoplephotoset'] = array(NextendText::_('My_photoset'), $this->getPath() . 'peoplephotoset' . DIRECTORY_SEPARATOR, $configured, true, true); $list[self::$_group][self::$_group . '_peoplephotogallery'] = array(NextendText::_('My_gallery'), $this->getPath() . 'peoplephotogallery' . DIRECTORY_SEPARATOR, $configured, true, true); } }
function onNextendSliderGeneratorList(&$group, &$list, $showall = false) { if ($showall || smartsliderIsFull()) { $group[self::$_group] = 'Facebook'; if (!isset($list[self::$_group])) { $list[self::$_group] = array(); } $configured = is_string(NextendSmartSliderStorage::get(self::$_group)); $list[self::$_group][self::$_group . '_postsbypage'] = array(NextendText::_('Posts_by_page'), $this->getPath() . 'postsbypage' . DIRECTORY_SEPARATOR, $configured, true, true); $list[self::$_group][self::$_group . '_albumbypage'] = array(NextendText::_('Photos_by_page_album'), $this->getPath() . 'albumbypage' . DIRECTORY_SEPARATOR, $configured, true, true); $list[self::$_group][self::$_group . '_albumbyuser'] = array(NextendText::_('Photos_by_user_album'), $this->getPath() . 'albumbyuser' . DIRECTORY_SEPARATOR, $configured, true, true); } }
function onNextendSliderGeneratorList(&$group, &$list, $showall = false) { if ($showall || smartsliderIsFull()) { $group[self::$_group] = 'Instagram'; if (!isset($list[self::$_group])) { $list[self::$_group] = array(); } $configured = is_string(NextendSmartSliderStorage::get(self::$_group)); $list[self::$_group][self::$_group . '_myfeed'] = array(NextendText::_('My_feed'), $this->getPath() . 'myfeed' . DIRECTORY_SEPARATOR, $configured, true, true); $list[self::$_group][self::$_group . '_tagsearch'] = array(NextendText::_('Search_by_tag'), $this->getPath() . 'tagsearch' . DIRECTORY_SEPARATOR, $configured, true, true); $list[self::$_group][self::$_group . '_myphotos'] = array(NextendText::_('My_photos'), $this->getPath() . 'myphotos' . DIRECTORY_SEPARATOR, $configured, true, true); } }
function initDatasource($source, $forcedGeneratorObj = false) { $tmp = $this->_generator->toArray(); unset($tmp['generateslides']); $hash = md5($this->_number * $this->_generatorgroup . json_encode($tmp)); $recache = false; $cached = json_decode(NextendSmartSliderStorage::get('generator' . $this->_sliderid), true); if (is_array($cached)) { if ($cached['hash'] != $hash) { $recache = true; } else { if ($cached['time'] < time() - $this->_generator->get('cachetime', '24') * 60 * 60) { $recache = true; } } } else { $recache = true; } if ($recache) { $v = explode('_', $source); require_once $this->_list[$v[0]][$source][1] . 'generator.php'; $class = 'NextendGenerator' . $source; $generator = new $class($this->_generator); ob_start(); $this->_datasource = $generator->getData($this->_number * $this->_generatorgroup); $message = ob_get_clean(); if (count($this->_datasource) == 0 && trim($message) != '' && count($cached['data'])) { $this->_datasource = $cached['data']; } echo $message; $cached = array('time' => time(), 'hash' => $hash, 'data' => $this->_datasource); NextendSmartSliderStorage::set('generator' . $this->_sliderid, json_encode($cached)); if ($forcedGeneratorObj) { return $generator; } } else { $this->_datasource = $cached['data']; if ($forcedGeneratorObj) { $v = explode('_', $source); require_once $this->_list[$v[0]][$source][1] . 'generator.php'; $class = 'NextendGenerator' . $source; $generator = new $class($this->_generator); return $generator; } } }
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); }
?> <?php if ($accessCore) { ?> <li class="smartslider-icon-container"> <a href="<?php echo $this->route('controller=slider&view=sliders_slider&action=font&sliderid=' . $slider['id']); ?> "> <span class="smartslider-qtip-icon fontsettings"></span> <?php echo NextendText::_('Slider_fonts'); ?> <?php if (NextendSmartSliderStorage::get('font' . $slider['id'])) { ?> <span class="smartslider-qtip-icon activegreen"></span> <?php } ?> </a> </li> <?php } ?> <?php if ($accessSliderCreate) { ?> <li class="smartslider-icon-container">
static function getAll() { if (self::$settings === null) { self::$settings = json_decode(NextendSmartSliderStorage::get('joomla'), true); if (self::$settings === null) { self::$settings = array(); } } return self::$settings; }
<?php $this->loadFragment('firstcol/settings'); ?> <?php $this->loadFragment('firstcolend'); ?> <?php $this->loadFragment('secondcolstart'); ?> <form id="smartslider-form" action="" method="post"> <?php NextendForm::tokenize(); $settingsModel = $this->getModel('settings'); $settingsModel->render($this->xml, json_decode(NextendSmartSliderStorage::get($this->group), true)); ?> <input name="namespace" value="<?php echo $this->group; ?> " type="hidden" /> <input name="save" value="1" type="hidden" /> </form> <?php $this->loadFragment('secondcolend'); ?> <?php $this->loadFragment('footer');
function NextendSliderCache($slider) { nextendimportsmartslider2('nextend.smartslider.check'); nextendimport('nextend.css.css'); nextendimport('nextend.javascript.javascript'); nextendimport('nextend.fonts.google'); $this->slider = $slider; $sliderid = $slider->_sliderid; $recache = false; $cached = json_decode(NextendSmartSliderStorage::get('slidercache' . $sliderid), true); if (nextendIsWordpress()) { $time = current_time('timestamp'); } else { $time = time(); } nextendimportsmartslider2('nextend.smartslider.admin.models.slides'); $slidesModel = new NextendSmartsliderAdminModelSlides(null); $slides = $slidesModel->getSlides($sliderid, ''); $slideexpire = null; foreach ($slides as $s) { $publish_up = strtotime($s['publish_up']); if ($publish_up && $publish_up > $time && ($slideexpire == null || $publish_up < $slideexpire)) { $slideexpire = $publish_up; } $publish_down = strtotime($s['publish_down']); if ($publish_down && $publish_down > $time && ($slideexpire == null || $publish_down < $slideexpire)) { $slideexpire = $publish_down; } } if (is_array($cached)) { if (NextendSmartSliderStorage::get('sliderchanged' . $sliderid) == 1) { $recache = true; } else { if (isset($cached['time']) && isset($cached['expire']) && $cached['time'] < time() - $cached['expire'] * 60 * 60) { $recache = true; } else { if (isset($cached['slideexpire']) && $cached['slideexpire'] < $time) { $recache = true; } } } } else { $recache = true; } if (!$recache) { $data = $cached['data']; if (isset($data['css'])) { if (!NextendFilesystem::fileexists(NextendFilesystem::absoluteURLToPath($data['css']))) { $recache = true; } } else { $recache = true; } if (!isset($data['libraries']) || !isset($data['libraries']['jquery']) || !isset($data['libraries']['jquery']['jsfiles']) || count($data['libraries']['jquery']['jsfiles']) == 0) { $recache = true; } } //$recache = true; if ($recache) { $data = $this->render(); $cached = array('time' => time(), 'data' => $data); if ($this->slider->_generatorParams->get('enabled', 0)) { $generatorcached = json_decode(NextendSmartSliderStorage::get('generator' . $sliderid), true); if (is_array($generatorcached)) { $cached['time'] = $generatorcached['time']; $cached['expire'] = $this->slider->_generatorParams->get('cachetime', '24'); } } if ($slideexpire) { $cached['slideexpire'] = $slideexpire; } NextendSmartSliderStorage::set('slidercache' . $sliderid, json_encode($cached)); NextendSmartSliderStorage::set('sliderchanged' . $sliderid, '0'); } $this->cssurl = $data['css']; if (nextendIsWordPress()) { add_action('nextend_css', array($this, 'addCSS')); } elseif (nextendIsMagento()) { Nextend_SmartSlider2_Model_Observer::$sliders[] = array($this, 'addCSS'); } else { $this->addCSS(); } $js = NextendJavascript::getInstance(); foreach ($data['js']['core'] as $j) { $js->addJsFile($j); } if (isset($data['libraries']) && count($data['libraries'])) { foreach ($data['libraries'] as $library => $jss) { $js->loadLibrary($library); if (!empty($jss['js'])) { $js->addLibraryJs($library, $jss['js']); } if (count($jss['jsfiles'])) { foreach ($jss['jsfiles'] as $j) { $js->addLibraryJsFile($library, $j); } } } } if (isset($data['fonts']) && count($data['fonts'])) { $google = NextendFontsGoogle::getInstance(); foreach ($data['fonts'] as $k => $v) { $style = explode(',', $v[0]); $subset = explode(',', $v[1]); for ($i = 0; $i < count($style); $i++) { $google->addFont($k, $style[$i], $subset[$i]); } } } $slider = $data['html']; if (nextendIsJoomla()) { if (version_compare(JVERSION, '1.6.0', 'ge')) { $dispatcher = JDispatcher::getInstance(); JPluginHelper::importPlugin('content'); $article = new stdClass(); $article->text = $slider; $_p = array(); $dispatcher->trigger('onContentPrepare', array('com_smartslider2', &$article, &$_p, 0)); if (!empty($article->text)) { $slider = $article->text; } } } elseif (nextendIsWordPress()) { if (!function_exists('ss2_attr_shortcode')) { function ss2_attr_shortcode($matches) { return 'data-' . $matches[1] . '="' . str_replace('"', '"', do_shortcode(str_replace('"', '"', $matches[2]))) . '"'; } } $slider = preg_replace_callback("/data-(click|enter|leave)=\"(.*?)\"/", "ss2_attr_shortcode", $slider); $slider = do_shortcode($slider); } echo $slider; }