Пример #1
0
 function getSearch()
 {
     //init variable
     $app = JFactory::getApplication();
     $log_user = JFactory::getUser($this->plugin->get('user')->id);
     $nxt_lim = 20;
     $search = $app->input->get('search', '', 'STRING');
     $nxt_lim = $app->input->get('next_limit', 0, 'INT');
     $mapp = new EasySocialApiMappingHelper();
     $res = new stdClass();
     if (empty($search)) {
         $res->status = 0;
         $res->message = 'Empty searchtext';
         return $res;
     }
     $userid = $log_user->id;
     $serch_obj = new EasySocialModelSearch();
     $db = JFactory::getDbo();
     $query = $db->getQuery(true);
     $frnd_obj = new EasySocialModelFriends();
     $query->select($db->quoteName(array('su.user_id')));
     $query->from($db->quoteName('#__social_users', 'su'));
     $query->join('LEFT', $db->quoteName('#__users', 'u') . ' ON (' . $db->quoteName('su.user_id') . ' = ' . $db->quoteName('u.id') . ')');
     //->where(($db->quoteName('u.username') . ' LIKE '. $db->quote('\'% '.$search.'%\'') ).'OR' .( $db->quoteName('u.name') . ' LIKE '. $db->quote('\'%'.$search.'%\'') ).'OR'.( $db->quoteName('u.email') . ' LIKE '. $db->quote('\'%'.$search.'%\'')))
     if (!empty($search)) {
         $query->where("(u.username LIKE '%" . $search . "%' ) OR ( u.name LIKE '%" . $search . "%') OR ( u.email LIKE '%" . $search . "%')");
     }
     $query->order($db->quoteName('u.id') . 'ASC');
     $db->setQuery($query);
     $tdata = $db->loadObjectList();
     $susers = array();
     foreach ($tdata as $ky => $val) {
         $susers[] = FD::user($val->user_id);
     }
     $base_obj = $mapp->mapItem($susers, 'user', $log_user->id);
     $list['user'] = $this->createSearchObj($base_obj);
     //for group
     $query1 = $db->getQuery(true);
     $query1->select($db->quoteName(array('cl.id')));
     $query1->from($db->quoteName('#__social_clusters', 'cl'));
     if (!empty($search)) {
         $query1->where("(cl.title LIKE '%" . $search . "%' )");
     }
     $query1->order($db->quoteName('cl.id') . 'ASC');
     $db->setQuery($query1);
     $gdata = $db->loadObjectList();
     $grp_model = FD::model('Groups');
     $group = array();
     foreach ($gdata as $grp) {
         $group[] = FD::group($grp->id);
     }
     $list['group'] = $mapp->mapItem($group, 'group', $log_user->id);
     if (empty($list['group'])) {
         $ret_arr = new stdClass();
         $ret_arr->status = false;
         $ret_arr->message = "No group found in search";
         $list['group'] = $ret_arr;
     }
     return $list;
 }
Пример #2
0
 public function getGroup_Members()
 {
     //init variable
     $app = JFactory::getApplication();
     $log_user = $this->plugin->get('user')->id;
     $group_id = $app->input->get('group_id', 0, 'INT');
     $limitstart = $app->input->get('limitstart', 0, 'INT');
     $limit = $app->input->get('limit', 10, 'INT');
     $state = $app->input->get('state', 1, 'INT');
     $getAdmin = $app->input->get('admin', 1, 'INT');
     $options = array('groupid' => $group_id);
     $gruserob = new EasySocialModelGroupMembers();
     $data = $gruserob->getItems($options);
     $mapp = new EasySocialApiMappingHelper();
     foreach ($data as $val) {
         $val->id = $val->uid;
     }
     $user_list = $mapp->mapItem($data, 'user', $log_user);
     $grp_model = FD::model('Groups');
     foreach ($user_list as $user) {
         $user->isMember = $grp_model->isMember($user->id, $group_id);
         $user->isOwner = $grp_model->isOwner($user->id, $group_id);
         $user->isInvited = $grp_model->isInvited($user->id, $group_id);
         $user->isPendingMember = $grp_model->isPendingMember($user->id, $group_id);
     }
     //manual pagination code
     $user_list = array_slice($user_list, $limitstart, $limit);
     return $user_list;
 }
