Упоминание пользователя
в посте. Например, @Vasya
Откроем файл Post.php
<?php
class
Post {
public
static function createPost($postbody, $loggedInUserId,
$profileUserId) {
//
валидация формы
if
(strlen($postbody) > 160 || strlen($postbody) < 1) {
die('Incorrect length!');
}
//
чтобы ты мог отправлять посты только
от своего имени!
if
($loggedInUserId == $profileUserId) {
//
0 - кол-во лайков по умолчанию
DB::query('INSERT INTO posts VALUES (:id,
:postbody, NOW(), :userid, 0, \'\')', array(':id'=>null,
':postbody'=>$postbody, ':userid'=>$profileUserId));
}
else {
die('Incorrect user!');
}
}
public
static function createImgPost($postbody, $loggedInUserId,
$profileUserId) {
//
валидация формы
if
(strlen($postbody) > 160) {
die('Incorrect length!');
}
//
чтобы ты мог отправлять посты только
от своего имени!
if
($loggedInUserId == $profileUserId) {
//
0 - кол-во лайков по умолчанию
DB::query('INSERT INTO posts VALUES (:id,
:postbody, NOW(), :userid, 0, \'\')', array(':id'=>null,
':postbody'=>$postbody, ':userid'=>$profileUserId));
$postid = DB::query('SELECT id FROM posts WHERE
user_id=:user_id ORDER BY id DESC LIMIT 1',
array(':user_id'=>$loggedInUserId))[0]['id'];
return
$postid;
}
else {
die('Incorrect user!');
}
}
public
static function likePost($postId, $likerId) {
if
(!DB::query('SELECT user_id FROM post_likes WHERE post_id=:postid AND
user_id=:userid', array(':postid'=>$postId, ':userid'=>$likerId)))
{
DB::query('UPDATE posts SET likes=likes+1 WHERE
id=:postid', array(':postid'=>$postId));
DB::query('INSERT INTO post_likes VALUES (:id,
:postid, :userid)', array(':id'=>null, ':postid'=>$postId,
':userid'=>$likerId));
}
else {
DB::query('UPDATE posts SET likes=likes-1 WHERE
id=:postid', array(':postid'=>$postId));
DB::query('DELETE FROM post_likes WHERE
post_id=:postid AND user_id=:userid', array(':postid'=>$postId,
':userid'=>$likerId));
}
}
public static
function link_add($text) {
$text =
explode(" ", $text); // explode — Разбивает
строку с помощью разделителя
$newstring
= "";
foreach
($text as $word) {
//
если первый символ слова @
if
(substr( $word, 0, 1) == "@") {
$newstring
.= "<a href='profile.php?username=".substr($word,
1)."'>".htmlspecialchars($word)." </a>";
// ссылка на профиль пользователя
}
else {
$newstring
.= htmlspecialchars($word)." ";
}
}
return
$newstring;
}
public
static function displayPosts($userid, $username, $loggedInUserId) {
//
посты
$dbposts
= DB::query('SELECT * FROM posts WHERE user_id=:userid ORDER BY id
DESC', array(':userid'=>$userid));
$posts
= "";
foreach($dbposts as $p) {
if
(!DB::query('SELECT post_id FROM post_likes WHERE post_id=:postid AND
user_id=:userid', array(':postid'=>$p['id'],
':userid'=>$loggedInUserId))) {
//print_r($p);
$posts .= "<img
src='".$p['postimg']."'>".(self::link_add($p['body']))."
<form
action='profile.php?username=$username&postid=".$p['id']."'
method='post'>
<input type='submit' name='like'
value='Like'/>
<span>".$p['likes']."
likes</span>
</form>
<hr /><br />";
}
else {
$posts .= "<img
src='".$p['postimg']."'>".(self::link_add($p['body']))."
<form
action='profile.php?username=$username&postid=".$p['id']."'
method='post'>
<input type='submit' name='unlike'
value='Unlike'/>
<span>".$p['likes']."
likes</span>
</form>
<hr /><br />";
}
}
return
$posts;
}
}
?>
Комментариев нет:
Отправить комментарий