6 Commits

Author SHA1 Message Date
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
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
7 changed files with 103 additions and 26 deletions

View File

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

View File

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

View File

@@ -276,3 +276,34 @@ function searchSomeFriends($n, $m, $search) {
$stmt->execute(); $stmt->execute();
return json_encode($stmt->fetchAll()); 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()); 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) { function addMember($groupID, $userID, $role) {
$stmt = prepareQuery(" $stmt = prepareQuery("
INSERT INTO INSERT INTO

View File

@@ -193,7 +193,9 @@ function search20GroupsFromNByStatus($n, $keyword, $status) {
return $q; 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(" $q = prepareQuery("
SELECT SELECT
`groupID`, `groupID`,
@@ -203,16 +205,18 @@ function searchSomeGroupsByStatus($n, $m, $keyword, $status) {
FROM FROM
`group_page` `group_page`
WHERE WHERE
`name` LIKE :keyword AND (`name` LIKE :keyword AND
FIND_IN_SET (`status`, :statuses) FIND_IN_SET (`status`, :statuses)) OR
`status` = :search
ORDER BY ORDER BY
`name` `name`
LIMIT LIMIT
:n, :m :n, :m
"); ");
$keyword = "%$keyword%"; $keyword = "%$search%";
$q->bindParam(':keyword', $keyword); $q->bindParam(':keyword', $keyword);
$q->bindParam(':search', $search);
$q->bindParam(':n', $n, PDO::PARAM_INT); $q->bindParam(':n', $n, PDO::PARAM_INT);
$q->bindParam(':m', $m, PDO::PARAM_INT); $q->bindParam(':m', $m, PDO::PARAM_INT);
$statuses = implode(',', $status); $statuses = implode(',', $status);
@@ -221,21 +225,23 @@ function searchSomeGroupsByStatus($n, $m, $keyword, $status) {
return $q; return $q;
} }
function countSomeGroupsByStatus($keyword, $status) { function countSomeGroupsByStatus($search, $status) {
$q = prepareQuery(" $q = prepareQuery("
SELECT SELECT
COUNT(*) COUNT(*)
FROM FROM
`group_page` `group_page`
WHERE WHERE
`name` LIKE :keyword AND (`name` LIKE :keyword AND
FIND_IN_SET (`status`, :statuses) FIND_IN_SET (`status`, :statuses)) OR
`status` = :search
ORDER BY ORDER BY
`name` `name`
"); ");
$keyword = "%$keyword%"; $keyword = "%$search%";
$q->bindParam(':keyword', $keyword); $q->bindParam(':keyword', $keyword);
$q->bindParam(':search', $search);
$statuses = implode(',', $status); $statuses = implode(',', $status);
$q->bindParam(':statuses', $statuses); $q->bindParam(':statuses', $statuses);
$q->execute(); $q->execute();

View File

@@ -205,7 +205,9 @@ function search20UsersFromNByStatus($n, $keyword, $status) {
return $q; 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(" $q = prepareQuery("
SELECT SELECT
`userID`, `userID`,
@@ -219,8 +221,9 @@ function searchSomeUsersByStatus($n, $m, $keyword, $status) {
FROM FROM
`user` `user`
WHERE WHERE
`username` LIKE :keyword AND (`username` LIKE :keyword AND
FIND_IN_SET (`role`, :statuses) FIND_IN_SET (`role`, :statuses)) OR
`role` = :search
ORDER BY ORDER BY
`role`, `role`,
`username` `username`
@@ -228,8 +231,9 @@ function searchSomeUsersByStatus($n, $m, $keyword, $status) {
:n, :m :n, :m
"); ");
$keyword = "%$keyword%"; $keyword = "%$search%";
$q->bindParam(':keyword', $keyword); $q->bindParam(':keyword', $keyword);
$q->bindParam(':search', $search);
$q->bindParam(':n', $n, PDO::PARAM_INT); $q->bindParam(':n', $n, PDO::PARAM_INT);
$q->bindParam(':m', $m, PDO::PARAM_INT); $q->bindParam(':m', $m, PDO::PARAM_INT);
$statuses = implode(',', $status); $statuses = implode(',', $status);
@@ -238,22 +242,24 @@ function searchSomeUsersByStatus($n, $m, $keyword, $status) {
return $q; return $q;
} }
function countSomeUsersByStatus($keyword, $status) { function countSomeUsersByStatus($search, $status) {
$q = prepareQuery(" $q = prepareQuery("
SELECT SELECT
COUNT(*) COUNT(*)
FROM FROM
`user` `user`
WHERE WHERE
`username` LIKE :keyword AND (`username` LIKE :keyword AND
FIND_IN_SET (`role`, :statuses) FIND_IN_SET (`role`, :statuses)) OR
`role` = :search
ORDER BY ORDER BY
`role`, `role`,
`username` `username`
"); ");
$keyword = "%$keyword%"; $keyword = "%$search%";
$q->bindParam(':keyword', $keyword); $q->bindParam(':keyword', $keyword);
$q->bindParam(':search', $search);
$statuses = implode(',', $status); $statuses = implode(',', $status);
$q->bindParam(':statuses', $statuses); $q->bindParam(':statuses', $statuses);
$q->execute(); $q->execute();

View File

@@ -48,7 +48,12 @@ $group_n = ($group_currentpage - 1) * $group_perpage;
<label for="filter"> <label for="filter">
Filter: Filter:
</label> </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" <option value="personal"
<?php if ($filter == "personal") echo "selected";?>> <?php if ($filter == "personal") echo "selected";?>>
Persoonlijk</option> Persoonlijk</option>