Пример #3
0
 function getGroups()
 {
     //init variable
     $app = JFactory::getApplication();
     $log_user = JFactory::getUser($this->plugin->get('user')->id);
     $db = JFactory::getDbo();
     $nxt_lim = 20;
     $search = $app->input->get('search', '', 'STRING');
     //$group_id = $app->input->get('id',0,'INT');
     $userid = $log_user->id;
     $mapp = new EasySocialApiMappingHelper();
     $filters = array();
     $filters['category'] = $app->input->get('category', 0, 'INT');
     $filters['uid'] = $app->input->get('target_user', 0, 'INT');
     //change target user
     if ($filters['uid'] != 0) {
         $userid = $filters['uid'];
     }
     $filters['types'] = $app->input->get('type', 0, 'INT');
     $filters['state'] = $app->input->get('state', 0, 'INT');
     $filters['featured'] = $app->input->get('featured', false, 'BOOLEAN');
     $filters['mygroups'] = $app->input->get('mygroups', false, 'BOOLEAN');
     $filters['invited'] = $app->input->get('invited', false, 'BOOLEAN');
     $filters['limit'] = $app->input->get('limit', 0, 'INT');
     $model = FD::model('Groups');
     $options = array('state' => SOCIAL_STATE_PUBLISHED, 'ordering' => 'latest', 'limit' => $filters['limit']);
     $groups = array();
     if ($filters['featured']) {
         $options['featured'] = true;
         $featured = $model->getGroups($filters);
         $featured_grps = $mapp->mapItem($featured, 'group', $log_user->id);
         if (count($featured_grps) > 0 && $featured_grps != false) {
             return $featured_grps;
         } else {
             return 0;
         }
     } else {
         if ($filters['mygroups']) {
             $options['uid'] = $userid;
             $options['types'] = 'all';
         }
         if ($filters['invited']) {
             $options['invited'] = $userid;
             $options['types'] = 'all';
         }
         if ($filters['category']) {
             $options['category'] = $categoryId;
         }
         if ($filters['uid'] == 0) {
             $groups = $model->getGroups($options);
         } else {
             $groups = $model->getUserGroups($filters['uid']);
         }
         //$groups = $this->baseGrpObj($groups);
         $groups = $mapp->mapItem($groups, 'group', $log_user->id);
     }
     return $groups;
 }
Пример #4
0
 public function get_event()
 {
     $app = JFactory::getApplication();
     $log_user = $this->plugin->get('user')->id;
     $event_id = $app->input->get('event_id', 0, 'INT');
     $mapp = new EasySocialApiMappingHelper();
     //getting all detail of particular event.
     $data = null;
     if ($event_id) {
         $event[] = FD::event($event_id);
         $data = $mapp->mapItem($event, 'event', $log_user);
     }
     return $data;
 }
Пример #5
0
 public function get_album_images()
 {
     $mapp = new EasySocialApiMappingHelper();
     $app = JFactory::getApplication();
     $album_id = $app->input->get('album_id', 0, 'INT');
     $uid = $app->input->get('uid', 0, 'INT');
     $state = $app->input->get('state', 0, 'INT');
     $mapp = new EasySocialApiMappingHelper();
     $log_user = $this->plugin->get('user')->id;
     $limitstart = $app->input->get('limitstart', 0, 'INT');
     $limit = $app->input->get('limit', 10, 'INT');
     $mydata['album_id'] = $album_id;
     $mydata['uid'] = $uid;
     $mydata['start'] = $limitstart;
     $mydata['limit'] = $limit;
     $ob = new EasySocialModelPhotos();
     $photos = $ob->getPhotos($mydata);
     //loading photo table
     $photo = FD::table('Photo');
     foreach ($photos as $pnode) {
         $photo->load($pnode->id);
         $pnode->image_large = $photo->getSource('large');
         $pnode->image_square = $photo->getSource('square');
         $pnode->image_thumbnail = $photo->getSource('thumbnail');
         $pnode->image_featured = $photo->getSource('featured');
     }
     //mapping function
     $all_photos = $mapp->mapItem($photos, 'photos', $log_user);
     return $all_photos;
     // return $photos;
 }
Пример #6
0
 function getCategory()
 {
     //init variable
     $app = JFactory::getApplication();
     $log_user = $this->plugin->get('user')->id;
     $other_user_id = $app->input->get('user_id', 0, 'INT');
     $userid = $other_user_id ? $other_user_id : $log_user;
     $data = array();
     $mapp = new EasySocialApiMappingHelper();
     $user = FD::user($userid);
     // Get a list of group categories
     $catModel = FD::model('GroupCategories');
     $cats = $catModel->getCategories(array('state' => SOCIAL_STATE_PUBLISHED, 'ordering' => 'ordering'));
     $data['data'] = $mapp->mapItem($cats, 'category', $log_user);
     return $data;
 }
