Exemple #1
0
 public function onBeforeRender()
 {
     parent::onBeforeRender();
     $limit = MBOL_ConsoleService::SECTION_ITEMS_LIMIT;
     $this->addComponent('itemsCmp', new FRIENDS_MCMP_ConsoleItems($limit));
     $this->assign('loadMore', $this->service->count(null, OW::getUser()->getId(), FRIENDS_BOL_Service::STATUS_PENDING) > $limit);
     OW::getDocument()->addScript(OW::getPluginManager()->getPlugin('friends')->getStaticJsUrl() . 'mobile.js');
     $params = array('acceptUrl' => OW::getRouter()->urlFor('FRIENDS_MCTRL_Action', 'accept'), 'ignoreUrl' => OW::getRouter()->urlFor('FRIENDS_MCTRL_Action', 'ignore'));
     $script = 'var friendsConsole = new OWM_FriendsConsole(' . json_encode($params) . ');';
     OW::getDocument()->addOnloadScript($script);
 }
Exemple #2
0
 public function __construct(BASE_CLASS_WidgetParameter $params)
 {
     parent::__construct();
     $service = FRIENDS_BOL_Service::getInstance();
     $userId = $params->additionalParamList['entityId'];
     $count = (int) $params->customParamList['count'];
     $idList = $service->findUserFriendsInList($userId, 0, $count);
     $total = $service->countFriends($userId);
     $userService = BOL_UserService::getInstance();
     $eventParams = array('action' => 'friends_view', 'ownerId' => $userId, 'viewerId' => OW::getUser()->getId());
     try {
         OW::getEventManager()->getInstance()->call('privacy_check_permission', $eventParams);
     } catch (RedirectException $e) {
         $this->setVisible(false);
         return;
     }
     if (empty($idList) && !$params->customizeMode) {
         $this->setVisible(false);
         return;
     }
     if (!empty($idList)) {
         $this->addComponent('userList', new BASE_CMP_AvatarUserList($idList));
     }
     $username = BOL_UserService::getInstance()->getUserName($userId);
     $toolbar = array();
     if ($total > $count) {
         $toolbar = array(array('label' => OW::getLanguage()->text('base', 'view_all'), 'href' => OW::getRouter()->urlForRoute('friends_user_friends', array('user' => $username))));
     }
     $this->assign('toolbar', $toolbar);
 }
Exemple #3
0
 /**
  * Returns class instance
  *
  * @return FRIENDS_BOL_Service
  */
 public static function getInstance()
 {
     if (self::$classInstance === null) {
         self::$classInstance = new self();
     }
     return self::$classInstance;
 }
Exemple #4
0
 public function onUserRegister(OW_Event $event)
 {
     $params = $event->getParams();
     if (empty($params['params']['code'])) {
         return;
     }
     $userIds = array();
     foreach ($this->providers as $provider) {
         $inviters = $provider->getInviters($params['params']['code']);
         if ($inviters && is_array($inviters)) {
             $userIds = array_merge($userIds, $inviters);
         }
     }
     $fService = FRIENDS_BOL_Service::getInstance();
     $newId = $params['userId'];
     foreach ($userIds as $uid) {
         $event = new OW_Event('friends.add_friend', array('requesterId' => $uid, 'userId' => $newId));
         OW::getEventManager()->trigger($event);
         /*$eventParams = array('pluginKey' => 'contactimporter', 'action' => 'import_friend', 'userId' => $userId);
         
         	    if ( OW::getEventManager()->call('usercredits.check_balance', $eventParams) === true )
         	    {
         		OW::getEventManager()->call('usercredits.track_action', $eventParams);
         	    }*/
     }
 }
 public function countNewItems(BASE_CLASS_EventCollector $event)
 {
     $params = $event->getParams();
     if ($params['page'] == self::CONSOLE_PAGE_KEY) {
         $service = FRIENDS_BOL_Service::getInstance();
         $event->add(array(self::CONSOLE_SECTION_KEY => $service->count(null, OW::getUser()->getId(), FRIENDS_BOL_Service::STATUS_PENDING, null, false)));
     }
 }
