Пример #1
0
 public function run()
 {
     $friendsFrom = Friend::model()->with('userTo')->findAllByAttributes(array('idUserFrom' => $this->idUser, 'accepted' => 1));
     $friendsTo = Friend::model()->with('userFrom')->findAllByAttributes(array('idUserTo' => $this->idUser, 'accepted' => 1));
     $datas = array_merge($friendsFrom, $friendsTo);
     shuffle($datas);
     $this->render('friendsOverview', array('datas' => $datas));
 }
Пример #2
0
 public static function userFriendsCount($user_id, $is_confirmed = 1, $type = null)
 {
     $model = Friend::model();
     switch ($type) {
         case 'in':
             $count = $model->countByAttributes(['user_a_id' => $user_id, 'is_confirmed' => $is_confirmed]);
             break;
         case 'out':
             $count = $model->countByAttributes(['user_b_id' => $user_id, 'is_confirmed' => $is_confirmed]);
             break;
         default:
             $count = $model->count('(user_a_id = :user_id OR user_b_id = :user_id) AND is_confirmed = :is_confirmed', [':user_id' => $user_id, ':is_confirmed' => $is_confirmed]);
             break;
     }
     return $count;
 }
Пример #3
0
 public function run()
 {
     $uid = Yii::app()->user->id;
     $fuid = $this->fuid;
     //
     $friendGroup = Friend::model()->getFriendGroups($uid);
     if (!empty($friendGroup)) {
         $groups_arr = CHtml::listData($friendGroup, 'id', 'name');
     }
     $relation = $this->relation;
     $fuid = $relation->fuid;
     $list = $relation->frienBelongdGroup;
     $frienBelongdGroup = array();
     if (!empty($list)) {
         foreach ($list as $key => $value) {
             $frienBelongdGroup[$value['gid']] = $groups_arr[$value['gid']];
         }
     }
     $data = array('frienBelongdGroup' => $frienBelongdGroup, 'groups_arr' => $groups_arr, 'friendGroup' => $friendGroup, 'fuid' => $fuid);
     $this->render('WFriendBelongGroup', $data);
 }
Пример #4
0
 public function actionGetCountUrl()
 {
     $gid = Yii::app()->request->getParam('typeId');
     echo Friend::model()->getFriendNumber(Yii::app()->user->id, $gid);
 }