Пример #7
0
 public function get_albums()
 {
     $app = JFactory::getApplication();
     //getting log_user
     $log_user = $this->plugin->get('user')->id;
     //accepting user details.
     $uid = $app->input->get('uid', 0, 'INT');
     $type = $app->input->get('type', 0, 'STRING');
     $mapp = new EasySocialApiMappingHelper();
     //accepting pagination values.
     $limitstart = $app->input->get('limitstart', 5, 'INT');
     $limit = $app->input->get('limit', 10, 'INT');
     // taking values in array for pagination of albums.
     //$mydata['limitstart']=$limitstart;
     $mydata['excludeblocked'] = 1;
     $mydata['pagination'] = 1;
     //$mydata['limit'] = $limit;
     $mydata['privacy'] = true;
     $mydata['order'] = 'a.assigned_date';
     $mydata['direction'] = 'DESC';
     //creating object and calling relatvie method for data fetching.
     $obj = new EasySocialModelAlbums();
     //$obj->setState('limitstart',$limitstart);
     //$obj->setState('limit',$limit);
     //$obj->limitstart = $limitstart;
     //$obj->limit= $limit;
     // first param is user id,user type and third contains array for pagination.
     $albums = $obj->getAlbums($uid, $type, $mydata);
     //use to load table of album.
     $album = FD::table('Album');
     foreach ($albums as $album) {
         if ($album->cover_id) {
             $album->load($album->cover_id);
         }
         $album->cover_featured = $album->getCover('featured');
         $album->cover_large = $album->getCover('large');
         $album->cover_square = $album->getCover('square');
         $album->cover_thumbnail = $album->getCover('thumbnail');
     }
     //getting count of photos in every albums.
     foreach ($albums as $alb) {
         $alb->count = $obj->getTotalPhotos($alb->id);
     }
     $all_albums = $mapp->mapItem($albums, 'albums', $log_user);
     $output = array_slice($all_albums, $limitstart, $limit);
     return $output;
 }
Пример #8
0
 function getGroup()
 {
     //init variable
     $app = JFactory::getApplication();
     $log_user = JFactory::getUser($this->plugin->get('user')->id);
     $group_id = $app->input->get('id', 0, 'INT');
     $other_user_id = $app->input->get('user_id', 0, 'INT');
     $userid = $other_user_id ? $other_user_id : $log_user->id;
     $data = array();
     $user = FD::user($userid);
     $mapp = new EasySocialApiMappingHelper();
     $grp_model = FD::model('Groups');
     if ($group_id) {
         $group[] = FD::group($group_id);
         //$pth = FD::photo($group[0]->creator_uid,'',$group[0]->id);
         $data['data'] = $mapp->mapItem($group, 'group', $log_user->id);
     }
     return $data;
 }
Пример #9
0
 public function get_leaderboard()
 {
     $app = JFactory::getApplication();
     //getting log_user
     $log_user = $this->plugin->get('user')->id;
     $limitstart = $app->input->get('limitstart', 0, 'INT');
     $limit = $app->input->get('limit', 10, 'INT');
     $mapp = new EasySocialApiMappingHelper();
     $model = FD::model('Leaderboard');
     //$options = array( 'ordering' => 'points' , 'limit' => $limit , 'excludeAdmin' => $excludeAdmin ,'state' => 1);
     $options = array('ordering' => 'points', 'excludeAdmin' => $excludeAdmin, 'state' => 1);
     $users = $model->getLadder($options, false);
     if (empty($users)) {
         $res = new stdClass();
         $res->status = 0;
         $res->message = 'No Leaders';
         return $res;
     }
     $leaderusers = $mapp->mapItem($users, 'user');
     $output = array_slice($leaderusers, $limitstart, $limit);
     return $output;
 }
Пример #10
0
 function getFriends()
 {
     //init variable
     $app = JFactory::getApplication();
     $user = JFactory::getUser($this->plugin->get('user')->id);
     $userid = $app->input->get('target_user', $this->plugin->get('user')->id, 'INT');
     $search = $app->input->get('search', '', 'STRING');
     $mapp = new EasySocialApiMappingHelper();
     if ($userid == 0) {
         $userid = $user->id;
     }
     $frnd_mod = new EasySocialModelFriends();
     // if search word present then search user as per term and given id
     if (empty($search)) {
         $ttl_list = $frnd_mod->getFriends($userid);
     } else {
         $ttl_list = $frnd_mod->search($userid, $search, 'username');
     }
     //$frnd_list = $this->basefrndObj($ttl_list);
     $frnd_list = $mapp->mapItem($ttl_list, 'user', $userid);
     //get other data
     foreach ($frnd_list as $ky => $lval) {
         //get mutual friends of given user
         /*if($userid != $user->id)
         		{
         			$lval->mutual = $frnd_mod->getMutualFriendCount($user->id,$lval->id);
         			$lval->isFriend = $frnd_mod->isFriends($user->id,$lval->id);
         			//$lval->mutual_frnds = $frnd_mod->getMutualFriends($userid,$lval->id);
         		}
         		else
         		{
         			$lval->mutual = $frnd_mod->getMutualFriendCount($userid,$lval->id);
         			$lval->isFriend = $frnd_mod->isFriends($user->id,$lval->id);
         		}*/
         $lval->mutual = $frnd_mod->getMutualFriendCount($user->id, $lval->id);
         $lval->isFriend = $frnd_mod->isFriends($user->id, $lval->id);
     }
     return $frnd_list;
 }
