diff --git a/userReplies.php b/userReplies.php new file mode 100644 index 0000000..893ad5a --- /dev/null +++ b/userReplies.php @@ -0,0 +1,161 @@ +prepare('SELECT * FROM users INNER JOIN profiles ON profiles.user_id = users.user_id WHERE user_name = ? LIMIT 1'); +$get_user->bind_param('s', $action); +$get_user->execute(); +$user_result = $get_user->get_result(); + +if ($user_result->num_rows == 0){ + printHeader(''); + noUser(); +} else { + + $user = $user_result->fetch_assoc(); + + if(!((isset($_GET['offset']) && is_numeric($_GET['offset'])) && isset($_GET['dateTime']))){ + + $tabTitle = 'Ziiverse - '. htmlspecialchars($user['nickname'], ENT_QUOTES) .'\'s Profile'; + + printHeader(''); + + echo ' +
+
+

'. htmlspecialchars($user['nickname'], ENT_QUOTES) .'\'s Replies

+
'; + + $get_replies = $dbc->prepare('SELECT * FROM replies WHERE reply_by_id = ? AND deleted = 0 ORDER BY date_time DESC LIMIT 20'); + $get_replies->bind_param('i', $user['user_id']); + + } else { + $offset = ($_GET['offset'] * 25); + $dateTime = htmlspecialchars($_GET['dateTime']); + $get_replies = $dbc->prepare('SELECT * FROM replies WHERE reply_by_id = ? AND deleted = 0 AND date_time < ? ORDER BY date_time DESC LIMIT 20 OFFSET ?'); + $get_replies->bind_param('isi', $user['user_id'], $dateTime, $offset); + } + + $get_replies->execute(); + $replies_result = $get_replies->get_result(); + + if(!$replies_result->num_rows == 0){ + + while($replies = $replies_result->fetch_array()){ + + $get_user_post = $dbc->prepare('SELECT users.* FROM users, posts WHERE users.user_id = posts.post_by_id AND posts.id = ? LIMIT 1'); + $get_user_post->bind_param('i', $replies['reply_post']); + $get_user_post->execute(); + $user_post_result = $get_user_post->get_result(); + $user_post = $user_post_result->fetch_assoc(); + + $get_reply_post = $dbc->prepare('SELECT * FROM posts WHERE id = ? LIMIT 1'); + $get_reply_post->bind_param('i', $replies['reply_post']); + $get_reply_post->execute(); + $reply_post_result = $get_reply_post->get_result(); + $reply_post = $reply_post_result->fetch_assoc(); + + $get_reply_user = $dbc->prepare('SELECT * FROM users WHERE user_id = ? LIMIT 1'); + $get_reply_user->bind_param('i', $replies['reply_by_id']); + $get_reply_user->execute(); + $reply_user_result = $get_reply_user->get_result(); + $reply_user = $reply_user_result->fetch_assoc(); + + echo '
+

+ Comment on '. htmlspecialchars($user_post['nickname'], ENT_QUOTES) .'\'s Post +

+

'. htmlspecialchars($reply_user['nickname'], ENT_QUOTES) .'

' . humanTiming(strtotime($replies['date_time'])) . '

'; + + if (!empty($replies['reply_image'])){ + echo '
'; + } + + echo '
' . (mb_strlen($replies['text']) > 199 ? mb_substr($replies['text'],0,200) . '...' : $replies['text']) . '
'; + + $yeah_count = $dbc->prepare('SELECT COUNT(yeah_by) FROM yeahs WHERE type = "reply" AND yeah_post = ?'); + $yeah_count->bind_param('i', $replies['reply_id']); + $yeah_count->execute(); + $result_count = $yeah_count->get_result(); + $yeah_amount = $result_count->fetch_assoc(); + + $nah_count = $dbc->prepare('SELECT COUNT(nah_by) FROM nahs WHERE type = 1 AND nah_post = ?'); + $nah_count->bind_param('i', $replies['reply_id']); + $nah_count->execute(); + $result_count = $nah_count->get_result(); + $nah_amount = $result_count->fetch_assoc(); + + $yeahs = $yeah_amount['COUNT(yeah_by)'] - $nah_amount['COUNT(nah_by)']; + + echo ''; + + + echo ''; + + + + echo '
'. $yeahs .'
'; + } + + } else { + + if(!((isset($_GET['offset']) && is_numeric($_GET['offset'])) && isset($_GET['dateTime']))){ + + echo '

There are no replies yet.

'; + } + } +} \ No newline at end of file diff --git a/userYeahs.php b/userYeahs.php new file mode 100644 index 0000000..437cddf --- /dev/null +++ b/userYeahs.php @@ -0,0 +1,193 @@ +prepare('SELECT * FROM users INNER JOIN profiles ON profiles.user_id = users.user_id WHERE user_name = ? LIMIT 1'); +$get_user->bind_param('s', $action); +$get_user->execute(); +$user_result = $get_user->get_result(); + +if ($user_result->num_rows == 0) { + printHeader(''); + noUser(); +} else { + + $user = $user_result->fetch_assoc(); + if (!((isset($_GET['offset']) && is_numeric($_GET['offset'])) && isset($_GET['dateTime']))) { + + $tabTitle = 'Ziiverse - '. htmlspecialchars($user['nickname'], ENT_QUOTES) .'\'s Profile'; + + printHeader(''); + + echo ' +
+
+

'. htmlspecialchars($user['nickname'], ENT_QUOTES) .'\'s Yeahs

+
+
'; + + $get_yeahs = $dbc->prepare('SELECT * FROM yeahs WHERE yeah_by = ? ORDER BY yeah_id DESC LIMIT 20'); + $get_yeahs->bind_param('i', $user['user_id']); + + } else { + $offset = ($_GET['offset'] * 25); + $dateTime = htmlspecialchars($_GET['dateTime']); + $get_yeahs = $dbc->prepare('SELECT * FROM yeahs WHERE yeah_by = ? AND date_time < ? ORDER BY date_time DESC LIMIT 20 OFFSET ?'); + $get_yeahs->bind_param('isi', $user['user_id'], $dateTime, $offset); + } + + $get_yeahs->execute(); + $yeahs_result = $get_yeahs->get_result(); + + if (!$yeahs_result->num_rows == 0) { + + while ($yeahs = $yeahs_result->fetch_array()) { + + if ($yeahs['type'] == "post") { + + $get_posts = $dbc->prepare('SELECT * FROM posts INNER JOIN titles ON title_id = post_title INNER JOIN users ON user_id = post_by_id WHERE id = ? AND deleted = 0 LIMIT 1'); + $get_posts->bind_param('i', $yeahs['yeah_post']); + $get_posts->execute(); + $posts_result = $get_posts->get_result(); + if ($posts_result->num_rows==0) { + continue; + } + $posts = $posts_result->fetch_assoc(); + + echo '
+

+ + '. $posts['title_name'] .'

'; + + printPost($posts, 1); + + } else { + + //replies + $get_replies = $dbc->prepare('SELECT * FROM replies WHERE reply_id = ? LIMIT 1'); + $get_replies->bind_param('i', $yeahs['yeah_post']); + $get_replies->execute(); + $replies_result = $get_replies->get_result(); + $replies = $replies_result->fetch_assoc(); + + $get_user_post = $dbc->prepare('SELECT users.* FROM users, posts WHERE users.user_id = posts.post_by_id AND posts.id = ? LIMIT 1'); + $get_user_post->bind_param('i', $replies['reply_post']); + $get_user_post->execute(); + $user_post_result = $get_user_post->get_result(); + $user_post = $user_post_result->fetch_assoc(); + + $get_reply_post = $dbc->prepare('SELECT * FROM posts WHERE id = ? LIMIT 1'); + $get_reply_post->bind_param('i', $replies['reply_post']); + $get_reply_post->execute(); + $reply_post_result = $get_reply_post->get_result(); + $reply_post = $reply_post_result->fetch_assoc(); + + $get_reply_user = $dbc->prepare('SELECT * FROM users WHERE user_id = ? LIMIT 1'); + $get_reply_user->bind_param('i', $replies['reply_by_id']); + $get_reply_user->execute(); + $reply_user_result = $get_reply_user->get_result(); + $reply_user = $reply_user_result->fetch_assoc(); + + echo '
+

+ Comment on '. htmlspecialchars($user_post['nickname'], ENT_QUOTES) .'\'s Post +

+

'. htmlspecialchars($reply_user['nickname'], ENT_QUOTES) .'

' . + humanTiming(strtotime($replies['date_time'])) . '

'; + + if (!empty($replies['reply_image'])) { + echo '
'; + } + + echo '
'. (mb_strlen($replies['text']) > 199 ? mb_substr($replies['text'],0,200) . '...' : $replies['text']) .'
'; + $yeah_count = $dbc->prepare('SELECT COUNT(yeah_by) FROM yeahs WHERE type = "reply" AND yeah_post = ?'); + $yeah_count->bind_param('i', $replies['reply_id']); + $yeah_count->execute(); + $result_count = $yeah_count->get_result(); + $yeah_amount = $result_count->fetch_assoc(); + + $nah_count = $dbc->prepare('SELECT COUNT(nah_by) FROM nahs WHERE type = 1 AND nah_post = ?'); + $nah_count->bind_param('i', $replies['reply_id']); + $nah_count->execute(); + $result_count = $nah_count->get_result(); + $nah_amount = $result_count->fetch_assoc(); + + $yeahs = $yeah_amount['COUNT(yeah_by)'] - $nah_amount['COUNT(nah_by)']; + + echo ''; + + + + echo ''; + + echo '
'. $yeahs .'
'; + + echo '
'; + } + } + + } else { + + if (!((isset($_GET['offset']) && is_numeric($_GET['offset'])) && isset($_GET['dateTime']))) { + echo ' +
+

There are no posts with Yeahs yet.

+
+
'; + } + } +} \ No newline at end of file diff --git a/users.php b/users.php new file mode 100644 index 0000000..00afa71 --- /dev/null +++ b/users.php @@ -0,0 +1,88 @@ +prepare('SELECT * FROM users INNER JOIN profiles ON profiles.user_id = users.user_id WHERE user_name = ? LIMIT 1'); +$get_user->bind_param('s', $action); +$get_user->execute(); +$user_result = $get_user->get_result(); + +if ($user_result->num_rows == 0){ + printHeader(''); + noUser(); +} else { + + $user = $user_result->fetch_assoc(); + + if(!((isset($_GET['offset']) && is_numeric($_GET['offset'])) && isset($_GET['dateTime']))){ + + $tabTitle = 'Ziiverse - '. htmlspecialchars($user['nickname'], ENT_QUOTES) .'\'s Profile'; + + if (empty($_SESSION['signed_in']) || $_SESSION['user_id'] == $user['user_id']) {printHeader(1);} else {printHeader('');} + + echo '
+

+ + '. htmlspecialchars($user['nickname'], ENT_QUOTES) .'\'s Posts +

+
+
'; + + if (!empty($_SESSION['signed_in']) && $user['user_id'] == $_SESSION['user_id']) { + $get_posts = $dbc->prepare('SELECT * FROM posts INNER JOIN titles ON title_id = post_title WHERE post_by_id = ? AND deleted < 2 ORDER BY posts.date_time DESC LIMIT 25'); + } else { + $get_posts = $dbc->prepare('SELECT * FROM posts INNER JOIN titles ON title_id = post_title WHERE post_by_id = ? AND deleted = 0 ORDER BY posts.date_time DESC LIMIT 25'); + } + $get_posts->bind_param('i', $user['user_id']); + + } else { + + $offset = ($_GET['offset'] * 25); + $dateTime = htmlspecialchars($_GET['dateTime']); + if ($user['user_id'] == $_SESSION['user_id']) { + $get_posts = $dbc->prepare('SELECT * FROM posts INNER JOIN titles ON title_id = post_title WHERE post_by_id = ? AND posts.date_time < ? AND deleted < 2 ORDER BY posts.date_time DESC LIMIT 25 OFFSET ?'); + } else { + $get_posts = $dbc->prepare('SELECT * FROM posts INNER JOIN titles ON title_id = post_title WHERE post_by_id = ? AND posts.date_time < ? AND deleted = 0 ORDER BY posts.date_time DESC LIMIT 25 OFFSET ?'); + } + $get_posts->bind_param('isi', $user['user_id'], $dateTime, $offset); + } + + $get_posts->execute(); + $posts_result = $get_posts->get_result(); + + if(!$posts_result->num_rows == 0){ + + echo '
'; + + while($posts = $posts_result->fetch_array()){ + + echo '
+

+ + '. $posts['title_name'] .'

'; + + printPost(array_merge($posts, $user), 1); + } + echo '
'; + + } else { + if(!(isset($_GET['offset']) && is_numeric($_GET['offset']) && isset($_GET['dateTime']))){ + echo ' +
+
+

No posts have been made yet.

+
+
'; + } + } +} +?> + \ No newline at end of file diff --git a/verifiedPosts.php b/verifiedPosts.php new file mode 100644 index 0000000..58ddf0f --- /dev/null +++ b/verifiedPosts.php @@ -0,0 +1,101 @@ +'; + +if(!empty($_SESSION['signed_in'])){ + $get_user = $dbc->prepare('SELECT * FROM users WHERE user_id = ? LIMIT 1'); + $get_user->bind_param('i', $_SESSION['user_id']); + $get_user->execute(); + $user_result = $get_user->get_result(); + $user = $user_result->fetch_assoc(); + userContent($user, ""); +} + +sidebarSetting(); +echo '
'; + +echo '
+
+ + Posts from Verified Users + Get the latest news here! + + +
+
'; + +$get_posts = $dbc->prepare('SELECT posts.* FROM posts, users WHERE posts.post_by_id = users.user_id AND users.user_level > 1 AND posts.deleted = 0 ORDER BY posts.date_time DESC LIMIT 25'); +$get_posts->execute(); +$posts_result = $get_posts->get_result(); + +while($posts = $posts_result->fetch_array()){ + $get_title = $dbc->prepare('SELECT title_id, title_name, title_icon FROM titles WHERE title_id = ? LIMIT 1'); + $get_title->bind_param('i', $posts['post_title']); + $get_title->execute(); + $title_result = $get_title->get_result(); + $title = $title_result->fetch_assoc(); + + $get_user = $dbc->prepare('SELECT users.*, profiles.* FROM users INNER JOIN profiles ON profiles.user_id = ? WHERE users.user_id = ?'); + $get_user->bind_param('ii', $posts['post_by_id'], $posts['post_by_id']); + $get_user->execute(); + $user_result = $get_user->get_result(); + $user = $user_result->fetch_assoc(); + + echo '
+

+ '. $title['title_name'] .'

+
'; + + $check_followed = $dbc->prepare('SELECT * FROM follows WHERE follow_by = ? AND follow_to = ? LIMIT 1'); + $check_followed->bind_param('ii', $_SESSION['user_id'], $user['user_id']); + $check_followed->execute(); + $followed_result = $check_followed->get_result(); + + if (($followed_result->num_rows == 0) && ($_SESSION['user_id'] != $user['user_id']) && !empty($_SESSION['signed_in'])){ + echo ' + '; + } + + echo '

'. htmlspecialchars($user['nickname'], ENT_QUOTES) .'

+

'. $user['bio'] .'

+
'; + + if (!empty($posts['post_image'])){ + echo '
'; + } + + + echo '
'. (mb_strlen($posts['text']) > 199 ? htmlspecialchars(mb_substr($posts['text'],0,200), ENT_QUOTES) .'...' : htmlspecialchars($posts['text'], ENT_QUOTES)) . '
'; + + + echo '

'. humanTiming(strtotime($posts['date_time'])) .'

'; + + $yeah_count = $dbc->prepare('SELECT COUNT(yeah_by) FROM yeahs WHERE type = "post" AND yeahs.yeah_post = ?'); + $yeah_count->bind_param('i', $posts['id']); + $yeah_count->execute(); + $result_count = $yeah_count->get_result(); + $yeah_amount = $result_count->fetch_assoc(); + + echo '
' . $yeah_amount['COUNT(yeah_by)'] . '
'; + + $reply_count = $dbc->prepare('SELECT COUNT(reply_id) FROM replies WHERE reply_post = ? AND deleted = 0'); + $reply_count->bind_param('i', $posts['id']); + $reply_count->execute(); + $result_count = $reply_count->get_result(); + $reply_amount = $result_count->fetch_assoc(); + + echo '
' . $reply_amount['COUNT(reply_id)'] . '
+
'; +} \ No newline at end of file diff --git a/yeah.php b/yeah.php new file mode 100644 index 0000000..f8860fb --- /dev/null +++ b/yeah.php @@ -0,0 +1,69 @@ +prepare('INSERT INTO yeahs (yeah_post, type, date_time, yeah_by) VALUES (?, ?, NOW(), ?)'); + $yeah->bind_param('isi', $_POST['postId'], $_POST['yeahType'], $_SESSION['user_id']); + $yeah->execute(); + + $get_user = $dbc->prepare('SELECT * FROM posts INNER JOIN profiles ON user_id = post_by_id WHERE id = ?'); + $get_user->bind_param('i', $_POST['postId']); + $get_user->execute(); + $user_result = $get_user->get_result(); + $user = $user_result->fetch_assoc(); + + if ($user['yeah_notifs'] == 1) { + notify($user['post_by_id'], 0, $_POST['postId']); + } + + $check_nah = $dbc->prepare('SELECT * FROM nahs WHERE nah_post = ? AND type = 0 AND nah_by = ?'); + $check_nah->bind_param('ii', $_POST['postId'], $_SESSION['user_id']); + $check_nah->execute(); + $nah_result = $check_nah->get_result(); + + if (!$nah_result->num_rows == 0) { + $delete_nah = $dbc->prepare('DELETE FROM nahs WHERE nah_post = ? AND type = 0 AND nah_by = ?'); + $delete_nah->bind_param('ii', $_POST['postId'], $_SESSION['user_id']); + $delete_nah->execute(); + } + + echo 'success'; + } + } else { + if (!checkReplyCreator($_POST['postId'], $_SESSION['user_id'])) { + $yeah = $dbc->prepare('INSERT INTO yeahs (yeah_post, type, date_time, yeah_by) VALUES (?, ?, NOW(), ?)'); + $yeah->bind_param('isi', $_POST['postId'], $_POST['yeahType'], $_SESSION['user_id']); + $yeah->execute(); + + $get_user = $dbc->prepare('SELECT * FROM replies INNER JOIN profiles ON user_id = reply_by_id WHERE reply_id = ?'); + $get_user->bind_param('i', $_POST['postId']); + $get_user->execute(); + $user_result = $get_user->get_result(); + $user = $user_result->fetch_assoc(); + + if($user['yeah_notifs']==1){ + notify($user['reply_by_id'], 1, $_POST['postId']); + } + + $check_nah = $dbc->prepare('SELECT * FROM nahs WHERE nah_post = ? AND type = 1 AND nah_by = ?'); + $check_nah->bind_param('ii', $_POST['postId'], $_SESSION['user_id']); + $check_nah->execute(); + $nah_result = $check_nah->get_result(); + + if (!$nah_result->num_rows == 0) { + $delete_nah = $dbc->prepare('DELETE FROM nahs WHERE nah_post = ? AND type = 1 AND nah_by = ?'); + $delete_nah->bind_param('ii', $_POST['postId'], $_SESSION['user_id']); + $delete_nah->execute(); + } + + echo 'success'; + } + } + } + } +} \ No newline at end of file