Пример #5
0
    public static function FriendLink($friend, $print = true, $unfriendDiplay = false)
    {
        $individual = Main::user();
        if (is_null($individual)) {
            return;
        }
        $friendship = Friend::model()->find('(individual_id=' . $friend->id . ' and friend_id=' . $individual->id . ') ||
				(individual_id =' . $individual->id . ' and friend_id=' . $friend->id . ')');
        $status = is_null($friendship) ? '0' : $friendship->status;
        $content = null;
        switch ($status) {
            case 0:
                if (!(Yii::app()->user->id === $friend->id) and !Yii::app()->user->isGuest) {
                    $content .= CHtml::form(array('/individual/friend/' . $friend->id));
                    $content .= CHtml::hiddenField('individual_id', $friend->id);
                    $content .= CHtml::submitButton('Make Friend', array('class' => 'friend_sarch_btn'));
                    $content .= CHtml::endForm();
                }
                break;
            case 1:
                if (Yii::app()->user->isGuest) {
                    break;
                }
                if (!(Yii::app()->user->id === $friend->id) and $unfriendDiplay) {
                    $content .= CHtml::form(array('/individual/friend/unfriend/' . $friend->id));
                    $content .= CHtml::hiddenField('individual_id', $friend->id);
                    $content .= CHtml::submitButton('Unfriend', array('class' => 'friend_sarch_btn', 'onclick' => "return confirm('Are you sure to unfriend ?')"));
                    $content .= CHtml::endForm();
                }
                break;
            case 2:
                if (Yii::app()->user->isGuest) {
                    break;
                }
                if ($friendship->individual_id == Yii::app()->user->id) {
                    $content .= CHtml::button('Request Sent', array('class' => 'friend_sarch_btn'));
                } else {
                    $content .= CHtml::form(array('/individual/friend/accept/' . $friend->id));
                    $content .= CHtml::hiddenField('individual_id', $friend->id);
                    $content .= CHtml::submitButton('Accept', array('class' => 'friend_sarch_btn'));
                    $content .= CHtml::endForm();
                }
                break;
            default:
                break;
        }
        if ($print) {
            echo $content;
        } else {
            return $content;
        }
    }
Пример #6
0
 public function actionDeclineFriendRequest()
 {
     if (isset($_POST['idUser'])) {
         $friendRequest = Friend::model()->findByAttributes(array('idUserTo' => Yii::app()->user->getId(), 'idUserFrom' => $_POST['idUser'], 'accepted' => 0));
         if ($friendRequest !== null) {
             $friendRequest->accepted = 2;
             if ($friendRequest->save()) {
                 echo "Declined!";
             }
         }
     }
 }
Пример #7
0
 public function isFriendWith($friend_id)
 {
     $attrs = array('from_id' => $friend_id, 'to_id' => $this->user_id);
     $friends = Friend::model()->findByAttributes($attrs);
     if ($friends == null) {
         return false;
     }
     return true;
 }
Пример #8
0
 /**
  * ????? 
  * Enter description here ...
  */
 public function actionDestory()
 {
     header('Content-type: application/json');
     if (!Yii::app()->request->isPostRequest) {
         IjoyPlusServiceUtils::exportServiceError(Constants::METHOD_NOT_SUPPORT);
         return;
     }
     if (!IjoyPlusServiceUtils::validateAPPKey()) {
         IjoyPlusServiceUtils::exportServiceError(Constants::APP_KEY_INVALID);
         return;
     }
     if (IjoyPlusServiceUtils::validateUserID()) {
         IjoyPlusServiceUtils::exportServiceError(Constants::USER_ID_INVALID);
         return;
     }
     $friend_id = Yii::app()->request->getParam("friend_ids");
     if (!isset($friend_id) || is_null($friend_id)) {
         IjoyPlusServiceUtils::exportServiceError(Constants::PARAM_IS_INVALID);
         return;
     }
     $friends = explode(',', $friend_id);
     if (Friend::model()->destroyFriends($friends)) {
         IjoyPlusServiceUtils::exportServiceError(Constants::SUCC);
     } else {
         IjoyPlusServiceUtils::exportServiceError(Constants::SYSTEM_ERROR);
     }
 }
Пример #9
0
 public function actionUpdateList($fid, $value)
 {
     $friend_obj = Friend::model()->findByPK($fid);
     $friend_obj->changed = $value;
     $friend_obj->save();
     // echo "salamsalam";
 }
Пример #10
0
 public function actionRemoveFriend($id)
 {
     $friends = Friend::model()->findByAttributes(array('from_id' => $id, 'to_id' => Yii::app()->user->getId()));
     $friends->delete();
     $friends = Friend::model()->findByAttributes(array('to_id' => $id, 'from_id' => Yii::app()->user->getId()));
     $friends->delete();
     $this->redirect(array("user/profile", "id" => $id));
 }
Пример #11
0
 /**
  * This function returns an array with the idUser of the instanced User Friends
  * @return array(idUser)
  */
 public function getIdFriends()
 {
     $friendsTo = Friend::model()->findAll(array('select' => 'idUserTo', 'condition' => 'idUserFrom=:idUser and accepted=1', 'params' => array(':idUser' => $this->idUser)));
     $friendsFrom = Friend::model()->findAll(array('select' => 'idUserFrom', 'condition' => 'idUserTo=:idUser and accepted=1', 'params' => array(':idUser' => $this->idUser)));
     $friends = array();
     foreach ($friendsTo as $row) {
         $friends[] = $row->idUserTo;
     }
     foreach ($friendsFrom as $row) {
         $friends[] = $row->idUserFrom;
     }
     return $friends;
 }
Пример #12
0
 public function actionDelete()
 {
     $friend = Friend::model()->findByUsersIds(Yii::app()->user->id, $_POST['friend_id']);
     if ($friend) {
     } else {
         $this->pageNotFound();
     }
 }
Пример #13
0
echo $form->textField($model, 'start_time');
?>
		<?php 
echo $form->error($model, 'start_time');
?>
		</div><!-- row -->
		<div class="row">
		<?php 
echo $form->labelEx($model, 'end_time');
?>
		<?php 
echo $form->textField($model, 'end_time');
?>
		<?php 
echo $form->error($model, 'end_time');
?>
		</div><!-- row -->

		<label><?php 
echo GxHtml::encode($model->getRelationLabel('friends'));
?>
</label>
		<?php 
echo $form->checkBoxList($model, 'friends', GxHtml::encodeEx(GxHtml::listDataEx(Friend::model()->findAllAttributes(null, true)), false, true));
?>

<?php 
echo GxHtml::submitButton(Yii::t('app', 'Save'));
$this->endWidget();
?>
</div><!-- form -->
Пример #14
0
>
			<?php 
    echo CHtml::link('所有好友(' . Friend::model()->countGroupFriend() . ')', array("/{$this->url}/index"));
    ?>
		</li>
		<?php 
    foreach ($groups as $group) {
        ?>
		<li<?php 
        if ($group['id'] == $_GET['gid']) {
            echo ' class="on"';
        }
        ?>
>
			<?php 
        echo CHtml::link($group['name'] . '(' . Friend::model()->countGroupFriend('', $group['id']) . ')', array("/{$url}/index", 'gid' => $group['id']));
        ?>
			<?php 
        if ($group['uid'] != 0 and $this->url == 'friend') {
            echo CHtml::link('删除', array("/{$this->url}/delGroup", 'gid' => $group['id']), array('class' => 'thickbox'));
        }
        ?>
		</li>
		<?php 
    }
    ?>
	</ul>
	<?php 
}
?>
	<div class="btm"></div>