Пример #11
0
 function getGroupDiscussion()
 {
     //init variable
     $mainframe = JFactory::getApplication();
     $group_id = $mainframe->input->get('id', 0, 'INT');
     $appId = $mainframe->input->get('discussion_id', 0, 'INT');
     //$filter = $mainframe->input->get('filter','all','STRING');
     $wres = new stdClass();
     $valid = 0;
     if (!$group_id) {
         $wres->status = 0;
         $wres->message[] = 'Group id is empty';
         return $wres;
     } else {
         $group = FD::group($group_id);
         // Get the current filter type
         $filter = $mainframe->input->get('filter', 'all', 'STRING');
         $options = array();
         if ($filter == 'unanswered') {
             $options['unanswered'] = true;
         }
         if ($filter == 'locked') {
             $options['locked'] = true;
         }
         if ($filter == 'resolved') {
             $options['resolved'] = true;
         }
         $options['limitstart'] = $mainframe->input->get('limitstart', 0, 'INT');
         $options['limit'] = $mainframe->input->get('limit', 10, 'INT');
         $mapp = new EasySocialApiMappingHelper();
         $model = FD::model('Discussions');
         $discussions_row = $model->getDiscussions($group->id, SOCIAL_TYPE_GROUP, $options);
         $data['data'] = $mapp->mapItem($discussions_row, 'discussion', $this->plugin->get('user')->id);
         //
         return $data;
     }
 }
Пример #12
0
 public function get_guests()
 {
     $app = JFactory::getApplication();
     //getting log_user.
     $log_user = $this->plugin->get('user')->id;
     //get event id,limit,limitstart.
     $event_id = $app->input->get('event_id', 0, 'INT');
     $limitstart = $app->input->get('limitstart', 0, 'INT');
     $limit = $app->input->get('limit', 10, 'INT');
     $options = array();
     $ordering = $this->plugin->get('ordering', 'name', 'STRING');
     $state = $app->input->get('state', '', 'STRING');
     $mapp = new EasySocialApiMappingHelper();
     $eguest = FD::model('Events');
     //filter with guests state.
     switch ($state) {
         case 'going':
             $options['state'] = SOCIAL_EVENT_GUEST_GOING;
             break;
         case 'notgoing':
             $options['state'] = SOCIAL_EVENT_GUEST_NOT_GOING;
             break;
         case 'maybe':
             $options['state'] = SOCIAL_EVENT_GUEST_MAYBE;
             break;
         case 'admins':
             $options['admin'] = true;
             break;
     }
     $options['users'] = true;
     $options['limitstart'] = $limitstart;
     $options['limit'] = $limit;
     $res = $eguest->getGuests($event_id, $options);
     //map the object to userobject.
     $eventGuests = $mapp->mapItem($res, 'user');
     return $eventGuests;
 }
Пример #13
0
 function getDiscussionReply()
 {
     //init variable
     $mainframe = JFactory::getApplication();
     $group_id = $mainframe->input->get('group_id', 0, 'INT');
     $discussId = $mainframe->input->get('discussion_id', 0, 'INT');
     $wres = new stdClass();
     $valid = 0;
     if (!$group_id) {
         $wres->status = 0;
         $wres->message[] = 'Group id is empty';
         return $wres;
     } else {
         $group = FD::group($group_id);
         // Get the current filter type
         $filter = $mainframe->input->get('filter', 'all', 'STRING');
         $options = array();
         if ($filter == 'unanswered') {
             $options['unanswered'] = true;
         }
         if ($filter == 'locked') {
             $options['locked'] = true;
         }
         if ($filter == 'resolved') {
             $options['resolved'] = true;
         }
         $options['limit'] = $mainframe->input->get('limit', 10, 'INT');
         $options['ordering'] = 'created';
         $mapp = new EasySocialApiMappingHelper();
         $model = FD::model('Discussions');
         $reply_rows = $model->getReplies($discussId, $options);
         if ($discussId) {
             $disc_dt = new stdClass();
             //create discussion details as per request
             $discussion = FD::table('Discussion');
             $discussion->load($discussId);
             $data_node[] = $discussion;
             $data['discussion'] = $mapp->mapItem($data_node, 'discussion', $this->plugin->get('user')->id);
         }
         $data['data'] = $mapp->mapItem($reply_rows, 'reply', $this->plugin->get('user')->id);
         //
         return $data;
     }
 }
Пример #14
0
 public function getComments()
 {
     $app = JFactory::getApplication();
     $row = new stdClass();
     $row->uid = $app->input->get('uid', 0, 'INT');
     $row->element = $app->input->get('element', '', 'STRING');
     //discussions.group.reply
     $row->stream_id = $app->input->get('stream_id', 0, 'INT');
     $row->group = $app->input->get('group', '', 'STRING');
     $row->verb = $app->input->get('verb', '', 'STRING');
     $row->limitstart = $app->input->get('limitstart', 0, 'INT');
     $row->limit = $app->input->get('limit', 10, 'INT');
     //$row->deleteable = 1;
     //$row->parentid = 0;
     $data = array();
     $mapp = new EasySocialApiMappingHelper();
     $data['data'] = $mapp->createCommentsObj($row, $row->limitstart, $row->limit);
     return $data;
 }