Exemple #6
0
 /**
  * Constructor.
  */
 public function __construct($timestamp)
 {
     parent::__construct();
     $service = FRIENDS_BOL_Service::getInstance();
     $userId = OW::getUser()->getId();
     $requests = $service->findNewRequestList($userId, $timestamp);
     $items = FRIENDS_MCMP_ConsoleItems::prepareData($requests);
     $this->assign('items', $items);
     // Mark as viewed
     $service->markAllViewedByUserId($userId);
     $tpl = OW::getPluginManager()->getPlugin('friends')->getMobileCmpViewDir() . 'console_items.html';
     $this->setTemplate($tpl);
 }
Exemple #7
0
 public function ignore()
 {
     if (!OW::getRequest()->isAjax()) {
         throw new Redirect403Exception();
     }
     if (!OW::getUser()->isAuthenticated()) {
         throw new AuthenticateException();
     }
     $userId = (int) OW::getUser()->getId();
     $requesterId = (int) $_POST['id'];
     $service = FRIENDS_BOL_Service::getInstance();
     $service->ignore($requesterId, $userId);
     exit(json_encode(array('result' => true)));
 }
    public function loadList(BASE_CLASS_ConsoleListEvent $event)
    {
        $params = $event->getParams();
        $userId = OW::getUser()->getId();
        if ($params['target'] != self::CONSOLE_ITEM_KEY) {
            return;
        }
        $requests = $this->service->findRequestList($userId, $params['console']['time'], $params['offset'], 10);
        $requestIds = array();
        foreach ($requests as $request) {
            $avatar = BOL_AvatarService::getInstance()->getDataForUserAvatars(array($request->userId), true, true, true, false);
            $avatar = $avatar[$request->userId];
            $userUrl = OW::getRouter()->urlForRoute('base_user_profile', array('username' => BOL_UserService::getInstance()->getUserName($request->userId)));
            $displayName = BOL_UserService::getInstance()->getDisplayName($request->userId);
            $string = OW::getLanguage()->text('friends', 'console_request_item', array('userUrl' => $userUrl, 'displayName' => $displayName));
            $item = new FRIENDS_CMP_RequestItem();
            $item->setAvatar($avatar);
            $item->setContent($string);
            $item->setToolbar(array(array('label' => OW::getLanguage()->text('friends', 'accept_request'), 'id' => 'friend_request_accept_' . $request->userId), array('label' => OW::getLanguage()->text('friends', 'ignore_request'), 'id' => 'friend_request_ignore_' . $request->userId)));
            if (!$request->viewed) {
                $item->addClass('ow_console_new_message');
            }
            $js = UTIL_JsGenerator::newInstance();
            $js->jQueryEvent('#friend_request_accept_' . $request->userId, 'click', <<<EOT
OW.FriendRequest.accept('{$item->getKey()}', {$request->userId});
EOT
);
            $js->jQueryEvent('#friend_request_ignore_' . $request->userId, 'click', <<<EOT
OW.FriendRequest.ignore('{$item->getKey()}', {$request->userId});
EOT
);
            OW::getDocument()->addOnloadScript($js->generateJs());
            $requestIds[] = $request->id;
            $event->addItem($item->render());
        }
        $this->service->markViewedByIds($requestIds);
    }
Exemple #9
0
 public function sendFriendRequest(OW_Event $event)
 {
     $params = $event->getParams();
     if (empty($params['requesterId']) || empty($params['userId'])) {
         return;
     }
     $requesterId = $params['requesterId'];
     $userId = $params['userId'];
     $frendshipDto = $this->service->findFriendship($requesterId, $userId);
     if (!empty($frendshipDto)) {
         return;
     }
     $this->service->request($requesterId, $userId);
     $event = new OW_Event('friends.request-sent', array('senderId' => $requesterId, 'recipientId' => $userId, 'time' => time()));
     OW::getEventManager()->trigger($event);
 }
Exemple #10
0
 public function __construct(BASE_CLASS_WidgetParameter $params)
 {
     parent::__construct();
     $service = FRIENDS_BOL_Service::getInstance();
     if (empty($params->additionalParamList['entityId'])) {
         $userId = OW::getUser()->getId();
     } else {
         $userId = $params->additionalParamList['entityId'];
     }
     $this->assign('count', (int) FRIENDS_BOL_Service::getInstance()->countFriends($userId));
     $this->assign('gotCount', (int) $service->count(null, $userId, FRIENDS_BOL_Service::STATUS_PENDING));
     $this->assign('sentCount', (int) $service->count($userId, null, FRIENDS_BOL_Service::STATUS_PENDING, FRIENDS_BOL_Service::STATUS_IGNORED));
     $this->assign('friendsUrl', OW::getRouter()->urlForRoute('friends_list'));
     $this->assign('sentRequestsUrl', OW::getRouter()->urlForRoute('friends_lists', array('list' => 'sent-requests')));
     $this->assign('gotRequestsUrl', OW::getRouter()->urlForRoute('friends_lists', array('list' => 'got-requests')));
 }
