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)); }
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; }
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); }
public function actionGetCountUrl() { $gid = Yii::app()->request->getParam('typeId'); echo Friend::model()->getFriendNumber(Yii::app()->user->id, $gid); }
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; } }
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!"; } } } }
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; }
/** * ????? * 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); } }
public function actionUpdateList($fid, $value) { $friend_obj = Friend::model()->findByPK($fid); $friend_obj->changed = $value; $friend_obj->save(); // echo "salamsalam"; }
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)); }
/** * 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; }
public function actionDelete() { $friend = Friend::model()->findByUsersIds(Yii::app()->user->id, $_POST['friend_id']); if ($friend) { } else { $this->pageNotFound(); } }
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 -->
> <?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>
public function actionGetCountFriends() { $gid = Yii::app()->request->getParam('typeId'); echo Friend::model()->countGroupFriend(Yii::app()->user->id, $gid); }
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; } } }
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)); }
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; } }
/** * 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; }
/** * 锟揭的癸拷注 * 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)); }