Пример #15
0
 function getProfile()
 {
     //init variable
     $app = JFactory::getApplication();
     $log_user = $this->plugin->get('user')->id;
     $other_user_id = $app->input->get('user_id', 0, 'INT');
     $userid = $other_user_id ? $other_user_id : $log_user;
     $data = array();
     $user = FD::user($userid);
     //easysocial default profile
     $profile = $user->getProfile();
     $mapp = new EasySocialApiMappingHelper();
     if ($userid) {
         $user_obj = $mapp->mapItem($userid, 'profile', $log_user);
         //$user_obj = $mapp->createUserObj($userid);
         /*
         $user_obj = $mapp->createUserObj($userid);
         $user_obj->isself = ($log_user == $other_user_id )?true:false;
         $user_obj->cover = $user->getCover();
         
         if( $log_user != $other_user_id )
         {
         	$log_user_obj = FD::user( $log_user );
         	$user_obj->isfriend = $log_user_obj->isFriends( $other_user_id );
         	$user_obj->isfollower = $log_user_obj->isFollowed( $other_user_id );
         	//$user_obj->approval_pending = $user->isPending($other_user_id);
         }
         $user_obj->friend_count = $user->getTotalFriends();
         $user_obj->follower_count = $user->getTotalFollowers();
         $user_obj->badges = $user->getBadges();
         $user_obj->points = $user->getPoints();
         */
         //code for custom fields
         // Get the steps model
         $stepsModel = FD::model('Steps');
         $steps = $stepsModel->getSteps($profile->id, SOCIAL_TYPE_PROFILES, SOCIAL_PROFILES_VIEW_DISPLAY);
         // Get custom fields model.
         $fieldsModel = FD::model('Fields');
         // Get custom fields library.
         $fields = FD::fields();
         $field_arr = array();
         foreach ($steps as $step) {
             $step->fields = $fieldsModel->getCustomFields(array('step_id' => $step->id, 'data' => true, 'dataId' => $userid, 'dataType' => SOCIAL_TYPE_USER, 'visible' => SOCIAL_PROFILES_VIEW_DISPLAY));
             $fields = null;
             if (count($step->fields)) {
                 $fields = $mapp->mapItem($step->fields, 'fields', $other_user_id);
                 //die("in fields loop");
                 if (empty($field_arr)) {
                     $field_arr = $fields;
                 } else {
                     foreach ($fields as $fld) {
                         array_push($field_arr, $fld);
                     }
                     //array_merge( $field_arr,$fields );
                 }
             }
         }
         //for change data type
         foreach ($field_arr as $ky => $fld) {
             if ($fld->field_name == 'Password' || $fld->field_name == 'Timezone' || $fld->field_name == 'Home Church') {
                 unset($field_arr[$ky]);
             } elseif ($fld->field_name == 'Birthday' && !empty($fld->field_value)) {
                 $dtchange = new DateTime($fld->field_value);
                 $fld->field_value = $dtchange->format('d M Y');
                 /*$vals = json_decode($fld->field_value);
                 		
                 					$fld->field_value = implode('-',(array)$vals);	
                 					
                 					$fld->field_value=date('d M Y',strtotime($fld->field_value));*/
             }
         }
         $friendmodel = FD::model('Friends');
         $result = $friendmodel->getPendingRequests($log_user);
         $user_obj->isrequestor = false;
         if ($result) {
             foreach ($result as $res) {
                 if ($res->actor_id == $other_user_id) {
                     $user_obj->isrequestor = true;
                 }
             }
         }
         $user_obj->more_info = $field_arr;
     }
     return $user_obj;
 }
Пример #16
0
 public function getParticipantUsers($con_id)
 {
     $conv_model = FD::model('Conversations');
     $mapp = new EasySocialApiMappingHelper();
     $participant_usrs = $conv_model->getParticipants($con_id);
     $con_usrs = array();
     foreach ($participant_usrs as $ky => $usrs) {
         if ($usrs->id && $this->plugin->get('user')->id != $usrs->id) {
             $con_usrs[] = $mapp->createUserObj($usrs->id);
         }
     }
     return $con_usrs;
 }