Exemple #11
0
 /**
  * Constructor.
  */
 public function __construct($limit, $exclude = null)
 {
     parent::__construct();
     $service = FRIENDS_BOL_Service::getInstance();
     $userId = OW::getUser()->getId();
     $requests = $service->findRequestList($userId, time(), 0, $limit, $exclude);
     $items = self::prepareData($requests);
     $this->assign('items', $items);
     // Mark as viewed
     $service->markAllViewedByUserId($userId);
     $requestIdList = array();
     foreach ($requests as $id => $request) {
         $requestIdList[] = $id;
     }
     $exclude = is_array($exclude) ? array_merge($exclude, $requestIdList) : $requestIdList;
     $loadMore = (bool) $service->count(null, $userId, FRIENDS_BOL_Service::STATUS_PENDING, null, null, $exclude);
     if (!$loadMore) {
         $script = "OWM.trigger('mobile.console_hide_friends_load_more', {});";
         OW::getDocument()->addOnloadScript($script);
     }
 }
Exemple #12
0
 public function ajax()
 {
     if (!OW::getRequest()->isAjax()) {
         throw new Redirect403Exception();
     }
     if (!OW::getUser()->isAuthenticated()) {
         throw new AuthenticateException();
     }
     $command = $_POST['command'];
     $data = json_decode($_POST['data'], true);
     $result = '';
     switch ($command) {
         case 'friends-accept':
             $userId = (int) OW::getUser()->getId();
             $requesterId = (int) $data['id'];
             $service = FRIENDS_BOL_Service::getInstance();
             $frendshipDto = $service->accept($userId, $requesterId);
             if (!empty($frendshipDto)) {
                 $service->onAccept($userId, $requesterId, $frendshipDto);
             }
             $feedback = OW::getLanguage()->text('friends', 'feedback_request_accepted');
             $result = "OW.info('{$feedback}');";
             break;
         case 'friends-ignore':
             $userId = (int) OW::getUser()->getId();
             $requesterId = (int) $data['id'];
             $service = FRIENDS_BOL_Service::getInstance();
             $service->ignore($requesterId, $userId);
             $feedback = OW::getLanguage()->text('friends', 'feedback_request_ignored');
             $result = "OW.info('{$feedback}');";
             break;
     }
     echo json_encode(array('script' => $result));
     exit;
 }
