Server : Apache System : Linux pod-100823:apache2_74:v0.5.7 5.4.0-1138-gcp #147~18.04.1-Ubuntu SMP Mon Oct 7 21:46:26 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33.7 Disable Function : apache_child_terminate,apache_get_modules,apache_get_version,apache_getenv,apache_note,apache_setenv,disk_free_space,disk_total_space,diskfreespace,dl,exec,fastcgi_finish_request,link,opcache_compile_file,opcache_get_configuration,opcache_invalidate,opcache_is_script_cached,opcache_reset,passthru,pclose,pcntl_exec,popen,posix_getpid,posix_getppid,posix_getpwuid,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_uname,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,realpath_cache_get,shell_exec,show_source,symlink,system Directory : /nas/content/live/attorneyexperi/wp-content/plugins/revslider/includes/ |
<?php /** * External Sources Input Classes for Back and Front End * @since: 5.0 **/ if( !defined( 'ABSPATH') ) die(); /** * Facebook * * with help of the API this class delivers album images from Facebook * * @package socialstreams * @subpackage socialstreams/facebook * @author ThemePunch <info@themepunch.com> */ class RevSliderFacebook { /** * Stream Array * * @since 1.0.0 * @access private * @var array $stream Stream Data Array */ private $stream; /** * Transient seconds * * @since 1.0.0 * @access private * @var number $transient Transient time in seconds */ private $transient_sec; public function __construct($transient_sec = 1200) { $this->transient_sec = $transient_sec; } /** * Get User ID from its URL * * @since 1.0.0 * @param string $user_url URL of the Page */ public function get_user_from_url($user_url){ $theid = str_replace("https", "", $user_url); $theid = str_replace("http", "", $theid); $theid = str_replace("://", "", $theid); $theid = str_replace("www.", "", $theid); $theid = str_replace("facebook", "", $theid); $theid = str_replace(".com", "", $theid); $theid = str_replace("/", "", $theid); $theid = explode("?", $theid); return trim($theid[0]); } /** * Get Photosets List from User * * @since 1.0.0 * @param string $user_id Facebook User id (not name) * @param int $item_count number of photos to pull */ public function get_photo_sets($user_id,$item_count=10,$app_id,$app_secret){ //photoset params $oauth = wp_remote_fopen("https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=".$app_id."&client_secret=".$app_secret); $url = "https://graph.facebook.com/$user_id/albums?".$oauth; $photo_sets_list = json_decode(wp_remote_fopen($url)); //echo '<pre>'; //print_r($photo_sets_list); //echo '</pre>'; if(isset($photo_sets_list->data)) return $photo_sets_list->data; else return ''; } /** * Get Photoset Photos * * @since 5.1.1 * @param string $photo_set_id Photoset ID * @param int $item_count number of photos to pull */ public function get_photo_set_photos($photo_set_id,$item_count=10,$app_id,$app_secret){ $oauth = wp_remote_fopen("https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=".$app_id."&client_secret=".$app_secret); $url = "https://graph.facebook.com/$photo_set_id/photos?fields=photos&".$oauth."&fields=id,from,message,picture,link,name,icon,privacy,type,status_type,object_id,application,created_time,updated_time,is_hidden,is_expired,comments.limit(1).summary(true),likes.limit(1).summary(true)"; $transient_name = 'revslider_' . md5($url); if ($this->transient_sec > 0 && false !== ($data = get_transient( $transient_name))) return ($data); $photo_set_photos = json_decode(wp_remote_fopen($url)); /* echo '<pre>'; print_r($photo_set_photos); echo '</pre>'; */ if(isset($photo_set_photos->data)){ set_transient( $transient_name, $photo_set_photos->data, $this->transient_sec ); return $photo_set_photos->data; } else return ''; } /** * Get Photosets List from User as Options for Selectbox * * @since 1.0.0 * @param string $user_url Facebook User id (not name) * @param int $item_count number of photos to pull */ public function get_photo_set_photos_options($user_url,$current_album,$app_id,$app_secret,$item_count=99){ $user_id = $this->get_user_from_url($user_url); $photo_sets = $this->get_photo_sets($user_id,999,$app_id,$app_secret); if(empty($current_album)) $current_album = ""; $return = array(); if(is_array($photo_sets)){ foreach($photo_sets as $photo_set){ $return[] = '<option title="'.$photo_set->name.'" '.selected( $photo_set->id , $current_album , false ).' value="'.$photo_set->id.'">'.$photo_set->name.'</option>"'; } } return $return; } /** * Get Feed * * @since 1.0.0 * @param string $user User ID * @param int $item_count number of itmes to pull */ public function get_photo_feed($user,$app_id,$app_secret,$item_count=10){ $oauth = wp_remote_fopen("https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=".$app_id."&client_secret=".$app_secret); $url = "https://graph.facebook.com/$user/feed?".$oauth."&fields=id,from,message,picture,link,name,icon,privacy,type,status_type,object_id,application,created_time,updated_time,is_hidden,is_expired,comments.limit(1).summary(true),likes.limit(1).summary(true)"; $transient_name = 'revslider_' . md5($url); if ($this->transient_sec > 0 && false !== ($data = get_transient( $transient_name))) return ($data); $feed = json_decode(wp_remote_fopen($url)); if(isset($feed->data)){ set_transient( $transient_name, $feed->data, $this->transient_sec ); return $feed->data; } else return ''; } /** * Decode URL from feed * * @since 1.0.0 * @param string $url facebook Output Data */ private function decode_facebook_url($url) { $url = str_replace('u00253A',':',$url); $url = str_replace('\u00255C\u00252F','/',$url); $url = str_replace('u00252F','/',$url); $url = str_replace('u00253F','?',$url); $url = str_replace('u00253D','=',$url); $url = str_replace('u002526','&',$url); return $url; } } // End Class /** * Twitter * * with help of the API this class delivers all kind of tweeted images from twitter * * @package socialstreams * @subpackage socialstreams/twitter * @author ThemePunch <info@themepunch.com> */ class RevSliderTwitter { /** * Consumer Key * * @since 1.0.0 * @access private * @var string $consumer_key Consumer Key */ private $consumer_key; /** * Consumer Secret * * @since 1.0.0 * @access private * @var string $consumer_secret Consumer Secret */ private $consumer_secret; /** * Access Token * * @since 1.0.0 * @access private * @var string $access_token Access Token */ private $access_token; /** * Access Token Secret * * @since 1.0.0 * @access private * @var string $access_token_secret Access Token Secret */ private $access_token_secret; /** * Twitter Account * * @since 1.0.0 * @access private * @var string $twitter_account Account User Name */ private $twitter_account; /** * Transient seconds * * @since 1.0.0 * @access private * @var number $transient Transient time in seconds */ private $transient_sec; /** * Stream Array * * @since 1.0.0 * @access private * @var array $stream Stream Data Array */ private $stream; /** * Initialize the class and set its properties. * * @since 1.0.0 * @param string $consumer_key Twitter App Registration Consomer Key * @param string $consumer_secret Twitter App Registration Consomer Secret * @param string $access_token Twitter App Registration Access Token * @param string $access_token_secret Twitter App Registration Access Token Secret */ public function __construct($consumer_key,$consumer_secret,$access_token,$access_token_secret,$transient_sec = 1200) { $this->consumer_key = $consumer_key; $this->consumer_secret = $consumer_secret; $this->access_token = $access_token; $this->access_token_secret = $access_token_secret; $this->transient_sec = $transient_sec; } /** * Get Tweets * * @since 1.0.0 * @param string $twitter_account Twitter account without trailing @ char */ public function get_public_photos($twitter_account,$include_rts,$exclude_replies,$count,$imageonly){ //require_once( 'class-wp-twitter-api.php' ); // Set your personal data retrieved at https://dev.twitter.com/apps $credentials = array( 'consumer_key' => $this->consumer_key, 'consumer_secret' => $this->consumer_secret ); // Let's instantiate our class with our credentials $twitter_api = new RevSliderTwitterApi( $credentials , $this->transient_sec); $include_rts = $include_rts=="on" ? "true" : "false"; $exclude_replies = $include_rts=="on" ? "false" : "true"; $query = 'count=500&include_entities=true&include_rts='.$include_rts.'&exclude_replies='.$exclude_replies.'&screen_name='.$twitter_account; $tweets = $twitter_api->query( $query ); if(!empty($tweets)){ return $tweets; } else return ''; } /** * Find Key in array and return value (multidim array possible) * * @since 1.0.0 * @param string $key Needle * @param array $form Haystack */ public function array_find_element_by_key($key, $form) { if (is_array($form) && array_key_exists($key, $form)) { $ret = $form[$key]; return $ret; } if(is_array($form)) foreach ($form as $k => $v) { if (is_array($v)) { $ret = $this->array_find_element_by_key($key, $form[$k]); if ($ret) { return $ret; } } } return FALSE; } } // End Class /** * Class WordPress Twitter API * * https://github.com/micc83/Twitter-API-1.1-Client-for-Wordpress/blob/master/class-wp-twitter-api.php * @version 1.0.0 */ class RevSliderTwitterApi { var $bearer_token, // Default credentials $args = array( 'consumer_key' => 'default_consumer_key', 'consumer_secret' => 'default_consumer_secret' ), // Default type of the resource and cache duration $query_args = array( 'type' => 'statuses/user_timeline', 'cache' => 1800 ), $has_error = false; /** * WordPress Twitter API Constructor * * @param array $args */ public function __construct( $args = array() , $transient_sec = 1200 ) { if ( is_array( $args ) && !empty( $args ) ) $this->args = array_merge( $this->args, $args ); if ( ! $this->bearer_token = get_option( 'twitter_bearer_token' ) ) $this->bearer_token = $this->get_bearer_token(); $this->query_args['cache'] = $transient_sec; } /** * Get the token from oauth Twitter API * * @return string Oauth Token */ private function get_bearer_token() { $bearer_token_credentials = $this->args['consumer_key'] . ':' . $this->args['consumer_secret']; $bearer_token_credentials_64 = base64_encode( $bearer_token_credentials ); $args = array( 'method' => 'POST', 'timeout' => 5, 'redirection' => 5, 'httpversion' => '1.0', 'blocking' => true, 'headers' => array( 'Authorization' => 'Basic ' . $bearer_token_credentials_64, 'Content-Type' => 'application/x-www-form-urlencoded;charset=UTF-8', 'Accept-Encoding' => 'gzip' ), 'body' => array( 'grant_type' => 'client_credentials' ), 'cookies' => array() ); $response = wp_remote_post( 'https://api.twitter.com/oauth2/token', $args ); if ( is_wp_error( $response ) || 200 != $response['response']['code'] ) return $this->bail( __( 'Can\'t get the bearer token, check your credentials', 'wp_twitter_api' ), $response ); $result = json_decode( $response['body'] ); update_option( 'twitter_bearer_token', $result->access_token ); return $result->access_token; } /** * Query twitter's API * * @uses $this->get_bearer_token() to retrieve token if not working * * @param string $query Insert the query in the format "count=1&include_entities=true&include_rts=true&screen_name=micc1983! * @param array $query_args Array of arguments: Resource type (string) and cache duration (int) * @param bool $stop Stop the query to avoid infinite loop * * @return bool|object Return an object containing the result */ public function query( $query, $query_args = array(), $stop = false ) { if ( $this->has_error ) return false; if ( is_array( $query_args ) && !empty( $query_args ) ) $this->query_args = array_merge( $this->query_args, $query_args ); $transient_name = 'wta_' . md5( $query ); if ($this->query_args['cache'] > 0 && false !== ( $data = get_transient( $transient_name ) ) ) return json_decode( $data ); $args = array( 'method' => 'GET', 'timeout' => 5, 'redirection' => 5, 'httpversion' => '1.0', 'blocking' => true, 'headers' => array( 'Authorization' => 'Bearer ' . $this->bearer_token, 'Accept-Encoding' => 'gzip' ), 'body' => null, 'cookies' => array() ); $response = wp_remote_get( 'https://api.twitter.com/1.1/' . $this->query_args['type'] . '.json?' . $query, $args ); if ( is_wp_error( $response ) || 200 != $response['response']['code'] ){ if ( !$stop ){ $this->bearer_token = $this->get_bearer_token(); return $this->query( $query, $this->query_args, true ); } else { return $this->bail( __( 'Bearer Token is good, check your query', 'wp_twitter_api' ), $response ); } } set_transient( $transient_name, $response['body'], $this->query_args['cache'] ); return json_decode( $response['body'] ); } /** * Let's manage errors * * WP_DEBUG has to be set to true to show errors * * @param string $error_text Error message * @param string $error_object Server response or wp_error */ private function bail( $error_text, $error_object = '' ) { $this->has_error = true; if ( is_wp_error( $error_object ) ){ $error_text .= ' - Wp Error: ' . $error_object->get_error_message(); } elseif ( !empty( $error_object ) && isset( $error_object['response']['message'] ) ) { $error_text .= ' ( Response: ' . $error_object['response']['message'] . ' )'; } trigger_error( $error_text , E_USER_NOTICE ); } } /** * Instagram * * with help of the API this class delivers all kind of Images from instagram * * @package socialstreams * @subpackage socialstreams/instagram * @author ThemePunch <info@themepunch.com> */ class RevSliderInstagram { /** * API key * * @since 1.0.0 * @access private * @var string $api_key Instagram API key */ private $api_key; /** * Stream Array * * @since 1.0.0 * @access private * @var array $stream Stream Data Array */ private $stream; /** * Transient seconds * * @since 1.0.0 * @access private * @var number $transient Transient time in seconds */ private $transient_sec; /** * Initialize the class and set its properties. * * @since 1.0.0 * @param string $api_key Instagram API key. */ public function __construct($api_key,$transient_sec=1200) { $this->api_key = $api_key; $this->transient_sec = $transient_sec; } /** * Get Instagram Pictures Public by User * * @since 1.0.0 * @param string $user_id Instagram User id (not name) */ public function get_public_photos($search_user_id,$count){ //call the API and decode the response $url = "https://www.instagram.com/".$search_user_id."/media/"; $transient_name = 'revslider_' . md5($url); if ($this->transient_sec > 0 && false !== ($data = get_transient( $transient_name))) return ($data); $rsp = json_decode(wp_remote_fopen($url)); for($i=0;$i<$count;$i++) { $return[] = $rsp->items[$i]; } if(isset($rsp->items)){ $rsp->items = $return; set_transient( $transient_name, $rsp->items, $this->transient_sec ); return $rsp->items; } else return ''; } /** * Get Instagram Pictures Public by Tag * * @since 1.0.0 * @param string $user_id Instagram User id (not name) */ public function get_tag_photos($search_tag,$count){ //call the API and decode the response $url = "https://api.instagram.com/v1/tags/".$search_tag."/media/recent?count=".$count."&access_token=".$this->api_key; $transient_name = 'revslider_' . md5($url); if ($this->transient_sec > 0 && false !== ($data = get_transient( $transient_name))) return ($data); $rsp = json_decode(wp_remote_fopen($url)); if(isset($rsp->data)){ set_transient( $transient_name, $rsp->data, $this->transient_sec ); return $rsp->data; } else return ''; } } // End Class /** * Flickr * * with help of the API this class delivers all kind of Images from flickr * * @package socialstreams * @subpackage socialstreams/flickr * @author ThemePunch <info@themepunch.com> */ class RevSliderFlickr { /** * API key * * @since 1.0.0 * @access private * @var string $api_key flickr API key */ private $api_key; /** * API params * * @since 1.0.0 * @access private * @var array $api_param_defaults Basic params to call with API */ private $api_param_defaults; /** * Stream Array * * @since 1.0.0 * @access private * @var array $stream Stream Data Array */ private $stream; /** * Basic URL * * @since 1.0.0 * @access private * @var string $url Url to fetch user from */ private $flickr_url; /** * Transient seconds * * @since 1.0.0 * @access private * @var number $transient Transient time in seconds */ private $transient_sec; /** * Initialize the class and set its properties. * * @since 1.0.0 * @param string $api_key flickr API key. */ public function __construct($api_key,$transient_sec=1200) { $this->api_key = $api_key; $this->api_param_defaults = array( 'api_key' => $this->api_key, 'format' => 'json', 'nojsoncallback' => 1, ); $this->transient_sec = $transient_sec; } /** * Calls Flicker API with set of params, returns json * * @since 1.0.0 * @param array $params Parameter build for API request */ private function call_flickr_api($params){ //build url $encoded_params = array(); foreach ($params as $k => $v){ $encoded_params[] = urlencode($k).'='.urlencode($v); } //call the API and decode the response $url = "https://api.flickr.com/services/rest/?".implode('&', $encoded_params); $transient_name = 'revslider_' . md5($url); if ($this->transient_sec > 0 && false !== ($data = get_transient( $transient_name))) return ($data); $rsp = json_decode(file_get_contents($url)); if(isset($rsp)){ set_transient( $transient_name, $rsp, $this->transient_sec ); return $rsp; } else return ''; } /** * Get User ID from its URL * * @since 1.0.0 * @param string $user_url URL of the Gallery */ public function get_user_from_url($user_url){ //gallery params $user_params = $this->api_param_defaults + array( 'method' => 'flickr.urls.lookupUser', 'url' => $user_url, ); //set User Url $this->flickr_url = $user_url; //get gallery info $user_info = $this->call_flickr_api($user_params); if(isset($user_info->user->id)) return $user_info->user->id; else return ''; } /** * Get Group ID from its URL * * @since 1.0.0 * @param string $group_url URL of the Gallery */ public function get_group_from_url($group_url){ //gallery params $group_params = $this->api_param_defaults + array( 'method' => 'flickr.urls.lookupGroup', 'url' => $group_url, ); //set User Url $this->flickr_url = $group_url; //get gallery info $group_info = $this->call_flickr_api($group_params); if(isset($group_info->group->id)) return $group_info->group->id; else return ''; } /** * Get Public Photos * * @since 1.0.0 * @param string $user_id flicker User id (not name) * @param int $item_count number of photos to pull */ public function get_public_photos($user_id,$item_count=10){ //public photos params $public_photo_params = $this->api_param_defaults + array( 'method' => 'flickr.people.getPublicPhotos', 'user_id' => $user_id, 'extras' => 'description, license, date_upload, date_taken, owner_name, icon_server, original_format, last_update, geo, tags, machine_tags, o_dims, views, media, path_alias, url_sq, url_t, url_s, url_q, url_m, url_n, url_z, url_c, url_l, url_o', 'per_page'=> $item_count, 'page' => 1 ); //get photo list $public_photos_list = $this->call_flickr_api($public_photo_params); //var_dump($public_photos); if(isset($public_photos_list->photos->photo)) return $public_photos_list->photos->photo; else return ''; } /** * Get Photosets List from User * * @since 1.0.0 * @param string $user_id flicker User id (not name) * @param int $item_count number of photos to pull */ public function get_photo_sets($user_id,$item_count=10,$current_photoset){ //photoset params $photo_set_params = $this->api_param_defaults + array( 'method' => 'flickr.photosets.getList', 'user_id' => $user_id, 'per_page'=> $item_count, 'page' => 1 ); //get photoset list $photo_sets_list = $this->call_flickr_api($photo_set_params); $return = array(); foreach($photo_sets_list->photosets->photoset as $photo_set){ if(empty($photo_set->title->_content)) $photo_set->title->_content = ""; if(empty($photo_set->photos)) $photo_set->photos = 0; $return[] = '<option title="'.$photo_set->description->_content.'" '.selected( $photo_set->id , $current_photoset , false ).' value="'.$photo_set->id.'">'.$photo_set->title->_content.' ('.$photo_set->photos.' photos)</option>"'; } return $return; } /** * Get Photoset Photos * * @since 1.0.0 * @param string $photo_set_id Photoset ID * @param int $item_count number of photos to pull */ public function get_photo_set_photos($photo_set_id,$item_count=10){ //photoset photos params $this->stream = array(); $photo_set_params = $this->api_param_defaults + array( 'method' => 'flickr.photosets.getPhotos', 'photoset_id' => $photo_set_id, 'per_page' => $item_count, 'page' => 1, 'extras' => 'license, date_upload, date_taken, owner_name, icon_server, original_format, last_update, geo, tags, machine_tags, o_dims, views, media, path_alias, url_sq, url_t, url_s, url_q, url_m, url_n, url_z, url_c, url_l, url_o' ); //get photo list $photo_set_photos = $this->call_flickr_api($photo_set_params); if(isset($photo_set_photos->photoset->photo)) return $photo_set_photos->photoset->photo; else return ''; } /** * Get Groop Pool Photos * * @since 1.0.0 * @param string $group_id Photoset ID * @param int $item_count number of photos to pull */ public function get_group_photos($group_id,$item_count=10){ //photoset photos params $group_pool_params = $this->api_param_defaults + array( 'method' => 'flickr.groups.pools.getPhotos', 'group_id' => $group_id, 'per_page' => $item_count, 'page' => 1, 'extras' => 'license, date_upload, date_taken, owner_name, icon_server, original_format, last_update, geo, tags, machine_tags, o_dims, views, media, path_alias, url_sq, url_t, url_s, url_q, url_m, url_n, url_z, url_c, url_l, url_o' ); //get photo list $group_pool_photos = $this->call_flickr_api($group_pool_params); if(isset($group_pool_photos->photos->photo)) return $group_pool_photos->photos->photo; else return ''; } /** * Get Gallery ID from its URL * * @since 1.0.0 * @param string $gallery_url URL of the Gallery * @param int $item_count number of photos to pull */ public function get_gallery_from_url($gallery_url){ //gallery params $gallery_params = $this->api_param_defaults + array( 'method' => 'flickr.urls.lookupGallery', 'url' => $gallery_url, ); //get gallery info $gallery_info = $this->call_flickr_api($gallery_params); if(isset($gallery_info->gallery->id)) return $gallery_info->gallery->id; else return ''; } /** * Get Gallery Photos * * @since 1.0.0 * @param string $gallery_id flicker Gallery id (not name) * @param int $item_count number of photos to pull */ public function get_gallery_photos($gallery_id,$item_count=10){ //gallery photos params $gallery_photo_params = $this->api_param_defaults + array( 'method' => 'flickr.galleries.getPhotos', 'gallery_id' => $gallery_id, 'extras' => 'description, license, date_upload, date_taken, owner_name, icon_server, original_format, last_update, geo, tags, machine_tags, o_dims, views, media, path_alias, url_sq, url_t, url_s, url_q, url_m, url_n, url_z, url_c, url_l, url_o', 'per_page'=> $item_count, 'page' => 1 ); //get photo list $gallery_photos_list = $this->call_flickr_api($gallery_photo_params); if(isset($gallery_photos_list->photos->photo)) return $gallery_photos_list->photos->photo; else return ''; } /** * Encode the flickr ID for URL (base58) * * @since 1.0.0 * @param string $num flickr photo id */ private function base_encode($num, $alphabet='123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ') { $base_count = strlen($alphabet); $encoded = ''; while ($num >= $base_count) { $div = $num/$base_count; $mod = ($num-($base_count*intval($div))); $encoded = $alphabet[$mod] . $encoded; $num = intval($div); } if ($num) $encoded = $alphabet[$num] . $encoded; return $encoded; } } // End Class /** * Youtube * * with help of the API this class delivers all kind of Images/Videos from youtube * * @package socialstreams * @subpackage socialstreams/youtube * @author ThemePunch <info@themepunch.com> */ class RevSliderYoutube { /** * API key * * @since 1.0.0 * @access private * @var string $api_key Youtube API key */ private $api_key; /** * Channel ID * * @since 1.0.0 * @access private * @var string $channel_id Youtube Channel ID */ private $channel_id; /** * Stream Array * * @since 1.0.0 * @access private * @var array $stream Stream Data Array */ private $stream; /** * Transient seconds * * @since 1.0.0 * @access private * @var number $transient Transient time in seconds */ private $transient_sec; /** * Initialize the class and set its properties. * * @since 1.0.0 * @param string $api_key Youtube API key. */ public function __construct($api_key,$channel_id,$transient_sec=1200) { $this->api_key = $api_key; $this->channel_id = $channel_id; $this->transient_sec = $transient_sec; } /** * Get Youtube Playlists * * @since 1.0.0 */ public function get_playlists(){ //call the API and decode the response $url = "https://www.googleapis.com/youtube/v3/playlists?part=snippet&maxResults=50&channelId=".$this->channel_id."&key=".$this->api_key; $rsp = json_decode(wp_remote_fopen($url)); if(isset($rsp->items)){ return $rsp->items; }else{ return false; } } /** * Get Youtube Playlist Items * * @since 1.0.0 * @param string $playlist_id Youtube Playlist ID * @param integer $count Max videos count */ public function show_playlist_videos($playlist_id,$count=50){ //call the API and decode the response if(empty($count)) $count = 50; $url = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=".$playlist_id."&maxResults=".$count."&fields=items%2Fsnippet&key=".$this->api_key; $transient_name = 'revslider_' . md5($url); if ($this->transient_sec > 0 && false !== ($data = get_transient( $transient_name))) return ($data); $rsp = json_decode(wp_remote_fopen($url)); set_transient( $transient_name, $rsp->items, $this->transient_sec ); return $rsp->items; } /** * Get Youtube Channel Items * * @since 1.0.0 * @param integer $count Max videos count */ public function show_channel_videos($count=50){ if(empty($count)) $count = 50; //call the API and decode the response $url = "https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=".$this->channel_id."&maxResults=".$count."&key=".$this->api_key."&order=date"; $transient_name = 'revslider_' . md5($url); if ($this->transient_sec > 0 && false !== ($data = get_transient( $transient_name))) return ($data); $rsp = json_decode(wp_remote_fopen($url)); set_transient( $transient_name, $rsp->items, $this->transient_sec ); return $rsp->items; } /** * Get Playlists from Channel as Options for Selectbox * * @since 1.0.0 */ public function get_playlist_options($current_playlist){ $return = array(); $playlists = $this->get_playlists(); if(!empty($playlists)){ foreach($playlists as $playlist){ $return[] = '<option title="'.$playlist->snippet->description.'" '.selected( $playlist->id , $current_playlist , false ).' value="'.$playlist->id.'">'.$playlist->snippet->title.'</option>"'; } } return $return; } } // End Class /** * Vimeo * * with help of the API this class delivers all kind of Images/Videos from Vimeo * * @package socialstreams * @subpackage socialstreams/vimeo * @author ThemePunch <info@themepunch.com> */ class RevSliderVimeo { /** * Stream Array * * @since 1.0.0 * @access private * @var array $stream Stream Data Array */ private $stream; /** * Transient seconds * * @since 1.0.0 * @access private * @var number $transient Transient time in seconds */ private $transient_sec; /** * Initialize the class and set its properties. * * @since 1.0.0 * @param string $api_key Youtube API key. */ public function __construct($transient_sec=1200) { $this->transient_sec = $transient_sec; } /** * Get Vimeo User Videos * * @since 1.0.0 */ public function get_vimeo_videos($type,$value){ //call the API and decode the response if($type=="user"){ $url = "https://vimeo.com/api/v2/".$value."/videos.json"; } else{ $url = "https://vimeo.com/api/v2/".$type."/".$value."/videos.json"; } $transient_name = 'revslider_' . md5($url); if ($this->transient_sec > 0 && false !== ($data = get_transient( $transient_name))) return ($data); $rsp = json_decode(wp_remote_fopen($url)); set_transient( $transient_name, $rsp, $this->transient_sec ); return $rsp; } } // End Class ?>