Пример #17
0
 public function getGroup_Members()
 {
     //init variable
     $app = JFactory::getApplication();
     $log_user = $this->plugin->get('user')->id;
     $group_id = $app->input->get('group_id', 0, 'INT');
     $limitstart = $app->input->get('limitstart', 0, 'INT');
     $limit = $app->input->get('limit', 10, 'INT');
     $mapp = new EasySocialApiMappingHelper();
     $data = array();
     //hari
     $filter = $app->input->get('filter', 'going', 'STRING');
     if ($limitstart) {
         $limit = $limit + $limitstart;
     }
     //for filter user by type
     $type = $app->input->get('type', 'group', 'STRING');
     $state = $app->input->get('state', 1, 'INT');
     $getAdmin = $app->input->get('admin', 1, 'INT');
     if ($type == 'group') {
         $options = array('groupid' => $group_id);
         $gruserob = new EasySocialModelGroupMembers();
         $data = $gruserob->getItems($options);
         foreach ($data as $val) {
             $val->id = $val->uid;
         }
     } else {
         if ($type == 'event') {
             //hari
             //Get event guest with filter.
             if (!empty($filter)) {
                 switch ($filter) {
                     case 'going':
                         $options['state'] = SOCIAL_EVENT_GUEST_GOING;
                         break;
                     case 'notgoing':
                         $options['state'] = SOCIAL_EVENT_GUEST_NOT_GOING;
                         break;
                     case 'maybe':
                         $options['state'] = SOCIAL_EVENT_GUEST_MAYBE;
                         break;
                     case 'admins':
                         $options['admin'] = true;
                         break;
                 }
                 $options['users'] = true;
                 $eguest = FD::model('Events');
                 $data = $eguest->getGuests($group_id, $options);
             }
         }
     }
     if (empty($data)) {
         $ret_arr = new stdClass();
         $ret_arr->status = false;
         $ret_arr->message = "No member found";
         return $ret_arr;
     }
     $user_list = $mapp->mapItem($data, 'user', $log_user);
     $grp_model = FD::model('Groups');
     foreach ($user_list as $user) {
         $user->isMember = $grp_model->isMember($user->id, $group_id);
         $user->isOwner = $grp_model->isOwner($user->id, $group_id);
         $user->isInvited = $grp_model->isInvited($user->id, $group_id);
         $user->isPendingMember = $grp_model->isPendingMember($user->id, $group_id);
     }
     //manual pagination code
     $user_list = array_slice($user_list, $limitstart, $limit);
     return $user_list;
 }
Пример #18
0
 public function get_events()
 {
     $app = JFactory::getApplication();
     //getting log_user
     $log_user = $this->plugin->get('user')->id;
     $ordering = $this->plugin->get('ordering', 'start', 'STRING');
     $options = array();
     $eventResult = array();
     $res = new stdClass();
     $options = array('state' => SOCIAL_STATE_PUBLISHED, 'ordering' => $ordering);
     $event = FD::model('events');
     $filter = $app->input->get('filter', '', 'STRING');
     $dates = $app->input->get('date', '', 'STRING');
     $cdates = $app->input->get('cdate', '', 'STRING');
     $start_date = $app->input->get('start_date', '', 'STRING');
     $end_date = $app->input->get('end_date', '', 'STRING');
     $start_before = $app->input->get('start_before', '', 'STRING');
     $includePast = $app->input->get('includePast', 0, 'INT');
     $limitstart = $app->input->get('limitstart', 0, 'INT');
     $limit = $app->input->get('limit', 20, 'INT');
     $categoryid = $app->input->get('categoryid', 0, 'INT');
     $mapp = new EasySocialApiMappingHelper();
     //if date is given then choose appropriate switch case for that.
     //for calender date
     if (!empty($cdates)) {
         $dates = $cdates;
     }
     if (!empty($dates)) {
         $check = strtotime($dates);
         if ($dates == date('Y-m', $check)) {
             $filter = 'month';
         } else {
             if ($dates == date('Y', $check)) {
                 $filter = 'year';
             } else {
                 if ($dates == date('Y-m-d', $check)) {
                     $filter = 'allDate';
                 } else {
                     $res->message = "Date format is invalid";
                     $res->status = 0;
                     return $res;
                 }
             }
         }
     }
     //checking wheather the date is in date range or it is past date.then choose appropriate case.
     if (!empty($start_date) || !empty($end_date) || !empty($start_before)) {
         if ($start_before) {
             $filter = 'past';
         } else {
             $filter = 'range';
         }
     }
     //get events with filter.
     switch ($filter) {
         case 'all':
             $featuredOptions = array('featured' => true, 'type' => array(SOCIAL_EVENT_TYPE_PUBLIC, SOCIAL_EVENT_TYPE_PRIVATE));
             // We do not want to include past events here
             if (!$includePast) {
                 $options['ongoing'] = true;
                 $options['upcoming'] = true;
             }
             break;
         case 'featured':
             $options['featured'] = true;
             break;
         case 'invited':
             $options['gueststate'] = SOCIAL_EVENT_GUEST_INVITED;
             $options['guestuid'] = $log_user;
             $options['type'] = 'all';
             // We do not want to include past events here
             if (!$includePast) {
                 $options['ongoing'] = true;
                 $options['upcoming'] = true;
             }
             break;
         case 'mine':
             $options['creator_uid'] = $log_user;
             $options['creator_type'] = SOCIAL_TYPE_USER;
             $options['type'] = 'all';
             // We do not want to include past events here
             if (!$includePast) {
                 $options['ongoing'] = true;
                 $options['upcoming'] = true;
             }
             break;
         case 'range':
             $options['start-after'] = $start_date;
             $options['start-before'] = $end_date;
             break;
         case 'past':
             $options['start-before'] = $start_before;
             $options['ordering'] = 'created';
             $options['direction'] = 'desc';
             break;
         case 'allDate':
             $data = $this->dfilter($dates);
             $options['start-after'] = $data['start-after'];
             $options['start-before'] = $data['start-before'];
             break;
         case 'year':
             $data = $this->dfilter($dates);
             $options['start-after'] = $data['start-after'];
             $options['start-before'] = $data['start-before'];
             break;
         case 'month':
             $data = $this->dfilter($dates);
             $options['start-after'] = $data['start-after'];
             $options['start-before'] = $data['start-before'];
             break;
         case 'category':
             $category = FD::table('EventCategory');
             $category->load($categoryid);
             $activeCategory = $category;
             $options['category'] = $category->id;
             break;
     }
     $eventResult = $event->getEvents($options);
     if (empty($eventResult)) {
         $res->message = "No events found.";
         $res->status = 0;
         return $res;
     }
     $eventResult = array_slice($eventResult, $limitstart, $limit);
     $event_list = $mapp->mapItem($eventResult, 'event', $log_user);
     return $event_list;
 }