Exemple #13
0
 public function onCollectButtons(BASE_CLASS_EventCollector $event)
 {
     $params = $event->getParams();
     if ($params["entityType"] != HINT_BOL_Service::ENTITY_TYPE_USER) {
         return;
     }
     $userId = $params["entityId"];
     $uniqId = uniqid("hint-af-");
     if (!OW::getUser()->isAuthenticated() || OW::getUser()->getId() == $userId || !OW::getUser()->isAuthorized('friends', 'add_friend')) {
         return;
     }
     $service = FRIENDS_BOL_Service::getInstance();
     $language = OW::getLanguage();
     $dto = $service->findFriendship($userId, OW::getUser()->getId());
     $js = UTIL_JsGenerator::newInstance();
     $blocked = BOL_UserService::getInstance()->isBlocked(OW::getUser()->getId(), $userId);
     $label = null;
     $command = "friends.add";
     if ($dto === null) {
         if ($blocked) {
             $js->jQueryEvent('#' . $uniqId, 'click', 'OW.error(e.data.msg); return false;', array('e'), array("msg" => $language->text('base', 'user_block_message')));
         }
         $label = $language->text('hint', 'button_friends_add_label');
     } else {
         switch ($dto->getStatus()) {
             case FRIENDS_BOL_Service::STATUS_ACTIVE:
                 $label = $language->text('hint', 'button_friends_remove_label');
                 $command = "friends.cancel";
                 break;
             case FRIENDS_BOL_Service::STATUS_PENDING:
                 if ($dto->getUserId() == OW::getUser()->getId()) {
                     //$label = $language->text('friends', 'remove_from_friends');
                     $label = $language->text('hint', 'button_friends_remove_label');
                     $command = "friends.cancel";
                 } else {
                     //$label = $language->text('friends', 'add_to_friends');
                     $label = $language->text('hint', 'button_friends_add_label');
                     $command = "friends.accept";
                 }
                 break;
             case FRIENDS_BOL_Service::STATUS_IGNORED:
                 if ($dto->getUserId() == OW::getUser()->getId()) {
                     $label = $language->text('hint', 'button_friends_remove_label');
                     $command = "friends.cancel";
                 } else {
                     $label = $language->text('hint', 'button_friends_add_label');
                     $command = "friends.activate";
                 }
         }
     }
     if (!$blocked) {
         $js->jQueryEvent('#' . $uniqId, 'click', '
             var self = $(this), command = self.data("command");
             HINT.UTILS.toggleText(this, e.data.l1, e.data.l2);
             self.data("command", command == "friends.cancel" ? "friends.add" : "friends.cancel");
             HINT.UTILS.query(command, e.data.params); return false;', array('e'), array("l1" => $language->text('hint', 'button_friends_add_label'), "l2" => $language->text('hint', 'button_friends_remove_label'), "params" => array("userId" => $userId)));
     }
     OW::getDocument()->addOnloadScript($js);
     $button = array("key" => "friends", "label" => $label, "attrs" => array("id" => $uniqId, "data-command" => $command));
     $event->add($button);
 }
Exemple #14
0
 public function getUserFriends($userId)
 {
     $friendsCount = FRIENDS_BOL_Service::getInstance()->countFriends($userId);
     $friends = FRIENDS_BOL_Service::getInstance()->findFriendIdList($userId, 0, $friendsCount);
     $list = array();
     foreach ($friends as $friend) {
         if (OW::getAuthorization()->isUserAuthorized($friend, 'credits', 'receive')) {
             $list[$friend] = BOL_UserService::getInstance()->getDisplayName($friend);
         }
     }
     return $list;
 }
Exemple #15
0
 /**
  * Get submenu for friendship lists
  *
  * @return BASE_CMP_ContentMenu
  */
 protected function getMenu()
 {
     $items = array();
     $language = OW::getLanguage();
     $userId = OW::getUser()->getId();
     $count = FRIENDS_BOL_Service::getInstance()->countFriends($userId);
     $item = new BASE_MenuItem();
     $item->setLabel($language->text('friends', 'friends_tab', array('count' => $count > 0 ? "({$count})" : '')));
     $item->setKey('friends');
     $item->setUrl(OW::getRouter()->urlForRoute('friends_list'));
     $item->setOrder(1);
     $item->setIconClass('ow_ic_clock');
     $items[] = $item;
     $count = FRIENDS_BOL_Service::getInstance()->count($userId, null, FRIENDS_BOL_Service::STATUS_PENDING, FRIENDS_BOL_Service::STATUS_IGNORED);
     $item = new BASE_MenuItem();
     $item->setLabel($language->text('friends', 'sent_requests_tab', array('count' => $count > 0 ? "({$count})" : '')));
     $item->setKey('sent_requests');
     $item->setUrl(OW::getRouter()->urlForRoute('friends_lists', array('list' => 'sent-requests')));
     $item->setOrder(2);
     $item->setIconClass('ow_ic_push_pin');
     $items[] = $item;
     $count = FRIENDS_BOL_Service::getInstance()->count(null, $userId, FRIENDS_BOL_Service::STATUS_PENDING);
     $item = new BASE_MenuItem();
     $item->setLabel($language->text('friends', 'got_requests_tab', array('count' => $count > 0 ? "({$count})" : '')));
     $item->setKey('got_requests');
     $item->setUrl(OW::getRouter()->urlForRoute('friends_lists', array('list' => 'got-requests')));
     $item->setOrder(3);
     $item->setIconClass('ow_ic_push_pin');
     $items[] = $item;
     return new BASE_CMP_ContentMenu($items);
 }
 public function onActionToolbarAddFriendActionTool(BASE_CLASS_EventCollector $event)
 {
     $params = $event->getParams();
     if (!OW::getUser()->isAuthenticated()) {
         return;
     }
     if (empty($params['userId'])) {
         return;
     }
     if ($params['userId'] == OW::getUser()->getId()) {
         return;
     }
     $userId = (int) $params['userId'];
     $language = OW::getLanguage();
     $router = OW::getRouter();
     $dto = FRIENDS_BOL_Service::getInstance()->findFriendship($userId, OW::getUser()->getId());
     $linkId = 'friendship' . rand(10, 1000000);
     if ($dto === null) {
         if (!OW::getUser()->isAuthorized('friends', 'add_friend')) {
             $status = BOL_AuthorizationService::getInstance()->getActionStatus('friends', 'add_friend');
             if ($status['status'] == BOL_AuthorizationService::STATUS_PROMOTED) {
                 $href = 'javascript://';
                 $script = '$({$link}).click(function(){
                     OWM.ajaxFloatBox(\'FRIENDS_MCMP_Notification\', [{$message}], {});
                 });';
                 $script = UTIL_JsGenerator::composeJsString($script, array('link' => '#' . $linkId, 'message' => $status['msg']));
                 OW::getDocument()->addOnloadScript($script);
             } else {
                 if ($status['status'] != BOL_AuthorizationService::STATUS_AVAILABLE) {
                     return;
                 }
             }
         } else {
             if (BOL_UserService::getInstance()->isBlocked(OW::getUser()->getId(), $userId)) {
                 $href = 'javascript://';
                 $script = '$({$link}).click(function(){
                 OWM.ajaxFloatBox(\'FRIENDS_MCMP_Notification\', [{$message}], {});
             });';
                 $script = UTIL_JsGenerator::composeJsString($script, array('link' => '#' . $linkId, 'message' => OW::getLanguage()->text('base', 'user_block_message')));
                 OW::getDocument()->addOnloadScript($script);
             } else {
                 $href = $router->urlFor('FRIENDS_CTRL_Action', 'request', array('id' => $userId));
             }
         }
         $label = OW::getLanguage()->text('friends', 'add_to_friends');
     } else {
         switch ($dto->getStatus()) {
             case FRIENDS_BOL_Service::STATUS_ACTIVE:
                 $label = $language->text('friends', 'remove_from_friends');
                 $href = $router->urlFor('FRIENDS_CTRL_Action', 'cancel', array('id' => $userId, 'redirect' => true));
                 break;
             case FRIENDS_BOL_Service::STATUS_PENDING:
                 if ($dto->getUserId() == OW::getUser()->getId()) {
                     $label = $language->text('friends', 'remove_from_friends');
                     $href = $router->urlFor('FRIENDS_CTRL_Action', 'cancel', array('id' => $userId, 'redirect' => true));
                 } else {
                     $label = $language->text('friends', 'add_to_friends');
                     $href = $router->urlFor('FRIENDS_CTRL_Action', 'accept', array('id' => $userId));
                 }
                 break;
             case FRIENDS_BOL_Service::STATUS_IGNORED:
                 if ($dto->getUserId() == OW::getUser()->getId()) {
                     $label = $language->text('friends', 'remove_from_friends');
                     $href = $router->urlFor('FRIENDS_CTRL_Action', 'cancel', array('id' => $userId));
                 } else {
                     $label = $language->text('friends', 'add_to_friends');
                     $href = $router->urlFor('FRIENDS_CTRL_Action', 'activate', array('id' => $userId));
                 }
         }
     }
     $resultArray = array('label' => $label, 'href' => $href, 'id' => $linkId, 'key' => 'friends.action', 'order' => 1);
     $event->add($resultArray);
     //
     //        $uniqId = uniqid("block-");
     //        $isBlocked = BOL_UserService::getInstance()->isBlocked($userId, OW::getUser()->getId());
     //
     //        $resultArray["label"] = $isBlocked ? OW::getLanguage()->text('base', 'user_unblock_btn_lbl') : OW::getLanguage()->text('base', 'user_block_btn_lbl');
     //
     //        $toggleText = !$isBlocked ? OW::getLanguage()->text('base', 'user_unblock_btn_lbl') : OW::getLanguage()->text('base', 'user_block_btn_lbl');
     //
     //        $toggleClass = !$isBlocked ? 'owm_context_action_list_item' : 'owm_context_action_list_item owm_red_btn';
     //
     //        $resultArray["attributes"] = array();
     //        $resultArray["attributes"]["data-command"] = $isBlocked ? "unblock" : "block";
     //
     //        $toggleCommand = !$isBlocked ? "unblock" : "block";
     //
     //        $resultArray["href"] = 'javascript://';
     //        $resultArray["id"] = $uniqId;
     //
     //        $js = UTIL_JsGenerator::newInstance();
     //        $js->jQueryEvent("#" . $uniqId, "click",
     //            'var toggle = false; if ( $(this).attr("data-command") == "block" && confirm(e.data.msg) ) { OWM.Users.blockUser(e.data.userId); toggle = true; };
     //            if ( $(this).attr("data-command") != "block") { OWM.Users.unBlockUser(e.data.userId); toggle =true;}
     //            toggle && OWM.Utils.toggleText($("span:eq(0)", this), e.data.toggleText);
     //            toggle && OWM.Utils.toggleAttr(this, "class", e.data.toggleClass);
     //            toggle && OWM.Utils.toggleAttr(this, "data-command", e.data.toggleCommand);',
     //            array("e"), array(
     //                "userId" => $userId,
     //                "toggleText" => $toggleText,
     //                "toggleCommand" => $toggleCommand,
     //                "toggleClass" => $toggleClass,
     //                "msg" => strip_tags(OW::getLanguage()->text("base", "user_block_confirm_message"))
     //            ));
     //
     //        OW::getDocument()->addOnloadScript($js);
     //
     //        $resultArray["key"] = "base.block_user";
     //        $resultArray["group"] = "addition";
     //
     //        $resultArray["class"] = $isBlocked ? '' : 'owm_red_btn';
     //        $resultArray["order"] = 3;
     //
     //        $event->add($resultArray);
 }
