mirror of
https://github.com/lubuntu-team/lubuntu.me.git
synced 2025-02-22 15:51:08 +00:00
1062 lines
33 KiB
PHP
1062 lines
33 KiB
PHP
<?php
|
|
/* Provider: - *
|
|
* External Sources Input Classes for Back and Front End
|
|
* @since: 5.0
|
|
**/
|
|
|
|
if( !defined( 'ABSPATH') ) die();
|
|
|
|
/* Provider: - *
|
|
* 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 {
|
|
/* Provider: - *
|
|
* Stream Array
|
|
*
|
|
* @since 1.0.0
|
|
* @access private
|
|
* @var array $stream Stream Data Array
|
|
*/
|
|
private $stream;
|
|
|
|
/* Provider: - *
|
|
* 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;
|
|
}
|
|
|
|
/* Provider: - *
|
|
* 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]);
|
|
}
|
|
|
|
/* Provider: - *
|
|
* 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 '';
|
|
}
|
|
|
|
/* Provider: - *
|
|
* 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,$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?fields=photos&".$oauth;
|
|
|
|
$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));
|
|
if(isset($photo_set_photos->photos->data)){
|
|
set_transient( $transient_name, $photo_set_photos->photos->data, $this->transient_sec );
|
|
return $photo_set_photos->photos->data;
|
|
}
|
|
else return '';
|
|
}
|
|
|
|
/* Provider: - *
|
|
* 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);
|
|
$return = array();
|
|
if(is_array($photo_sets)){
|
|
foreach($photo_sets as $photo_set){
|
|
if(empty($photo_set->description)) $photo_set->description = "";
|
|
if(empty($photo_set->count)) $photo_set->count = 0;
|
|
$return[] = '<option title="'.$photo_set->description.'" '.selected( $photo_set->id , $current_album , false ).' value="'.$photo_set->id.'">'.$photo_set->name.' ('.$photo_set->count.' photos)</option>"';
|
|
}
|
|
}
|
|
return $return;
|
|
}
|
|
|
|
|
|
/* Provider: - *
|
|
* 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;
|
|
|
|
$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 '';
|
|
}
|
|
|
|
/* Provider: - *
|
|
* 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
|
|
|
|
/* Provider: - *
|
|
* 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 {
|
|
|
|
/* Provider: - *
|
|
* Consumer Key
|
|
*
|
|
* @since 1.0.0
|
|
* @access private
|
|
* @var string $consumer_key Consumer Key
|
|
*/
|
|
private $consumer_key;
|
|
|
|
/* Provider: - *
|
|
* Consumer Secret
|
|
*
|
|
* @since 1.0.0
|
|
* @access private
|
|
* @var string $consumer_secret Consumer Secret
|
|
*/
|
|
private $consumer_secret;
|
|
|
|
/* Provider: - *
|
|
* Access Token
|
|
*
|
|
* @since 1.0.0
|
|
* @access private
|
|
* @var string $access_token Access Token
|
|
*/
|
|
private $access_token;
|
|
|
|
/* Provider: - *
|
|
* Access Token Secret
|
|
*
|
|
* @since 1.0.0
|
|
* @access private
|
|
* @var string $access_token_secret Access Token Secret
|
|
*/
|
|
private $access_token_secret;
|
|
|
|
/* Provider: - *
|
|
* Twitter Account
|
|
*
|
|
* @since 1.0.0
|
|
* @access private
|
|
* @var string $twitter_account Account User Name
|
|
*/
|
|
private $twitter_account;
|
|
|
|
/* Provider: - *
|
|
* Transient seconds
|
|
*
|
|
* @since 1.0.0
|
|
* @access private
|
|
* @var number $transient Transient time in seconds
|
|
*/
|
|
private $transient_sec;
|
|
|
|
/* Provider: - *
|
|
* Stream Array
|
|
*
|
|
* @since 1.0.0
|
|
* @access private
|
|
* @var array $stream Stream Data Array
|
|
*/
|
|
private $stream;
|
|
|
|
/* Provider: - *
|
|
* 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;
|
|
}
|
|
|
|
/* Provider: - *
|
|
* 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 '';
|
|
}
|
|
|
|
|
|
/* Provider: - *
|
|
* 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
|
|
|
|
/* Provider: - *
|
|
* 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;
|
|
|
|
/* Provider: - *
|
|
* 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;
|
|
}
|
|
|
|
/* Provider: - *
|
|
* 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;
|
|
|
|
}
|
|
|
|
/* Provider: - *
|
|
* 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'] );
|
|
|
|
}
|
|
|
|
/* Provider: - *
|
|
* 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 );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
/* Provider: - *
|
|
* 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 {
|
|
|
|
/* Provider: - *
|
|
* API key
|
|
*
|
|
* @since 1.0.0
|
|
* @access private
|
|
* @var string $api_key Instagram API key
|
|
*/
|
|
private $api_key;
|
|
|
|
/* Provider: - *
|
|
* Stream Array
|
|
*
|
|
* @since 1.0.0
|
|
* @access private
|
|
* @var array $stream Stream Data Array
|
|
*/
|
|
private $stream;
|
|
|
|
/* Provider: - *
|
|
* Transient seconds
|
|
*
|
|
* @since 1.0.0
|
|
* @access private
|
|
* @var number $transient Transient time in seconds
|
|
*/
|
|
private $transient_sec;
|
|
|
|
/* Provider: - *
|
|
* 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;
|
|
}
|
|
|
|
/* Provider: - *
|
|
* Get Instagram Pictures
|
|
*
|
|
* @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://api.instagram.com/v1/users/".$search_user_id."/media/recent?count=".$count."&access_token=".$this->api_key."&client_id=".$search_user_id;
|
|
|
|
$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
|
|
|
|
/* Provider: - *
|
|
* 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 {
|
|
|
|
/* Provider: - *
|
|
* API key
|
|
*
|
|
* @since 1.0.0
|
|
* @access private
|
|
* @var string $api_key flickr API key
|
|
*/
|
|
private $api_key;
|
|
|
|
/* Provider: - *
|
|
* API params
|
|
*
|
|
* @since 1.0.0
|
|
* @access private
|
|
* @var array $api_param_defaults Basic params to call with API
|
|
*/
|
|
private $api_param_defaults;
|
|
|
|
/* Provider: - *
|
|
* Stream Array
|
|
*
|
|
* @since 1.0.0
|
|
* @access private
|
|
* @var array $stream Stream Data Array
|
|
*/
|
|
private $stream;
|
|
|
|
/* Provider: - *
|
|
* Basic URL
|
|
*
|
|
* @since 1.0.0
|
|
* @access private
|
|
* @var string $url Url to fetch user from
|
|
*/
|
|
private $flickr_url;
|
|
|
|
/* Provider: - *
|
|
* Transient seconds
|
|
*
|
|
* @since 1.0.0
|
|
* @access private
|
|
* @var number $transient Transient time in seconds
|
|
*/
|
|
private $transient_sec;
|
|
|
|
/* Provider: - *
|
|
* 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;
|
|
}
|
|
|
|
/* Provider: - *
|
|
* 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 '';
|
|
}
|
|
|
|
/* Provider: - *
|
|
* 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 '';
|
|
}
|
|
|
|
/* Provider: - *
|
|
* 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 '';
|
|
}
|
|
|
|
/* Provider: - *
|
|
* 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);
|
|
if(isset($public_photos_list->photos->photo))
|
|
return $public_photos_list->photos->photo;
|
|
else return '';
|
|
}
|
|
|
|
/* Provider: - *
|
|
* 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;
|
|
}
|
|
|
|
/* Provider: - *
|
|
* 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 '';
|
|
}
|
|
|
|
/* Provider: - *
|
|
* 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 '';
|
|
}
|
|
|
|
/* Provider: - *
|
|
* 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 '';
|
|
}
|
|
|
|
/* Provider: - *
|
|
* 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 '';
|
|
}
|
|
|
|
/* Provider: - *
|
|
* 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
|
|
|
|
|
|
/* Provider: - *
|
|
* 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 {
|
|
|
|
/* Provider: - *
|
|
* API key
|
|
*
|
|
* @since 1.0.0
|
|
* @access private
|
|
* @var string $api_key Youtube API key
|
|
*/
|
|
private $api_key;
|
|
|
|
/* Provider: - *
|
|
* Channel ID
|
|
*
|
|
* @since 1.0.0
|
|
* @access private
|
|
* @var string $channel_id Youtube Channel ID
|
|
*/
|
|
private $channel_id;
|
|
|
|
/* Provider: - *
|
|
* Stream Array
|
|
*
|
|
* @since 1.0.0
|
|
* @access private
|
|
* @var array $stream Stream Data Array
|
|
*/
|
|
private $stream;
|
|
|
|
/* Provider: - *
|
|
* Transient seconds
|
|
*
|
|
* @since 1.0.0
|
|
* @access private
|
|
* @var number $transient Transient time in seconds
|
|
*/
|
|
private $transient_sec;
|
|
|
|
/* Provider: - *
|
|
* 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;
|
|
}
|
|
|
|
|
|
/* Provider: - *
|
|
* 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&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;
|
|
}
|
|
}
|
|
|
|
/* Provider: - *
|
|
* 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;
|
|
}
|
|
|
|
/* Provider: - *
|
|
* 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;
|
|
}
|
|
|
|
/* Provider: - *
|
|
* 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
|
|
|
|
/* Provider: - *
|
|
* 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 {
|
|
/* Provider: - *
|
|
* Stream Array
|
|
*
|
|
* @since 1.0.0
|
|
* @access private
|
|
* @var array $stream Stream Data Array
|
|
*/
|
|
private $stream;
|
|
|
|
/* Provider: - *
|
|
* Transient seconds
|
|
*
|
|
* @since 1.0.0
|
|
* @access private
|
|
* @var number $transient Transient time in seconds
|
|
*/
|
|
private $transient_sec;
|
|
|
|
/* Provider: - *
|
|
* 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;
|
|
}
|
|
|
|
/* Provider: - *
|
|
* 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
|
|
?>
|