Пример #19
0
 function getStream()
 {
     //init variable
     $app = JFactory::getApplication();
     //code for get non sef urls
     $jrouter = JFactory::getApplication()->getRouter();
     $jrouter->setMode(JROUTER_MODE_RAW);
     $log_user = JFactory::getUser($this->plugin->get('user')->id);
     $group_id = $app->input->get('group_id', 0, 'INT');
     $id = $this->plugin->get('user')->id;
     $target_user = $app->input->get('target_user', 0, 'INT');
     $limit = $app->input->get('limit', 10, 'INT');
     $startlimit = $app->input->get('limitstart', 0, 'INT');
     $filter = $app->input->get('filter', 'everyone', 'STRING');
     //get tag
     $tag = $app->input->get('tag', '', 'STRING');
     $config = JFactory::getConfig();
     $sef = $config->set('sef', 0);
     //print_r($config);die("in api");
     //map object
     $mapp = new EasySocialApiMappingHelper();
     // If user id is not passed in, return logged in user
     if (!$target_user) {
         $target_user = $id;
     }
     // Get the stream library
     $stream = FD::stream();
     $options = array('userId' => $target_user, 'startlimit' => $startlimit, 'limit' => $limit);
     if ($group_id) {
         $options = array('clusterId' => $group_id, 'clusterType' => SOCIAL_TYPE_GROUP, 'startlimit' => $startlimit, 'limit' => $limit);
     }
     if ($target_user == $id) {
         switch ($filter) {
             case 'everyone':
                 $options['guest'] = true;
                 $options['ignoreUser'] = true;
                 break;
             case 'following':
             case 'follow':
                 $options['type'] = 'follow';
                 break;
             case 'bookmarks':
                 $options['guest'] = true;
                 $options['type'] = 'bookmarks';
             case 'me':
                 // nohting to set
                 break;
             case 'hashtag':
                 //$tag = '';
                 $options['tag'] = $tag;
                 break;
             case 'sticky':
                 //$options['guest'] = true;
                 $options['type'] = 'sticky';
                 break;
             default:
                 $options['context'] = $filter;
                 break;
         }
     }
     $stream->get($options);
     $result = $stream->toArray();
     $data = array();
     $data11 = $mapp->mapItem($result, 'stream', $target_user);
     //set back sef
     $jrouter->setMode(JROUTER_MODE_SEF);
     return $data11;
 }
Пример #20
0
 function getFollowers()
 {
     //init variable
     $app = JFactory::getApplication();
     $user = $this->plugin->get('user')->id;
     $target_user = $app->input->get('target_user', 0, 'INT');
     $type = $app->input->get('type', 'follower', 'STRING');
     $options = array();
     $options['limitstart'] = $app->input->get('limitstart', 0, 'INT');
     $options['limit'] = $app->input->get('limit', 10, 'INT');
     // Load friends model.
     $foll_model = FD::model('Followers');
     $frnd_mod = FD::model('Friends');
     $main_mod = new EasySocialModel();
     //set limitstart
     $main_mod->setUserState('limitstart', $options['limitstart']);
     $foll_model->setUserState('limitstart', $options['limitstart']);
     if (!$target_user) {
         $target_user = $user;
     }
     $data = array();
     $mapp = new EasySocialApiMappingHelper();
     $raw_followers = array();
     if ($type == 'following') {
         $raw_followers = $foll_model->getFollowing($target_user, $options);
     } else {
         $raw_followers = $foll_model->getFollowers($target_user, $options);
     }
     //$frnd_list = $this->basefrndObj($ttl_list);
     $fllowers_list = $mapp->mapItem($raw_followers, 'user', $user);
     //get other data
     foreach ($fllowers_list as $ky => $lval) {
         $lval->mutual = $frnd_mod->getMutualFriendCount($user, $lval->id);
         $lval->isFriend = $frnd_mod->isFriends($users, $lval->id);
     }
     $data['data'] = $fllowers_list;
     return $data;
 }