Exemple #17
0
 public function import()
 {
     if (!OW::getUser()->isAuthenticated()) {
         throw new AuthenticateException();
     }
     if (!OW::getUser()->isAuthorized('yncontactimporter', 'invite')) {
         $this->setTemplate(OW::getPluginManager()->getPlugin('base')->getCtrlViewDir() . 'authorization_failed.html');
         return;
     }
     $el = $this->menu->getElement('1');
     if ($el) {
         $el->setActive(true);
     }
     OW::getDocument()->setTitle(OW::getLanguage()->text('yncontactimporter', 'meta_title_invite_import'));
     OW::getDocument()->setDescription(OW::getLanguage()->text('yncontactimporter', 'meta_description_invite_import'));
     $userId = OW::getUser()->getId();
     if (isset($_REQUEST['service']) || OW::getRequest()->isPost()) {
         //add friends if the email was been used in system
         if (isset($_REQUEST['task']) && $_REQUEST['task'] == 'do_add') {
             $service = FRIENDS_BOL_Service::getInstance();
             $count_addFriends = 0;
             $aFriendIdSelected = explode(',', $_POST['friendIds']);
             foreach ($aFriendIdSelected as $key => $val) {
                 if ($val) {
                     $email = $val;
                     $user = BOL_UserService::getInstance()->findByEmail($email);
                     if ($user && $service->findFriendship($userId, $user->id) === null) {
                         $service->request($userId, $user->id);
                         $this->onRequest($user->id);
                         $count_addFriends++;
                     }
                 }
             }
             if ($count_addFriends > 0) {
                 OW::getFeedback()->info(OW::getLanguage()->text('friends', 'feedback_request_was_sent'));
             }
         }
         //end add friends
         $provider = '';
         if (isset($_REQUEST['service'])) {
             $provider = $_REQUEST['service'];
         }
         if (isset($_POST['contact']) && $_POST['contact'] != "") {
             $provider = "yahoo_google_hotmail_csv";
         }
         $importUrl = OW::getRouter()->urlForRoute('yncontactimporter-import');
         $useSocialBridge = 0;
         $contacts = null;
         $totalFriends = 0;
         $totalFriendSearch = 0;
         $contacts_add = NULL;
         $maxInvite = 10;
         $totalIvited = 0;
         $gmailContacts = "";
         $obj = null;
         if (in_array($provider, array('facebook', 'twitter', 'linkedin'))) {
             $core = new YNCONTACTIMPORTER_CLASS_Core();
             if (!$core->checkSocialBridgePlugin($provider)) {
                 OW::getFeedback()->warning(OW::getLanguage()->text('yncontactimporter', 'selected_fail'));
                 $this->redirect($importUrl);
             }
             $core = new YNSOCIALBRIDGE_CLASS_Core();
             $obj = $core->getInstance($provider);
             $tokenDto = null;
             if (empty($_SESSION['socialbridge_session'][$provider])) {
                 $values = array('service' => $provider, 'userId' => OW::getUser()->getId());
                 $tokenDto = $obj->getToken($values);
             }
             $useSocialBridge = 1;
             $clientConfig = YNSOCIALBRIDGE_BOL_ApisettingService::getInstance()->getConfig($provider);
             if ($clientConfig) {
                 $api_params = unserialize($clientConfig->apiParams);
                 if (isset($api_params['max_invite_day'])) {
                     $maxInvite = $api_params['max_invite_day'];
                 }
             }
         }
         switch ($provider) {
             case 'facebook':
                 if (!empty($_SESSION['socialbridge_session'][$provider]['access_token']) || $tokenDto) {
                     if ($tokenDto) {
                         $_SESSION['socialbridge_session'][$provider]['access_token'] = $tokenDto->accessToken;
                     }
                     $uid = $obj->getOwnerId(array('access_token' => $_SESSION['socialbridge_session']['facebook']['access_token']));
                     $permissions = $obj->hasPermission(array('uid' => $uid, 'access_token' => $_SESSION['socialbridge_session'][$provider]['access_token']));
                     if (empty($permissions[0]['publish_stream']) || empty($permissions[0]['xmpp_login'])) {
                         $this->redirect($importUrl);
                     } else {
                         $friendsInvited = YNCONTACTIMPORTER_BOL_InvitationService::getInstance()->getInvitationsByUserId(array('userId' => $userId, 'provider' => 'facebook'));
                         $arr_invited = array();
                         foreach ($friendsInvited as $invitation) {
                             $arr_invited[] = $invitation->friendId;
                         }
                         $params = $_SESSION['socialbridge_session'][$provider];
                         $params['invited'] = $arr_invited;
                         $totalFriends = $obj->getTotalFriends($params);
                         $totalFriendSearch = $totalFriends;
                         $contactPerPage = (int) OW::getConfig()->getValue('yncontactimporter', 'contact_per_page');
                         $params['limit'] = $contactPerPage;
                         $params['offset'] = 0;
                         if (isset($_REQUEST['search_page_id'])) {
                             $params['offset'] = $contactPerPage * ($_REQUEST['search_page_id'] - 1);
                         }
                         if (isset($_REQUEST['search'])) {
                             $params['search'] = $_REQUEST['search'];
                             $totalFriendSearch = $obj->getTotalFriends($params);
                         }
                         $contacts = $obj->getContacts($params);
                         //get total invited
                         $values = array('uid' => $uid, 'service' => $provider, 'date' => date('Y-m-d'));
                         $totalIvited = $obj->getTotalInviteOfDay($values);
                     }
                 } else {
                     $this->redirect($obj->getConnectUrl() . '?scope=publish_stream,xmpp_login' . '&' . http_build_query(array('callbackUrl' => $importUrl)));
                 }
                 break;
             case 'twitter':
                 if (!empty($_SESSION['socialbridge_session'][$provider]['access_token']) || $tokenDto) {
                     if ($tokenDto) {
                         $_SESSION['socialbridge_session'][$provider]['access_token'] = $tokenDto->accessToken;
                         $_SESSION['socialbridge_session'][$provider]['secret_token'] = $tokenDto->secretToken;
                         $_SESSION['socialbridge_session'][$provider]['owner_id'] = $tokenDto->uid;
                     }
                     $params = $_SESSION['socialbridge_session'][$provider];
                     $params['user_id'] = $params['owner_id'];
                     $tmp_contacts = $obj->getContacts($params);
                     foreach ($tmp_contacts as $key => $value) {
                         if (!YNCONTACTIMPORTER_BOL_InvitationService::getInstance()->checkInvitedUser($key)) {
                             $contacts[$key] = $value;
                         }
                     }
                     //get total invited
                     $values = array('uid' => $params['user_id'], 'service' => $provider, 'date' => date('Y-m-d'));
                     $totalIvited = $obj->getTotalInviteOfDay($values);
                 } else {
                     $this->redirect($obj->getConnectUrl() . '?' . http_build_query(array('callbackUrl' => $importUrl)));
                 }
                 break;
             case 'linkedin':
                 if (!empty($_SESSION['socialbridge_session'][$provider]['access_token']) || $tokenDto) {
                     if ($tokenDto) {
                         $_SESSION['socialbridge_session'][$provider]['access_token'] = $tokenDto->accessToken;
                         $_SESSION['socialbridge_session'][$provider]['secret_token'] = $tokenDto->secretToken;
                     }
                     $params = $_SESSION['socialbridge_session'][$provider];
                     $tmp_contacts = $obj->getContacts($params);
                     foreach ($tmp_contacts as $key => $value) {
                         if (!YNCONTACTIMPORTER_BOL_InvitationService::getInstance()->checkInvitedUser($key)) {
                             $contacts[$key] = $value;
                         }
                     }
                     //get total invited
                     $values = array('uid' => $obj->getOwnerId($params), 'service' => $provider, 'date' => date('Y-m-d'));
                     $totalIvited = $obj->getTotalInviteOfDay($values);
                 } else {
                     $this->redirect($obj->getConnectUrl() . '?scope=r_network,w_messages&' . http_build_query(array('callbackUrl' => $importUrl)));
                 }
                 break;
             case 'yahoo_google_hotmail_csv':
                 $aContacts = $_POST['contact'];
                 $gmailContacts = $aContacts;
                 $aContacts = urldecode($aContacts);
                 $aContacts = json_decode($aContacts);
                 foreach ($aContacts as $aContact) {
                     //check email
                     if ($user = BOL_UserService::getInstance()->findByEmail($aContact->email)) {
                         $service = FRIENDS_BOL_Service::getInstance();
                         if ($service->findFriendship($userId, $user->id) === null && $userId != $user->id) {
                             $contacts_add[$aContact->email] = $aContact->name;
                         }
                     } else {
                         if (!YNCONTACTIMPORTER_BOL_InvitationService::getInstance()->checkInvitedUser($aContact->email)) {
                             $contacts[$aContact->email] = $aContact->name;
                         }
                     }
                 }
                 break;
         }
         if (count($contacts) == 0) {
             OW::getFeedback()->warning(OW::getLanguage()->text('yncontactimporter', 'no_contact'));
         }
         $this->assign('showContacts', true);
         //check invite or add friends
         $component = new YNCONTACTIMPORTER_CMP_InviteFriends(array('contacts' => $contacts, 'totalFriends' => $totalFriends, 'totalFriendSearch' => $totalFriendSearch, 'contacts_add' => $contacts_add, 'provider' => $provider, 'service' => $_REQUEST['service'], 'useSocialBridge' => $useSocialBridge, 'maxInvite' => $maxInvite, 'totalInvited' => $totalIvited, 'gmailContacts' => $gmailContacts));
         $this->addComponent('contactImports', $component);
     } else {
         $this->assign('showContacts', false);
         $providers = YNCONTACTIMPORTER_BOL_ProviderService::getInstance()->getAllProviders(array('enable' => 1));
         $arr_providers = array();
         foreach ($providers as $provider) {
             if (in_array($provider->name, array('facebook', 'twitter', 'linkedin'))) {
                 $core = new YNCONTACTIMPORTER_CLASS_Core();
                 if (!$core->checkSocialBridgePlugin($provider->name)) {
                     continue;
                 }
             }
             $item = array();
             $item['title'] = $provider->title;
             $item['name'] = $provider->name;
             $item['id'] = $provider->id;
             $item['logo'] = OW::getPluginManager()->getPlugin('yncontactimporter')->getStaticUrl() . "img/" . $provider->name . ".png";
             $arr_providers[] = $item;
         }
         $this->assign('providers', $arr_providers);
         $this->assign("uploadCSVTitle", OW::getLanguage()->text('yncontactimporter', 'upload_csv_file'));
         $this->assign("customInviteTitle", OW::getLanguage()->text('yncontactimporter', 'custom_invite'));
         $this->assign("customInviteDescription", OW::getLanguage()->text('yncontactimporter', 'custom_invite_description'));
         $link = OW::getRequest()->buildUrlQueryString(OW::getRouter()->urlForRoute('yncontactimporter-user-join'), array('refId' => $userId));
         $this->assign('urlInvite', $link);
         $this->assign('authorization', OW::getLanguage()->text('yncontactimporter', 'authorization'));
         $this->assign('import_your_contacts', OW::getLanguage()->text('yncontactimporter', 'import_your_contacts'));
         // get top inviter
         $this->assign('topInviters', YNCONTACTIMPORTER_BOL_InvitationService::getInstance()->getTopInviters());
         // get statistic
         $this->assign('statistics', YNCONTACTIMPORTER_BOL_InvitationService::getInstance()->getStatistics());
         unset($_SESSION['ynfriends_checked']);
     }
 }