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); } } }
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; } }