21 Commits

Author SHA1 Message Date
Hendrik
93e63111de cleaned fix 2017-02-02 13:54:52 +01:00
Hendrik
feba1d9786 fix reload after posting post 2017-02-02 13:47:41 +01:00
Hendrik
6ed19d9060 Merge branch 'master' into hendrik-post 2017-02-02 13:43:31 +01:00
Hendrik
d4d16661df added alert box when emptpy posting 2017-02-02 13:42:59 +01:00
Lars van Hijfte
ab5f243281 Merge branch 'lars' into 'master'
BUG FIX: username doesn't cut off in link

See merge request !181
2017-02-02 12:53:13 +01:00
Lars van Hijfte
327a6a8f5c BUG FIX: username doesn't cut off in link 2017-02-02 12:52:03 +01:00
Lars van Hijfte
d03d58ce37 Merge branch 'hendrik-search' into 'master'
Hendrik search

See merge request !177
2017-02-02 12:47:05 +01:00
Lars van Hijfte
487e0a0523 Merge branch 'lars' into 'master'
Lars

See merge request !180
2017-02-02 12:46:42 +01:00
Lars van Hijfte
1dfc14e6f0 Added meta data 2017-02-02 12:44:03 +01:00
Marijn Jansen
cc9866d3dd Merge branch 'marijn-settings' into 'master'
More Awesome Fonts :D

See merge request !179
2017-02-02 10:54:10 +01:00
Marijn Jansen
04df02862f More Awesome Fonts :D 2017-02-02 10:52:42 +01:00
Lars van Hijfte
60b55b3f04 Added comments
Also hiding the mail/age if said so by the user
2017-02-02 10:29:49 +01:00
Marijn Jansen
70b7e12559 Merge branch 'marijn-settings' into 'master'
Added show profile into settings

See merge request !178
2017-02-02 10:28:54 +01:00
Marijn Jansen
e299ef59e8 Added show profile into settings 2017-02-02 10:28:12 +01:00
Hendrik
d9c68d5f5f Merge branch 'master' into hendrik-search 2017-02-02 10:27:21 +01:00
Hendrik
d027333bd7 fix filter and pagenumber interaction in search 2017-02-02 01:06:31 +01:00
Lars van Hijfte
12d5e00731 Merge branch 'hendrik-testing' into 'master'
Hendrik testing

See merge request !173
2017-02-01 14:52:03 +01:00
Lars van Hijfte
0546b8689d BUG FIX: name size 2017-02-01 14:51:27 +01:00
Marijn Jansen
eb8eb5bf03 Merge branch 'marijn-postdelete' into 'master'
Double session_start fixed :D

See merge request !176
2017-02-01 14:46:31 +01:00
Hendrik
022893aca2 Merge branch 'master' into hendrik-testing 2017-02-01 14:24:27 +01:00
Hendrik
3c79d86abd add admin search by role 2017-02-01 11:33:34 +01:00
32 changed files with 293 additions and 110 deletions

View File

