Example #1
0
 private function init_icon($providers, $user_id)
 {
     //$callback = OW_Router::getInstance()->getBaseUrl().OW_Router::getInstance()->getUri();
     $callback = OW::getRequest()->getRequestUri();
     $config = OW::getConfig();
     foreach ($providers as $key => $provider) {
         $core = new YNSOCIALSTREAM_CLASS_Core();
         if (!OW::getConfig()->configExists('ynsocialstream', 'enable_facebook_' . $user_id)) {
             OW::getConfig()->addConfig('ynsocialstream', 'enable_facebook_' . $user_id, 1);
             OW::getConfig()->addConfig('ynsocialstream', 'enable_twitter_' . $user_id, 1);
             OW::getConfig()->addConfig('ynsocialstream', 'enable_linkedin_' . $user_id, 1);
             OW::getConfig()->addConfig('ynsocialstream', 'cron_job_user_' . $user_id, 1);
             OW::getConfig()->addConfig('ynsocialstream', 'auth_fb_' . $user_id, 'only_for_me');
             OW::getConfig()->addConfig('ynsocialstream', 'auth_tw_' . $user_id, 'only_for_me');
             OW::getConfig()->addConfig('ynsocialstream', 'auth_li_' . $user_id, 'only_for_me');
         }
         $configs = OW::getConfig()->getValues('ynsocialstream');
         if ($core->checkSocialBridgePlugin($provider) && $configs['enable_' . $provider . '_' . $user_id]) {
             $src = OW::getPluginManager()->getPlugin('ynsocialstream')->getStaticUrl() . 'img/' . 'socialStream_icon.png';
             //echo $src;die;
             $html = "<a class=\"ynsocialstream_get_feed_" . $provider . "\" title=" . $key . " id=\"get_feed_" . $provider . "\" rel=\"{$provider}\" href=\"javascript://\" style=\"margin:0 0 0 -1px;\"></a>";
             $url = OW::getRouter()->urlFor('YNSOCIALSTREAM_CTRL_Socialstream', 'connect');
             $sript = "\$(document).ready(function() {if(\$('.ow_attachment_icons #nfa-feed1 span.buttons').length){\n\t\t\t\t\t\$('.ow_attachment_icons #nfa-feed1 span.buttons').append('" . $html . "');\n\t\t\t\t\t\$('#get_feed_" . $provider . "').click(function(){\t\t\t\n\t\t\t\t\t\t\$('.ow_submit_auto_click').hide();\n\t\t\t    \t\t\$('#attachment_preview_nfa-feed1').show();\n\t\t\t    \t\t\$('#attachment_preview_nfa-feed1').empty().addClass('attachment_preloader').animate({height:45});\n\t\t\t    \t\n\t\t\t    \t\$.ajax({\n\t\t\t\t\t\t type: 'POST',\n\t\t\t\t\t\t url: '{$url}',\n\t\t\t\t\t\t data: 'service={$provider}&url={$callback}',\n\t\t\t\t\t\t dataType: 'json',\n\t\t\t\t\t\t success : function(data){\n\t\t\t\t\t\t\tdocument.location.href=data;\n\t\t                },\n\t\t                error : function( XMLHttpRequest, textStatus, errorThrown ){\n\t\t                \tOW.error(textStatus);\n\t\t\t\t\t   }\n\t\t\t\t\t});\n\t\t\t    \t\n\t\t\t\t\t});\n\t\t\t\t}});";
             OW::getDocument()->addScriptDeclaration($sript);
         }
     }
 }
Example #2
0
 public function connect()
 {
     try {
         // if ( !OW::getUser()->isAuthorized('ynsocialstream', 'get_feed') )
         // {
         // $this->setTemplate(OW::getPluginManager()->getPlugin('base')->getCtrlViewDir() . 'authorization_failed.html');
         // return;
         // }
         //get provider
         $provider = $_POST['service'];
         $oxUrl = $_POST['url'];
         if (!isset($provider) || $provider == '') {
             throw new InvalidArgumentException('Invalid parameter provider');
             exit;
         }
         if (in_array($provider, array('facebook', 'twitter', 'linkedin'))) {
             $core = new YNSOCIALSTREAM_CLASS_Core();
             if (!$core->checkSocialBridgePlugin($provider)) {
                 exit("invalid url");
                 //OW::getFeedback()->warning(OW::getLanguage() -> text('ynsocialstream', 'selected_fail'));
                 //$this->redirect($importUrl);
                 throw new InvalidArgumentException('Not find social bridge plug-in');
                 exit;
             }
             $viewer_id = OW::getUser()->getId();
             $core = new YNSOCIALBRIDGE_CLASS_Core();
             //get facebook or twitter or linkedin token
             $obj = $core->getInstance($provider);
             $values = array('service' => $provider, 'userId' => $viewer_id);
             $token = $obj->getToken($values);
             $callbackUrl = OW::getRouter()->urlForRoute('ynsocialstream-get-feed');
             $url = NULL;
             switch ($provider) {
                 case 'facebook':
                     if ($token && $token->accessToken) {
                         $_SESSION['socialbridge_session']['facebook']['access_token'] = $token->accessToken;
                         $url = $callbackUrl . '?service=facebook' . '&url=' . $oxUrl;
                         $uid = $obj->getOwnerId(array('access_token' => $_SESSION['socialbridge_session']['facebook']['access_token']));
                         $permissions = $obj->hasPermission(array('uid' => $uid, 'access_token' => $_SESSION['socialbridge_session']['facebook']['access_token']));
                         if (empty($permissions[0]['publish_stream']) || empty($permissions[0]['status_update']) || empty($permissions[0]['read_stream'])) {
                             $url = $obj->getConnectUrl() . '?scope=publish_stream,status_update,read_stream' . '&' . http_build_query(array('callbackUrl' => $callbackUrl . '?service=facebook' . '&url=' . $oxUrl));
                         }
                     } else {
                         $url = $obj->getConnectUrl() . '?scope=user_photos,publish_stream,status_update,read_stream' . '&' . http_build_query(array('callbackUrl' => $callbackUrl . '?service=facebook' . '&url=' . $oxUrl));
                     }
                     break;
                 case 'twitter':
                     if ($token && $token->accessToken) {
                         $_SESSION['socialbridge_session']['twitter']['access_token'] = $token->accessToken;
                         $_SESSION['socialbridge_session']['twitter']['secret_token'] = $token->secretToken;
                         $_SESSION['socialbridge_session']['twitter']['owner_id'] = $token->uid;
                         $url = $callbackUrl . '?service=twitter' . '&url=' . $oxUrl;
                     } else {
                         $url = $obj->getConnectUrl() . '?scope=rw_nus' . '&' . http_build_query(array('callbackUrl' => $callbackUrl . '?service=twitter' . '&url=' . $oxUrl));
                     }
                     break;
                 case 'linkedin':
                     if ($token && isset($_SESSION['socialbridge_session']['linkedin']['stream'])) {
                         $url = $callbackUrl . '?service=linkedin' . '&url=' . $oxUrl;
                     } else {
                         $url = $obj->getConnectUrl() . '?scope=rw_nus,r_basicprofile' . '&' . http_build_query(array('callbackUrl' => $callbackUrl . '?service=linkedin' . '&url=' . $oxUrl));
                     }
                     break;
             }
             //echo $url;die;
             exit(json_encode($url));
             //return $this -> redirect($url);
         }
     } catch (Exception $ex) {
         throw $ex;
     }
 }