Пример #15
0
 public function actionGetCountFriends()
 {
     $gid = Yii::app()->request->getParam('typeId');
     echo Friend::model()->countGroupFriend(Yii::app()->user->id, $gid);
 }
Пример #16
0
 public function collectInfo()
 {
     $cmd_count = 0;
     //  $categories = array('1' => 'check-in', '2' => 'link', '3' => 'status','4'=>'photo', '5' => 'video', '6' => 'comment', '7' => 'others',);
     $categories = array('2' => 'link', '3' => 'status', '5' => 'video', '4' => 'photo');
     $facebook = $_SESSION['facebook'];
     //***************Set Times***********
     $all_friends = $facebook->api('/me/friends');
     $days_threshold = 3;
     ini_set('max_execution_time', 60 * 60);
     $start_time = mktime(0, 0, 0, date("m"), date("d") - $days_threshold, date("Y"));
     $end_time = time();
     $time_step = 4 * 60 * 60;
     //for when FB did not return the posts for a whole period of time and we had to make sub-queries
     //***************Set User Attributes & Save in DB****************
     $user = $facebook->getUser();
     if ($user) {
         $this->fbid = $user;
         $this->start_time = date("Y-m-d H:i:s", $start_time);
         $this->end_time = date("Y-m-d H:i:s", $end_time);
         $this->created_at = new CDbExpression('NOW()');
         if ($this->save()) {
             // Yii::log('success');
             // echo 'success';
         } else {
             print_r($this->getErrors());
         }
     } else {
         // echo 'cannot save user in DB!';
     }
     $cmd_count++;
     $i = 0;
     //****************Save All Friends' Basic information in DB*******************
     for ($f = 0; $f < sizeof($all_friends['data']); $f++) {
         $fbid = $all_friends['data'][$f]['id'];
         $friend = new Friend();
         $friend->fbid = $fbid;
         $friend->name = $all_friends['data'][$f]['name'];
         $friend->user = $this->id;
         if ($friend->save()) {
             //Yii::log('success');
             // echo 'success';
         } else {
             Yii::log($this->getErrors());
             print_r($this->getErrors());
         }
     }
     //*************************************Fetch News Feed (Shown Stories)*********************************
     //******Before, querying the whole time period did not retreive the NewsFeed Posts =>
     // I made it to time-slots using $time_step variable =>
     // but now, it does not work! and querying over the whole period works well! So, I came back to the first method!********
     // for ($ctime = $start_time; $ctime < $end_time; $ctime += $time_step) {
     //   $accesToken = Yii::app()->facebook->getAccessToken();
     //   $cmd = "me/home?fields=id,from,type,link,story,picture,source,name,description,message&limit=500&since=" . $ctime . "&until=" . ($ctime + $time_step);
     $cmd = "me/home?fields=id,from,type,link,story,picture,source,name,description,message,created_time&limit=500&since=" . $start_time . "&until=" . $end_time;
     // $cmd = "me/home?fields=id,from,type,link,story,picture,source,name,description,message&limit=500";
     $me = $facebook->api($cmd);
     echo "cmd: " . $cmd . "<br>";
     echo "size of data: " . sizeof($me['data']) . '<br>';
     $cmd_count++;
     //************Save News Feed Stories at DB************
     $saved_shown_posts_count = 0;
     for ($j = 0; $j < sizeof($me['data']); $j++) {
         $postdata = new PostData();
         $postdata->user = $this->id;
         if (isset($me['data'][$j]['id'])) {
             $postdata->post_id = $me['data'][$j]['id'];
             // echo 'post_id(all): '. $postdata->post_id. '<br>';
         }
         if (isset($me['data'][$i]['from'])) {
             //Save post's authors' attributes
             if (isset($me['data'][$i]['from']['id'])) {
                 $postdata->from_id = $me['data'][$j]['from']['id'];
                 // this is the author's Facebook ID.
             }
             if (isset($me['data'][$j]['from']['name'])) {
                 $postdata->from_name = $me['data'][$j]['from']['name'];
             }
             if (isset($postdata->from_id)) {
                 //   $friend_id = Friend::model()->find('fbid=:fbid AND user=:user', array(':fbid' => $postdata->from_id, ':user' => $this->id));
                 $friend_obj = Friend::model()->find(array('select' => 'id', 'condition' => 'fbid=:fbid AND user=:user', 'params' => array(':fbid' => $postdata->from_id, ':user' => $this->id)));
                 //echo $friend_id['id'] . '<br>';
                 if (isset($friend_obj['id'])) {
                     $postdata->friend = $friend_obj['id'];
                     //this is the autor's Database ID and it needs to be saved!
                 }
             }
         }
         if (isset($me['data'][$j]['description'])) {
             $postdata->description = $me['data'][$j]['description'];
         }
         if (isset($me['data'][$j]['name'])) {
             $postdata->name = $me['data'][$j]['name'];
         }
         if (isset($me['data'][$j]['story'])) {
             $postdata->story = $me['data'][$j]['story'];
         }
         if (isset($me['data'][$j]['link'])) {
             $postdata->link = $me['data'][$j]['link'];
         }
         if (isset($me['data'][$j]['picture'])) {
             $postdata->picture = $me['data'][$j]['picture'];
         }
         if (isset($me['data'][$j]['message'])) {
             $postdata->message = $me['data'][$j]['message'];
         }
         if (isset($me['data'][$j]['source'])) {
             $postdata->source = $me['data'][$j]['source'];
         }
         if (isset($me['data'][$j]['created_time'])) {
             echo "time: " . $me['data'][$j]['created_time'] . '<br>';
             $timestamp = strtotime($me['data'][$j]['created_time']);
             $postdata->created_time = date($timestamp);
         }
         if (isset($me['data'][$j]['type'])) {
             $postdata->type = $me['data'][$j]['type'];
         }
         //*****Save postdata*****
         if ($postdata->save()) {
         } else {
             //Yii::log($postdata->getErrors());
             //echo 'cannot save this post since:<br>';
             //print_r($postdata->getErrors());
             return;
         }
     }
 }