@@ -6,6 +6,7 @@ require_once ("../../queries/connect.php");
require_once ("../../queries/private_message.php");
require_once("../../queries/user.php");
// Check if the user is allowed to load them.
if (isset($_SESSION["userID"]) &&
getRoleByID($_SESSION["userID"]) != 'banned') {
echo selectAllUnreadChat();

View File

@@ -6,6 +6,7 @@ require_once ("../../queries/connect.php");
require_once ("../../queries/friendship.php");
require_once ("../../queries/user.php");
// Check if the user is allowed to load them.
if (isset($_SESSION["userID"]) &&
getRoleByID($_SESSION["userID"]) != 'frozen' &&
getRoleByID($_SESSION["userID"]) != 'banned') {

View File

@@ -7,9 +7,11 @@ require_once ("../../queries/checkInput.php");
require_once ("../../queries/friendship.php");
require_once("../../queries/user.php");
// Check if the user is allowed to load them.
if (isset($_SESSION["userID"]) &&
getRoleByID($_SESSION["userID"]) != 'banned') {
if (isset($_SESSION["userID"])) {
// Echo the limited or unlimited users.
if (isset($_POST["limit"])) {
echo selectLimitedFriends($_SESSION["userID"], (int)test_input($_POST["limit"]));
} else if (isset($_GET["limit"])) {

View File

@@ -8,8 +8,10 @@ require_once ("../../queries/group_member.php");
require_once("../../queries/user.php");
// Check if the user is allowed to load them.
if (isset($_SESSION["userID"]) &&
getRoleByID($_SESSION["userID"]) != 'banned') {
// Echo the limited or unlimited groups.
if (isset($_POST["limit"])) {
echo selectLimitedGroupsFromUser($_SESSION["userID"], (int)test_input($_POST["limit"]));
} else {

View File

@@ -8,8 +8,10 @@ require_once("../../queries/checkInput.php");
require_once("../../queries/friendship.php");
require_once("../../queries/user.php");
// Check if the user is allowed to get the messages.
if (isset($_SESSION["userID"]) &&
getRoleByID($_SESSION["userID"]) != 'banned') {
// Check if the users wants new messages or old ones, and give the right one back.
if (isset($_POST["lastID"]) && $_POST["lastID"] != "") {
setLastVisited(test_input($_POST["destination"]));
echo getNewChatMessages(test_input($_POST["lastID"]), test_input($_POST["destination"]));

View File

@@ -12,13 +12,15 @@ if (isset($_SESSION["userID"]) &&
getRoleByID($_SESSION["userID"]) != 'frozen' &&
getRoleByID($_SESSION["userID"]) != 'banned') {
if (empty($_POST["title"]) or
empty($_POST["content"]) or
empty($_SESSION["userID"])
) {
if (empty($_SESSION["userID"])) {
header('HTTP/1.1 500 Non enough arguments');
}
if (empty(test_input($_POST["title"])) or
empty(test_input($_POST["content"]))
) {
echo "empty";
} else {
if (empty($_POST["group"])) {
// User Post
makePost(
@@ -43,6 +45,7 @@ if (isset($_SESSION["userID"]) &&
test_input($_POST["content"])
);
}
}
} else {
echo "frozen";
}

View File

@@ -6,11 +6,11 @@ require_once ("../../queries/connect.php");
require_once ("../../queries/checkInput.php");
require_once ("../../queries/user.php");
require_once ("../../queries/group_page.php");
require_once ("../../queries/friendship.php");
require_once ("../../queries/group_member.php");
if (isset($_SESSION["userID"]) &&
getRoleByID($_SESSION["userID"]) != 'banned') {
$user_perpage = $group_perpage = 20;
getRoleByID($_SESSION["userID"]) != 'banned') {$user_perpage = $group_perpage = 20;
$user_currentpage = $group_currentpage = 1;
if (isset($_POST['user-pageselect'])) {
@@ -28,14 +28,20 @@ if (isset($_SESSION["userID"]) &&
$search = test_input($_POST['search']);
}
$user_count = countSomeUsers($search)->fetchColumn();
$group_count = countSomeGroups($search)->fetchColumn();
$filter = "all";
if (isset($_POST['filter'])) {
$filter = test_input($_POST['filter']);
}
if ($filter == "all") {
$user_count = countSomeUsers($search)->fetchColumn();
$group_count = countSomeGroups($search)->fetchColumn();
} else {
$user_count = countSomeFriends($search);
$group_count = countSomeOwnGroups($search);
}
$option = "user";
if (isset($_POST['option'])) {
$option = test_input($_POST['option']);

View File

@@ -6,12 +6,15 @@ require_once("../../queries/private_message.php");
require_once("../../queries/checkInput.php");
require_once("../../queries/user.php");
// Check if the user is allowed to send a message.
if (isset($_SESSION["userID"]) &&
getRoleByID($_SESSION["userID"]) != 'frozen' &&
getRoleByID($_SESSION["userID"]) != 'banned') {
if (!empty(test_input($_POST["destination"])) &&
!empty(test_input($_POST["content"]))
) {
// Send the message.
// Returns false when it didn't succeed sending the message.
if (sendMessage(test_input($_POST["destination"]), test_input($_POST["content"]))) {
echo 1;
} else {

View File

@@ -4,6 +4,7 @@ session_start();
include_once ("../../queries/friendship.php");
// Initialize variables to given or default values.
if (isset($_POST["action"])) {
$action = $_POST["action"];
} else {
@@ -18,6 +19,8 @@ if (isset($_POST["actionType"])) {
$friends = json_decode($_POST["friends"]);
// Foreach friend, return them as list item.
foreach($friends as $i => $friend) {
$friendshipStatus = getFriendshipStatus($friend->userID);
?>
@@ -38,7 +41,7 @@ foreach($friends as $i => $friend) {
<?= $friend->fullname ?><br/>
<span style='color: #666'><?php
if (isset($friend->username)) {
echo $friend->username;
echo $friend->usernameshort;
} else if (isset($friend->content)) {
echo $friend->content;
}
@@ -48,6 +51,7 @@ foreach($friends as $i => $friend) {
</button>
</form>
<?php
// Add friendship options if possible.
if ($friendshipStatus > 1) {
if ($friendshipStatus == 2) {
$denyName = "Annuleer";

View File

@@ -6,6 +6,7 @@ include_once ("../../queries/group_member.php");
$groups = json_decode($_POST["groups"]);
// Add each group as list item.
foreach($groups as $i => $group) {
?>
<li class='group-item'>

View File

@@ -9,13 +9,17 @@ $(document).ready(function() {
$(".chat-field").hide();
});
// This function loads the new messages and runs the addMessages function to show them.
function loadMessages() {
// If the function is not running elsewhere, run it here.
if (!gettingMessages) {
gettingMessages = true;
// Get the messages.
$.post(
"API/loadMessages.php",
$("#lastIDForm").serialize()
).done(function (data) {
// Post the messages in the chat.
if (data && data != "[]") {
messages = JSON.parse(data);
addMessages(messages);
@@ -28,7 +32,7 @@ function loadMessages() {
}
}
// Send a message to a friend of the user.
function sendMessage() {
$.post(
"API/sendMessage.php",
@@ -37,42 +41,54 @@ function sendMessage() {
if (response == "frozen") {
alert("Je account is bevroren, dus je kan niet chat berichten versturen. Contacteer een admin als je denkt dat dit onjuist is.");
}
// Load messages if the message has been send, so it shows in the chat.
loadMessages();
});
$("#newContent").val("");
loadMessages();
}
// Add messages to the chat.
function addMessages(messages) {
var messagesText = "";
// Loop over all the messages.
for(var i in messages) {
// Initialize message variables
// Initialize message variables.
var thisDate = new Date(messages[i].creationdate.replace(/ /,"T"));
var thisTime = thisDate.getHours() + ":" + thisDate.getMinutes();
var type;
thisDate.setHours(0,0,0,0);
// See where the message has been send from, so it shows on the right side.
if (messages[i].destination == $(".destinationID").val()) {
type = "chat-message-self";
} else {
type = "chat-message-other";
}
// If it is the first message, open the message box and maybe add a year.
if (i == 0) {
previousDate = thisDate;
if (thisDate.getTime() > previousDate.getTime()) {
messagesText += '\
<div class="day-message"> \
<div class="day-message-content">\
' + days[thisDate.getDay()] + " " + thisDate.getDate() + " " + months[thisDate.getMonth()] + " " + thisDate.getFullYear() + '\
</div> \
</div>';
}
previousDate = thisDate;
messagesText += '<div class="chat-message"><div class="' + type + '">';
// If it is not the first message, and has a different date/time/type then the previous message,
} else if (type != previousType || thisTime != previousTime || thisDate.getTime() > previousDate.getTime()) {
// Close the previous message.
messagesText += '<div class="chat-time">\
' + thisTime + '\
</div></div></div>';
previousTime = thisTime;
previousType = type;
// If the date is different, add a new date.
if (thisDate > previousDate) {
previousDate = thisDate;
messagesText += '\
@@ -83,8 +99,11 @@ function addMessages(messages) {
</div>';
}
// Open the new message.
messagesText += '<div class="chat-message"><div class="' + type + '">';
}
// Add the content of the message in the new box.
messagesText += fancyText(messages[i].content) + "<br />";
}
@@ -93,11 +112,14 @@ function addMessages(messages) {
' + thisTime + '\
</div></div></div>';
// Add all the new created messaged to the chat.
$("#chat-history").append(messagesText);
// Scroll down, so the user can see the new messages.
$("#chat-history").scrollTop($("#chat-history")[0].scrollHeight - $('#chat-history')[0].clientHeight);
}
// Switch to a different user.
function switchUser(userID) {
previousDate = new Date("1970-01-01 00:00:00");
$(".chat-field").show();
@@ -108,6 +130,7 @@ function switchUser(userID) {
$("#friend-item-" + userID).addClass("active-friend-chat");
}
// Insert a message in the chat, this is used when it is empty.
function sayEmpty() {
$("#chat-history").html("Probeer ook eens foto's en video's te sturen");
}

View File

@@ -14,14 +14,14 @@ function fancyText(text) {
return "<video width='100%'>" +
"<source src='"+ link +"' type='video/mp4'>" +
"<b>Je browser ondersteund geen video</b>" +
"</video><button class='gray' onclick='$(this).prev().get(0).play();'>Speel af</button>";
"</video><button class='gray' onclick='$(this).prev().get(0).play();'><i class='fa fa-play'></i></button>";
}
// Add ogg video's
else if (link.match(/(https?:\/\/.[^ ]*\.(?:ogg))/ig)) {
return "<video width='100%'>" +
"<source src='"+ link +"' type='video/ogg'>" +
"<b>Je browser ondersteund geen video</b>" +
"</video><button onclick='$(this).prev().get(0).play();'>Speel af</button>";
"</video><button class='gray' onclick='$(this).prev().get(0).play();'><i class='fa fa-play'></i></button>";
}
// Add youtube video's
else if (link.match(/(https?:\/\/.(www.)?youtube|youtu.be)*watch/ig)) {
@@ -38,6 +38,8 @@ function fancyText(text) {
return text;
}
// This function gets the value of a cookie when given a key.
// If didn´t find any compatible cookie, it returns false.
function getCookie(key) {
cookies = document.cookie.split("; ");
for (var i in cookies) {
@@ -49,6 +51,7 @@ function getCookie(key) {
return false;
}
// Edit the friendship status of two users.
function editFriendship(userID, value) {
$.post("API/editFriendship.php", { usr: userID, action: value })
.done(function() {
@@ -57,6 +60,8 @@ function editFriendship(userID, value) {
});
}
// Show the given friends in the given list.
// The friends are giving in JSON, and the list is giving with a hashtag.
function showFriends(friends, list) {
if(friends && friends != "[]") {
$(list).load("bits/friend-item.php", {
@@ -69,6 +74,8 @@ function showFriends(friends, list) {
}
}
// Show the given friends in the given list.
// This function supports more options given as parameters. This adds extra functionality.
function showFriendsPlus(friends, list, limit, action, actionType) {
if(friends && friends != "[]") {
$(list).load("bits/friend-item.php", {
@@ -84,6 +91,7 @@ function showFriendsPlus(friends, list, limit, action, actionType) {
}
}
// Show the given groups in the given list.
function showGroups(groups, list) {
if(groups && groups != "[]") {
$(list).load("bits/group-item.php", {

View File

@@ -31,14 +31,28 @@ function postPost() {
$.post("API/postPost.php", { title: title,
content : content,
group : groupID })
.done(function() {
.done(function(data) {
if (data == "empty") {
$('#alertbox').show();
$('#alerttext').html("Geen titel of inhoud; vul a.u.b. in.");
window.scrollTo(0,0);
} else {
$('#alertbox').hide();
masonry(masonryMode);
}
});
} else {
$.post("API/postPost.php", { title: title,
content : content })
.done(function() {
.done(function(data) {
if (data == "empty") {
$('#alertbox').show();
$('#alerttext').html("Geen titel of inhoud; vul a.u.b. in.");
window.scrollTo(0,0);
} else {
$('#alertbox').hide();
masonry(masonryMode);
}
});
}
@@ -98,6 +112,10 @@ function masonry(mode) {
masonryMode = mode;
$container.children().remove();
// reinit posts
noposts = false;
postAmount = 0;
/*
* Initialise columns.
*/
@@ -120,7 +138,7 @@ function masonry(mode) {
$form.append($("<input class=\"newpost\" name=\"title\" placeholder=\"Titel\" type=\"text\">"));
$form.append($("<textarea class=\"newpost\" name=\"content\" placeholder=\"Schrijf een berichtje...\" maxlength='1000'></textarea><span></span>"));
$form.append($("<input value=\"Plaats!\" type=\"submit\">"));
$form.append($("<button type=\"submit\"><i class='fa fa-sticky-note-o'></i> Plaats!</button>"));
columns[0][1].append($postInput);
columns[0][0] = $postInput.height() + margin;
@@ -153,9 +171,6 @@ function loadMorePosts(uID, gID, offset, limit) {
return;
}
console.log(uID, gID, offset, limit);
$.post("API/getPosts.php", { usr : uID,
grp : gID,
offset : offset,

View File

@@ -34,6 +34,4 @@ function deletePost(postID) {
});
closeModal();
masonry(masonryMode);
}

View File

@@ -2,6 +2,7 @@ $(window).on('load', function () {
pageNumber();
});
// Search for the users and put them in the user list.
function searchUsers() {
$.post(
"API/searchUsers.php",
@@ -13,6 +14,7 @@ function searchUsers() {
});
}
// Search for the groups and put them in the group list.
function searchGroups() {
$.post(
"API/searchGroups.php",
@@ -24,6 +26,7 @@ function searchGroups() {
});
}
// Get the page numbers and return them in the select.
function pageNumber() {
var input = input2 = $('#search-form').serialize();
$.post(

View File

@@ -56,5 +56,5 @@
}
.bancommentform input[type="text"] {
width: 100%;
width: 80%;
}

View File

@@ -102,7 +102,6 @@ p {
.group-picture {
border-radius: 5px;
border: none;
}
.item-box, .item-box-full-width {
@@ -117,7 +116,7 @@ p {
@media only screen and (max-width: 1400px) {
.item-box {
width: calc(100% - 50px);
width: calc(100% - 50px)!important;
}
}
@@ -291,19 +290,6 @@ div[data-title]:hover:after {
vertical-align: middle;
}
::-webkit-scrollbar {
width: 5px;
height: 5px;
}
::-webkit-scrollbar-track {
background: none;
}
::-webkit-scrollbar-thumb {
-webkit-border-radius: 20px;
border-radius: 20px;
background: #4CAF50;
}
@media only screen and (max-width: 1080px) {
body {
font-size: 28px!important;

View File

@@ -1,5 +1,10 @@
/* New */
.alertbox {
display: none;
background-color: firebrick;
}
.user-box {
text-align: center;
}
@@ -11,7 +16,7 @@
display: inline-block;
}
.friend-button-container {
.friend-button-container, .group-button-container {
position: relative;
float: right;
width: 200px;
@@ -62,7 +67,6 @@
.group-picture {
border: none;
margin-bottom: 0;
margin-right: 15px;
}
@@ -108,7 +112,7 @@ div.posts .post form input, div.posts .post form textarea {
width: calc(100% - 15px);
}
div.posts .post form input[type="submit"] {
div.posts .post form input[type="submit"], .post button{
width: 100%;
}

View File

@@ -32,6 +32,11 @@
text-align: right;
}
.settings-password, .settings-email {
width: calc(50% - 60px);
display: inline-flex;
}
.settings-password label, .settings-email label {
text-align: left;
}

View File

@@ -10,8 +10,9 @@ function selectLimitedFriends($userID, $limit) {
$stmt = prepareQuery("
SELECT
`userID`,
LEFT(`username`, 12) as `usernameshort`,
`username`,
LEFT(CONCAT(`user`.`fname`, ' ', `user`.`lname`), 15) as `fullname`,
LEFT(CONCAT(`user`.`fname`, ' ', `user`.`lname`), 12) as `fullname`,
IFNULL(
`profilepicture`,
'../img/avatar-standard.png'
@@ -50,8 +51,9 @@ function selectAllFriends($userID) {
$stmt = prepareQuery("
SELECT
`userID`,
LEFT(`username`, 12) as `usernameshort`,
`username`,
LEFT(CONCAT(`user`.`fname`, ' ', `user`.`lname`), 15) as `fullname`,
LEFT(CONCAT(`user`.`fname`, ' ', `user`.`lname`), 12) as `fullname`,
IFNULL(
`profilepicture`,
'../img/avatar-standard.png'
@@ -85,8 +87,9 @@ function selectAllFriendRequests() {
$stmt = prepareQuery("
SELECT
`userID`,
LEFT(`username`, 12) as `usernameshort`,
`username`,
LEFT(CONCAT(`user`.`fname`, ' ', `user`.`lname`), 15) as `fullname`,
LEFT(CONCAT(`user`.`fname`, ' ', `user`.`lname`), 12) as `fullname`,
IFNULL(
`profilepicture`,
'../img/avatar-standard.png'
@@ -235,8 +238,9 @@ function searchSomeFriends($n, $m, $search) {
$stmt = prepareQuery("
SELECT
`userID`,
LEFT(`username`, 12) as `usernameshort`,
`username`,
LEFT(CONCAT(`user`.`fname`, ' ', `user`.`lname`), 15) as `fullname`,
LEFT(CONCAT(`user`.`fname`, ' ', `user`.`lname`), 12) as `fullname`,
IFNULL(
`profilepicture`,
'../img/avatar-standard.png'
@@ -276,3 +280,34 @@ function searchSomeFriends($n, $m, $search) {
$stmt->execute();
return json_encode($stmt->fetchAll());
}
function countSomeFriends($search) {
$stmt = prepareQuery("
SELECT
COUNT(*)
FROM
`user`
INNER JOIN
`friendship`
WHERE
((`friendship`.`user1ID` = :userID AND
`friendship`.`user2ID` = `user`.`userID` OR
`friendship`.`user2ID` = :userID AND
`friendship`.`user1ID` = `user`.`userID`) AND
`user`.`role` != 'banned' AND
`friendship`.`status` = 'confirmed') AND
(`username` LIKE :keyword OR
`fname` LIKE :keyword OR
`lname` LIKE :keyword)
ORDER BY
`fname`,
`lname`,
`username`
");
$search = "%$search%";
$stmt->bindParam(':keyword', $search);
$stmt->bindParam(':userID', $_SESSION["userID"], PDO::PARAM_INT);
$stmt->execute();
return $stmt->fetchColumn();
}

View File

@@ -55,6 +55,29 @@ function searchSomeOwnGroups($n, $m, $search) {
return json_encode($stmt->fetchAll());
}
function countSomeOwnGroups($search) {
$stmt = prepareQuery("
SELECT
COUNT(*)
FROM
`group_page`
INNER JOIN
`group_member`
WHERE
`group_member`.`userID` = :userID AND
`group_member`.`groupID` = `group_page`.`groupID` AND
`group_page`.`status` != 'hidden' AND
`name` LIKE :keyword
");
$search = "%$search%";
$stmt->bindParam(':keyword', $search);
$stmt->bindParam(':userID', $_SESSION["userID"], PDO::PARAM_INT);
$stmt->execute();
return $stmt->fetchColumn();
}
function addMember($groupID, $userID, $role) {
$stmt = prepareQuery("
INSERT INTO

View File

@@ -193,7 +193,9 @@ function search20GroupsFromNByStatus($n, $keyword, $status) {
return $q;
}
function searchSomeGroupsByStatus($n, $m, $keyword, $status) {
function searchSomeGroupsByStatus($n, $m, $search, $status) {
// parentheses not needed in where clause, for clarity as
// role search should override status filter.
$q = prepareQuery("
SELECT
`groupID`,
@@ -203,16 +205,18 @@ function searchSomeGroupsByStatus($n, $m, $keyword, $status) {
FROM
`group_page`
WHERE
`name` LIKE :keyword AND
FIND_IN_SET (`status`, :statuses)
(`name` LIKE :keyword AND
FIND_IN_SET (`status`, :statuses)) OR
`status` = :search
ORDER BY
`name`
LIMIT
:n, :m
");
$keyword = "%$keyword%";
$keyword = "%$search%";
$q->bindParam(':keyword', $keyword);
$q->bindParam(':search', $search);
$q->bindParam(':n', $n, PDO::PARAM_INT);
$q->bindParam(':m', $m, PDO::PARAM_INT);
$statuses = implode(',', $status);
@@ -221,21 +225,23 @@ function searchSomeGroupsByStatus($n, $m, $keyword, $status) {
return $q;
}
function countSomeGroupsByStatus($keyword, $status) {
function countSomeGroupsByStatus($search, $status) {
$q = prepareQuery("
SELECT
COUNT(*)
FROM
`group_page`
WHERE
`name` LIKE :keyword AND
FIND_IN_SET (`status`, :statuses)
(`name` LIKE :keyword AND
FIND_IN_SET (`status`, :statuses)) OR
`status` = :search
ORDER BY
`name`
");
$keyword = "%$keyword%";
$keyword = "%$search%";
$q->bindParam(':keyword', $keyword);
$q->bindParam(':search', $search);
$statuses = implode(',', $status);
$q->bindParam(':statuses', $statuses);
$q->execute();

View File

@@ -95,7 +95,7 @@ function getNewChatMessages($lastID, $destination) {
function selectAllUnreadChat() {
$stmt = prepareQuery("
SELECT
LEFT(CONCAT(`user`.`fname`, ' ', `user`.`lname`), 15) AS `fullname`,
LEFT(CONCAT(`user`.`fname`, ' ', `user`.`lname`), 12) as `fullname`,
`user`.`userID`,
IFNULL(
`profilepicture`,

View File

@@ -18,7 +18,8 @@ function getSettings() {
`bio`,
`profilepicture`,
`showBday`,
`showEmail`
`showEmail`,
`showProfile`
FROM
`user`
WHERE
@@ -64,7 +65,8 @@ function updateSettings() {
`birthdate` = :bday,
`bio` = :bio,
`showEmail` = :showEmail,
`showBday` = :showBday
`showBday` = :showBday,
`showProfile` = :showProfile
WHERE
`userID` = :userID
");
@@ -79,6 +81,7 @@ function updateSettings() {
$stmt->bindValue(":bio", test_input($_POST["bio"]));
$stmt->bindValue(":showEmail", (array_key_exists("showEmail", $_POST) ? "1" : "0"));
$stmt->bindValue(":showBday", (array_key_exists("showBday", $_POST) ? "1" : "0"));
$stmt->bindValue(":showProfile", (array_key_exists("showProfile", $_POST) ? "1" : "0"));
$stmt->bindValue(":userID", $_SESSION["userID"]);
$stmt->execute();

View File

@@ -52,6 +52,10 @@ function selectUser($me, $other) {
`username`,
`birthdate`,
`location`,
`showBday`,
`showEmail`,
`showProfile`,
`email`,
IFNULL(
`profilepicture`,
'../img/avatar-standard.png'
@@ -205,7 +209,9 @@ function search20UsersFromNByStatus($n, $keyword, $status) {
return $q;
}
function searchSomeUsersByStatus($n, $m, $keyword, $status) {
function searchSomeUsersByStatus($n, $m, $search, $status) {
// parentheses not needed in where clause, for clarity as
// role search should override status filter.
$q = prepareQuery("
SELECT
`userID`,
@@ -219,8 +225,9 @@ function searchSomeUsersByStatus($n, $m, $keyword, $status) {
FROM
`user`
WHERE
`username` LIKE :keyword AND
FIND_IN_SET (`role`, :statuses)
(`username` LIKE :keyword AND
FIND_IN_SET (`role`, :statuses)) OR
`role` = :search
ORDER BY
`role`,
`username`
@@ -228,8 +235,9 @@ function searchSomeUsersByStatus($n, $m, $keyword, $status) {
:n, :m
");
$keyword = "%$keyword%";
$keyword = "%$search%";
$q->bindParam(':keyword', $keyword);
$q->bindParam(':search', $search);
$q->bindParam(':n', $n, PDO::PARAM_INT);
$q->bindParam(':m', $m, PDO::PARAM_INT);
$statuses = implode(',', $status);
@@ -238,22 +246,24 @@ function searchSomeUsersByStatus($n, $m, $keyword, $status) {
return $q;
}
function countSomeUsersByStatus($keyword, $status) {
function countSomeUsersByStatus($search, $status) {
$q = prepareQuery("
SELECT
COUNT(*)
FROM
`user`
WHERE
`username` LIKE :keyword AND
FIND_IN_SET (`role`, :statuses)
(`username` LIKE :keyword AND
FIND_IN_SET (`role`, :statuses)) OR
`role` = :search
ORDER BY
`role`,
`username`
");
$keyword = "%$keyword%";
$keyword = "%$search%";
$q->bindParam(':keyword', $keyword);
$q->bindParam(':search', $search);
$statuses = implode(',', $status);
$q->bindParam(':statuses', $statuses);
$q->execute();
@@ -345,12 +355,13 @@ function searchSomeUsers($n, $m, $search) {
$stmt = prepareQuery("
SELECT
`userID`,
LEFT(`username`, 12) as `usernameshort`,
`username`,
IFNULL(
`profilepicture`,
'../img/avatar-standard.png'
) AS profilepicture,
LEFT(CONCAT(`user`.`fname`, ' ', `user`.`lname`), 15) as `fullname`,
LEFT(CONCAT(`user`.`fname`, ' ', `user`.`lname`), 12) as `fullname`,
CASE `lastactivity` >= DATE_SUB(NOW(),INTERVAL 15 MINUTE)
WHEN TRUE THEN 'online'
WHEN FALSE THEN 'offline'

View File

@@ -1,12 +1,17 @@
<div class="content">
<div class="profile-box platform">
<img class="left main-picture group-picture" src="<?= $group['picture'] ?>">
<div class="group-button-container"></div>
<h1 class="profile-username"><?= $group['name'] ?></h1>
<p><?= $group['description'] ?></p>
<div class="user-box">
<img class="group-picture main-picture" src="<?= $group["picture"] ?>"><br />
<div class="platform">
<div class="status-buttons-container">
<button disabled class="gray"><?= $group["status"] ?></button>
</div>
<div class="group-button-container"></div>
<div class="profile-info">
<h2><?= $group["name"]?></h2>
<?= $group["description"] ?>
</div>
</div>
</div>
<div class="item-box-full-width platform">
<h2>Leden (<?= $group['members'] ?>)</h2>
<p>

View File

@@ -1,4 +1,8 @@
<meta charset="utf-8">
<meta charset="UTF-8">
<meta name="description" content="MyHyvesbook+ is het sociaal media voor alle coole mensen.">
<meta name="keywords" content="MyHyvesbookPlus,Myhyvesbook+,sociaal,media">
<meta name="author" content="MyHyvesbookplus corporation">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>MyHyvesbook+</title>
<!-- Add your javascript files here. -->
<script src="js/jquery.js"></script>

View File

@@ -14,7 +14,7 @@
echo "<style>@import url('styles/adminbutton.css'); </style>";
}
?>
<a href="logout.php" data-title="Admin"><i class="fa fa-sign-out"></i></a>
<a href="logout.php" data-title="Uitloggen"><i class="fa fa-sign-out"></i></a>
</section>
<section id="friend-request-section">
<h4>

View File

@@ -30,7 +30,7 @@ $fullname = $post['fname'] . " " . $post['lname'] . " (" . $post['username'] . "
<form id="newcommentform" onsubmit="return false;">
<input type="hidden" id="newcomment-textarea" name="postID" value="<?= $postID ?>">
<textarea id="newcomment" name="newcomment-content" placeholder="Laat een reactie achter..." maxlength="1000"></textarea><span></span> <br>
<button onclick="postComment('reaction')" name="button" value="reaction">Reageer!</button>
<button onclick="postComment('reaction')" name="button" value="reaction" class="green"><i class="fa fa-comment"></i> Reageer!</button>
<button onclick="postComment('nietslecht')" name="button" value="nietslecht" class="nietslecht">
<?php
if (checkNietSlecht($postID, $_SESSION["userID"])) {

View File

@@ -1,4 +1,8 @@
<div class="content">
<div class='platform alertbox' id="alertbox">
<span id="alerttext"></span>
</div>
<div class="user-box">
<img class="profile-picture main-picture <?= $user["onlinestatus"] ?>" src="<?= $user["profilepicture"] ?>"><br />
<div class="platform">
@@ -29,7 +33,12 @@
<h3>Informatie</h3>
<p>
<ul>
<?php if ($user["showBday"]) { ?>
<li>Leeftijd: <?= getAge($user["birthdate"]) ?> jaar</li>
<?php } ?>
<?php if ($user["showEmail"]) { ?>
<li>Email: <?= $user["email"] ?></li>
<?php } ?>
<li>Locatie: <?= $user["location"] ?></li>
<li>Lid sinds: <?= nicetime($user["creationdate"]) ?></li>
</ul>

View File

@@ -48,7 +48,12 @@ $group_n = ($group_currentpage - 1) * $group_perpage;
<label for="filter">
Filter:
</label>
<select name="filter" id="search-filter">
<select name="filter"
id="search-filter"
onchange="$('#user-pagenumber, #group-pagenumber').prop('value', 1);
searchUsers();
searchGroups();
pageNumber();">
<option value="personal"
<?php if ($filter == "personal") echo "selected";?>>
Persoonlijk</option>

View File

@@ -17,6 +17,7 @@ $settings = getSettings();
<input type="text"
name="fname"
id="fname"
maxlength="63"
placeholder="Voornaam"
title="Voornaam"
value="<?=$settings["fname"]?>"
@@ -27,6 +28,7 @@ $settings = getSettings();
<input type="text"
name="lname"
id="lname"
maxlength="63"
placeholder="Achternaam"
value="<?=$settings["lname"]?>"
>
@@ -36,6 +38,7 @@ $settings = getSettings();
<input type="text"
name="location"
id="location"
maxlength="50"
placeholder="Locatie"
value="<?=$settings["location"]?>"
>
@@ -96,6 +99,14 @@ $settings = getSettings();
<?=($settings["showEmail"] ? "checked" : "")?>
>
</li>
<li>
<label for="showProfile">Publiek profiel</label>
<input type="checkbox"
name="showProfile"
id="showProfile"
<?=($settings["showProfile"] ? "checked" : "")?>
>
</li>
<li>
<label for="bio">Bio</label>
<textarea name="bio"
@@ -186,6 +197,7 @@ $settings = getSettings();
<label for="email-old">Huidig Email </label>
<input type="email"
id="email-old"
maxlength="255"
value="<?=$settings["email"]?>"
disabled
>
@@ -194,6 +206,7 @@ $settings = getSettings();
<label for="email">Nieuw Email</label>
<input type="email"
name="email"
maxlength="255"
id="email"
placeholder="Nieuw Email"
>
@@ -203,14 +216,16 @@ $settings = getSettings();
<input type="email"
name="email-confirm"
id="email-confirm"
maxlength="255"
placeholder="Bevestig Email"
>
</li>
<li>
<button type="submit"
name="form"
value="email"
>Verander Email</button>
value="email">
Verander Email
</button>
</li>
</ul>
</form>