mirror of
https://github.com/pierre42100/ComunicAPI
synced 2024-11-23 13:59:29 +00:00
Latest posts thread can includes groups posts.
This commit is contained in:
parent
af304d7409
commit
a9f4afdcbc
@ -98,8 +98,11 @@ class PostsController {
|
||||
else
|
||||
$startFrom = 0; //No start point
|
||||
|
||||
//Check whether groups posts should be included or not
|
||||
$include_groups = isset($_POST['include_groups']) ? postBool("include_groups") : FALSE;
|
||||
|
||||
//Get the post of the user
|
||||
$posts = CS::get()->components->posts->get_latest(userID, $startFrom, 10);
|
||||
$posts = CS::get()->components->posts->get_latest(userID, $startFrom, 10, $include_groups);
|
||||
|
||||
//Return parsed list of posts
|
||||
return $this->parsePostsList($posts);
|
||||
|
@ -254,6 +254,29 @@ class GroupsComponent {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the list of groups a user is following
|
||||
*
|
||||
* @param int $userID The ID of the target group
|
||||
* @return array The IDs of the groups followed by the user
|
||||
*/
|
||||
public function getListFollowedByUser(int $userID) : array {
|
||||
|
||||
$result = db()->select(
|
||||
self::GROUPS_MEMBERS_TABLE,
|
||||
"WHERE user_id = ? AND following = 1",
|
||||
array($userID),
|
||||
array("groups_id")
|
||||
);
|
||||
|
||||
//Parse the list of IDs
|
||||
$list = array();
|
||||
foreach($result as $el)
|
||||
$list[] = $el["groups_id"];
|
||||
return $list;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Count the number of a kind of membership in a group
|
||||
*
|
||||
|
@ -218,9 +218,12 @@ class Posts {
|
||||
* @param int $userID The ID of the user requesting its list of posts
|
||||
* @param int $startPoint The startpoint of the research (default: 0 = none)
|
||||
* @param int $limit The limit of the research (default: 10)
|
||||
* @param bool $include_groups Specify whether groups post can be selected
|
||||
* too or not
|
||||
* @return array The list of newest posts for the user
|
||||
*/
|
||||
public function get_latest(int $userID, int $startPoint = 0, int $limit = 10) : array {
|
||||
public function get_latest(int $userID, int $startPoint = 0,
|
||||
int $limit = 10, bool $include_groups) : array {
|
||||
|
||||
//Check the value of limit (security)
|
||||
if($limit < 1){
|
||||
@ -236,7 +239,7 @@ class Posts {
|
||||
|
||||
//Prepare the request on the database
|
||||
//Add the visibility level conditions
|
||||
$conditions = "WHERE group_id = 0 AND niveau_visibilite <= ? AND (ID_personne = ?";
|
||||
$conditions = "WHERE (group_id = 0 AND niveau_visibilite <= ? AND (ID_personne = ?";
|
||||
$dataConds = array($visibilityLevel, $userID);
|
||||
|
||||
//Process the list of friends of the user
|
||||
@ -247,7 +250,21 @@ class Posts {
|
||||
}
|
||||
|
||||
//Close user list conditions
|
||||
$conditions .= ")";
|
||||
$conditions .= "))";
|
||||
|
||||
//Check whether posts from groups should be included too
|
||||
if($include_groups){
|
||||
|
||||
//Get the list of groups the user is following
|
||||
$groups = components()->groups->getListFollowedByUser($userID);
|
||||
|
||||
//Process the list of groups
|
||||
foreach($groups as $groupID){
|
||||
$conditions .= " OR (group_id = ?)";
|
||||
$dataConds[] = $groupID;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Add startpoint condition if required (and get older messages)
|
||||
if($startPoint != 0){
|
||||
|
Loading…
Reference in New Issue
Block a user