Fetch informations about pages like

This commit is contained in:
Pierre 2017-12-29 08:14:38 +01:00
parent 22d2ea2c1c
commit 73cb430db5
3 changed files with 83 additions and 0 deletions

View File

@ -139,6 +139,11 @@ class userController
else else
//User friends won't be displayed //User friends won't be displayed
$userInfos["number_friends"] = 0; $userInfos["number_friends"] = 0;
//Get some informations only is user is signed in
if(user_signed_in()){
$userInfos["user_like_page"] = CS::get()->components->likes->is_liking(userID, $userID, Likes::LIKE_USER);
}
//Return user informations //Return user informations
return $userInfos; return $userInfos;

View File

@ -0,0 +1,75 @@
<?php
/**
* Likes class
*
* @author Pierre HUBERT
*/
class Likes {
/**
* Database table name
*/
const LIKES_TABLE = "aime";
/**
* Kind of likes
*/
const LIKE_USER = "user";
const LIKE_POST = "post";
const LIKE_COMMENT = "comment";
/**
* Translation of the kinds of like for the database
*/
const KINDS_DB = array(
Likes::LIKE_USER => "page",
Likes::LIKE_POST => "texte",
Likes::LIKE_COMMENT => "commentaire"
);
/**
* Count the number of likes for a specific component
*
* @param int $id The ID of the component to count
* @param string $kind The kind of the component
* @return int The number of likes of the components
*/
public function count(int $id, string $kind) : int {
//Perform a database request
return CS::get()->db->count(
$this::LIKES_TABLE,
"WHERE ID_type = ? AND type = ?",
array($id, $this::KINDS_DB[$kind])
);
}
/**
* Check whether user likes or not somethind
*
* @param int $userID The ID of the user
* @param int $id The ID of the thing to check
* @param string $kind The kind of the thing to check
* @return bool True if the user likes / false else
*/
public function is_liking(int $userID, int $id, string $kind) : bool {
//User "0" does not like content
if($userID == 0)
return false;
//Perform check on database
return CS::get()->db->count(
$this::LIKES_TABLE,
"WHERE ID_type = ? AND type = ? AND ID_personne = ?",
array($id, $this::KINDS_DB[$kind], $userID)
) == 1;
}
}
//Register class
Components::register("likes", new Likes());

View File

@ -260,6 +260,9 @@ class User{
//Add background image url //Add background image url
$return['backgroundImage'] = CS::get()->components->backgroundImage->getPath($return['userID']); $return['backgroundImage'] = CS::get()->components->backgroundImage->getPath($return['userID']);
//Get the number of likes of the page
$return['pageLikes'] = CS::get()->components->likes->count($return['userID'], Likes::LIKE_USER);
} }
//Return result //Return result