Пример #17
0
 public function actionAcceptFriend($id)
 {
     $friendship = Friend::model()->find('User_ID = :User_ID AND Friend_User_ID = :Friend_User_ID AND Status = :Status', array(':User_ID' => $id, ':Friend_User_ID' => Yii::app()->user->id, ':Status' => FriendStatus::AwaitingApproval));
     if ($friendship != null) {
         $friendship->Status = FriendStatus::Friend;
         $friendship->save();
         $notification = Message::model()->find('`From` = :From AND `To` = :To AND Type = :Type', array(':From' => $id, ':To' => Yii::app()->user->id, ':Type' => MessageType::FriendRequest));
         if ($notification != null) {
             $notification->Deleted = 1;
             $notification->save();
         }
         $friend = User::model()->findByPk(Yii::app()->user->id);
         $friendLink = CHtml::link($friend->fullName, array('/user/view', 'id' => Yii::app()->user->id));
         Message::SendNotification($id, "{$friendLink} has accepted your homie request!");
     }
     $this->redirect(array('/user/view', 'id' => Yii::app()->user->id, 's' => AccountSections::Notifications));
 }
Пример #18
0
 public function getFriendRelation($uid, $fuid)
 {
     $criteria = new CDbCriteria();
     $criteria->condition = 'uid=:uid AND fuid=:fuid';
     $criteria->params = array(':uid' => $uid, ':fuid' => $fuid);
     $model = Friend::model()->find($criteria);
     if (empty($model)) {
         throw new CHttpException(404, '不是好友.');
     } else {
         return $model;
     }
 }