Пример #21
0
 function getFriends()
 {
     $avt_model = FD::model('Avatars');
     $default = $avt_model->getDefaultAvatars(0, $type = SOCIAL_TYPE_PROFILES);
     //init variable
     $app = JFactory::getApplication();
     $user = JFactory::getUser($this->plugin->get('user')->id);
     $userid = $app->input->get('target_user', 0, 'INT');
     $filter = $app->input->get('filter', NULL, 'STRING');
     $search = $app->input->get('search', '', 'STRING');
     $limit = $app->input->get('limit', 10, 'INT');
     $limitstart = $app->input->get('limitstart', 0, 'INT');
     $options['limit'] = $limit;
     $options['limitstart'] = $limitstart;
     $mssg = '';
     $flag = 1;
     $mapp = new EasySocialApiMappingHelper();
     if ($userid == 0) {
         $userid = $user->id;
     }
     $frnd_mod = FD::model('Friends');
     $frnd_mod->setState('limit', $limit);
     $frnd_mod->setState('limitstart', $limitstart);
     $ttl_list = array();
     switch ($filter) {
         case 'pending':
             //get the total pending friends.
             $options['state'] = JText::_('SOCIAL_FRIENDS_STATE_PENDING');
             $mssg = "You have no pending request";
             break;
         case 'all':
             //getting all friends
             $options['state'] = JText::_('SOCIAL_FRIENDS_STATE_FRIENDS');
             $mssg = "You have no friends";
             break;
         case 'request':
             //getting sent requested friends.
             $options['state'] = JText::_('SOCIAL_FRIENDS_STATE_PENDING');
             $options['isRequest'] = true;
             $mssg = "You have no sent request";
             break;
         case 'suggest':
             //getting suggested friends
             $sugg_list = $frnd_mod->getSuggestedFriends($userid);
             foreach ($sugg_list as $sfnd) {
                 $ttl_list[] = $sfnd->friend;
             }
             if (empty($ttl_list)) {
                 $flag = 1;
             } else {
                 $flag = 0;
             }
             $mssg = "You have no suggetions";
             break;
         case 'invites':
             //getiing invited friends
             $invites['data'] = $frnd_mod->getInvitedUsers($userid);
             $mssg = "You have no invitations";
             if (empty($invites['data'])) {
                 $invites['data']['message'] = $mssg;
                 $invites['data']['status'] = false;
             }
             return $invites;
             break;
     }
     // if search word present then search user as per term and given id
     if (empty($search) && empty($ttl_list) && $flag != 1) {
         $ttl_list = $frnd_mod->getFriends($userid, $options);
     } else {
         if (!empty($search) && empty($filter)) {
             $ttl_list = $frnd_mod->search($userid, $search, 'username');
         } else {
             $ttl_list = $frnd_mod->getFriends($userid, $options);
         }
     }
     $frnd_list['data'] = $mapp->mapItem($ttl_list, 'user', $userid);
     $frnd_list['data'] = $mapp->frnd_nodes($frnd_list['data'], $user);
     //get other data
     foreach ($frnd_list['data'] as $ky => $lval) {
         //get mutual friends of given user
         if ($lval->id != $user->id) {
             $lval->mutual = $frnd_mod->getMutualFriendCount($user->id, $lval->id);
             //if( $user->id != $lval->id )
             $lval->isFriend = $frnd_mod->isFriends($user->id, $lval->id);
             $lval->isself = false;
             //$lval->mutual_frnds = $frnd_mod->getMutualFriends($userid,$lval->id);
         } else {
             $lval->mutual = $frnd_mod->getMutualFriendCount($userid, $lval->id);
             $lval->isFriend = $frnd_mod->isFriends($userid, $lval->id);
             $lval->isself = true;
         }
         //$lval->mutual = $frnd_mod->getMutualFriendCount($user->id,$lval->id);
         //$lval->isFriend = $frnd_mod->isFriends($user->id,$lval->id);
     }
     //if data is empty givin respective message and status.
     if (empty($frnd_list['data'])) {
         $frnd_list['data']['message'] = $mssg;
         $frnd_list['data']['status'] = false;
     }
     //pending
     $frnd_list['status']['pendings'] = $frnd_mod->getTotalPendingFriends($userid);
     //all frined
     $frnd_list['status']['allfriend'] = $frnd_mod->getTotalFriends($userid, array('state' => SOCIAL_FRIENDS_STATE_FRIENDS));
     //suggested
     $frnd_list['status']['suggested'] = $frnd_mod->getSuggestedFriends($userid, null, true);
     //request sent
     $frnd_list['status']['sentreq'] = $frnd_mod->getTotalRequestSent($userid);
     //invited
     $frnd_list['status']['invite'] = $frnd_mod->getTotalInvites($userid);
     return $frnd_list;
 }