Пример #19
0
 /**
  * Return array of CActiveRecord
  * @return array(CActiveRecord)
  */
 public static function getFriendRequests($idUser)
 {
     $criteria = new CDbCriteria();
     $criteria->condition = 't.idUserTo=:idUser AND t.accepted=:friendStatus';
     $criteria->params = array(':idUser' => $idUser, ':friendStatus' => 0);
     $criteria->order = 'userFrom.username';
     $friendRequests = Friend::model()->with('userFrom', 'levelUserFrom')->findAll($criteria);
     return $friendRequests;
 }
Пример #20
0
 /**
  * 锟揭的癸拷注
  * Enter description here ...
  */
 public function actionFriends()
 {
     header('Content-type: application/json');
     if (!IjoyPlusServiceUtils::validateAPPKey()) {
         IjoyPlusServiceUtils::exportServiceError(Constants::APP_KEY_INVALID);
         return;
     }
     $userid = Yii::app()->request->getParam("userid");
     if (!isset($userid) || is_null($userid)) {
         if (IjoyPlusServiceUtils::validateUserID()) {
             IjoyPlusServiceUtils::exportServiceError(Constants::USER_ID_INVALID);
             return;
         }
         $userid = Yii::app()->user->id;
     }
     $page_size = Yii::app()->request->getParam("page_size");
     $page_num = Yii::app()->request->getParam("page_num");
     if (!(isset($page_size) && is_numeric($page_size))) {
         $page_size = 10;
         $page_num = 1;
     } else {
         if (!(isset($page_num) && is_numeric($page_num))) {
             $page_num = 1;
         }
     }
     try {
         $friends = Friend::model()->searchFriends($userid, $page_size, $page_size * ($page_num - 1));
         if (isset($friends) && !is_null($friends) && is_array($friends)) {
             IjoyPlusServiceUtils::exportEntity(array('friends' => $friends));
         } else {
             IjoyPlusServiceUtils::exportEntity(array('friends' => array()));
         }
     } catch (Exception $e) {
         IjoyPlusServiceUtils::exportServiceError(Constants::SYSTEM_ERROR);
     }
     IjoyPlusServiceUtils::exportEntity(Friend::model()->searchFriends($userid, $limit, $offset));
 }