Skip to content

Commit

Permalink
Merge branch 'develop' into limit-logs-displayed
Browse files Browse the repository at this point in the history
  • Loading branch information
partydragen authored Aug 2, 2023
2 parents 02b6135 + 093d4b3 commit 2a1aaa9
Show file tree
Hide file tree
Showing 8 changed files with 110 additions and 40 deletions.
2 changes: 1 addition & 1 deletion core/classes/Core/Validate.php
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ public static function check(array $source, array $items = []): Validate {
if (empty($source[$array][$matches[1]])) {
$missing = true;
}
} else if (empty($value)) {
} else if (empty($value) && $value !== '0') {
$missing = true;
}

Expand Down
2 changes: 1 addition & 1 deletion custom/panel_templates/Default/core/reactions_form.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@
<select name="type" class="form-control" id="InputReactionType">
<option value="2" {if $TYPE_VALUE eq 2} selected{/if}>{$POSITIVE}</option>
<option value="1" {if $TYPE_VALUE eq 1} selected{/if}>{$NEUTRAL}</option>
<option value="-1" {if $TYPE_VALUE eq 0} selected{/if}>{$NEGATIVE}</option>
<option value="0" {if $TYPE_VALUE eq 0} selected{/if}>{$NEGATIVE}</option>
<option value="3" {if $TYPE_VALUE eq 3} selected{/if}>{$CUSTOM_SCORE}</option>
</select>
</div>
Expand Down
42 changes: 39 additions & 3 deletions custom/templates/DefaultRevamp/css/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -288,13 +288,17 @@ body.pushable>.pusher {
}

#topic-post #post-content {
margin-top: auto;
padding: .7em 1.2em .7em 1.2em;
min-height: 32.5px;
font-size: .85em;
}

#post-content #reactions {
margin-top: auto;
}

.reaction-button {
margin-left: 5px;
margin-right: 5px;
opacity: 50%;
}

Expand Down Expand Up @@ -1238,6 +1242,11 @@ body.dark .ui.threaded.comments .comment .text {
color: #fff;
}

body.dark .ui.segment .forum_post a,
body.dark .ui.comments .comment .forum_post a {
color: #62b6f7;
}

body.dark .ui.card .meta,
.ui.cards>.card .meta,
body.dark .ui.header,
Expand Down Expand Up @@ -1331,6 +1340,7 @@ body.dark .ui.form input[type=url] {
color: #fff;
}

body.dark .ui.mini.message,
body.dark .ui.mini.info.message {
background-color: #282828;
box-shadow: 0 0 0 1px #282828 inset, 0 0 0 0 transparent;
Expand Down Expand Up @@ -1387,7 +1397,12 @@ body.dark .ui.table tbody tr td.selectable:hover {
}
}

body.dark .forum_post {
body.dark .forum_post,
body.dark .ui.comments .forum_post.text {
color: #fff;
}

body.dark .ui.comments .comment .author {
color: #fff;
}

Expand Down Expand Up @@ -1486,6 +1501,27 @@ body.dark .cc-window.cc-floating .cc-highlight .cc-btn.cc-allow {
border-color: transparent;
}

body.dark #modal-reactions .ui.menu {
background-color: #282828;
overflow-x: auto;
}

body.dark #modal-reactions .ui.menu .item {
color: #fff;
}

body.dark #modal-reactions .ui.menu .item.active {
background-color: #222;
}

body.dark #modal-reactions .ui.large.selection.divided.list.middle.aligned .item .content {
color: #fff;
}

body.dark ::-webkit-scrollbar-corner {
background-color: transparent;
}

/*
* Colours
*/
Expand Down
1 change: 1 addition & 0 deletions custom/templates/DefaultRevamp/forum/view_topic.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,7 @@

{if $REACTIONS_ENABLED}
<div class="ui small modal" id="modal-reactions">
<i class="close icon"></i>
<div class="header">
{$REACTIONS_TEXT}
</div>
Expand Down
1 change: 1 addition & 0 deletions custom/templates/DefaultRevamp/profile.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,7 @@
{if count($WALL_POSTS)}
<div class="ui small modal" id="modal-reactions">
<i class="close icon"></i>
<div class="header">
{$REACTIONS_TEXT}
</div>
Expand Down
2 changes: 1 addition & 1 deletion custom/templates/DefaultRevamp/reactions_modal.tpl
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<div class="ui menu" style="overflow: scroll;">
<div class="ui menu">
{foreach from=$REACTIONS item=reaction}
<a class="{if $ACTIVE_TAB == $reaction.id}active {/if}item" data-tab="{$reaction.id}">
{if $reaction.id != 0}{$reaction.html} &nbsp; {/if}{$reaction.name} ({$reaction.count})
Expand Down
98 changes: 65 additions & 33 deletions modules/Forum/classes/Forum.php
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,15 @@ public function listAllForums(array $groups = [0], int $user_id = 0): array {
// Get discussion forums
$forums = $this->_db->query(
<<<SQL
SELECT f.*
SELECT
f.*,
EXISTS (
SELECT p.ID
FROM nl2_forums_permissions p
WHERE p.group_id IN ($groups_in)
AND p.forum_id = f.id
AND p.view_other_topics = 1
) view_other_topics
FROM nl2_forums AS f
WHERE f.parent = ?
AND f.id IN
Expand All @@ -88,7 +96,11 @@ public function listAllForums(array $groups = [0], int $user_id = 0): array {
// Get latest post from any sub-subforums
$subforums = $this->getAnySubforums($item->id, $groups, 0, true, $user_id);

$latest_post = [$item->last_post_date, $item->last_user_posted, $item->last_topic_posted];
if ($item->view_other_topics) {
$latest_post = [$item->last_post_date, $item->last_user_posted, $item->last_topic_posted];
} else {
$latest_post = $this->getLatestPostInOwnTopicForum($item->id, $user_id);
}

if (count($subforums)) {
$return[$forum->id]['subforums'][$item->id]->subforums = [];
Expand Down Expand Up @@ -733,41 +745,18 @@ public function getAnySubforums(

foreach ($subforums_query->results() as $result) {
$to_add = new stdClass();
$to_add->id = Output::getClean($result->id);
$to_add->id = $result->id;
$to_add->forum_title = Output::getClean($result->forum_title);
$to_add->icon = Output::getPurified($result->icon);
$to_add->category = false;

// Latest post
if ($onlyOwnTopics && $result->view_other_topics != '1') {
// Get the latest topic that the user can view
$latest_post = $this->_db->query(
<<<SQL
SELECT
p.topic_id,
p.created,
p.post_date,
p.post_creator
FROM nl2_topics t
LEFT JOIN nl2_posts p
ON p.id = (
SELECT id
FROM nl2_posts sp
WHERE sp.topic_id = t.id
AND sp.deleted = 0
ORDER BY sp.created DESC LIMIT 1
)
WHERE t.forum_id = ?
AND (t.topic_creator = ? OR t.sticky = 1)
SQL,
[$result->id, $user_id]
);

if ($latest_post->count() && $latest_post = $latest_post->first()) {
$to_add->last_post_date = $latest_post->created ?? strtotime($latest_post->post_date);
$to_add->last_user_posted = $latest_post->post_creator;
$to_add->last_topic_posted = $latest_post->topic_id;
}
if ($onlyOwnTopics && $result->view_other_topics !== 1) {
[
$to_add->last_post_date,
$to_add->last_user_posted,
$to_add->last_topic_posted,
] = $this->getLatestPostInOwnTopicForum($result->id, $user_id);
} else {
$to_add->last_post_date = $result->last_post_date;
$to_add->last_user_posted = $result->last_user_posted;
Expand All @@ -776,7 +765,7 @@ public function getAnySubforums(

$ret[] = $to_add;

$subforums = $this->getAnySubforums($result->id, $groups, ++$depth);
$subforums = $this->getAnySubforums($result->id, $groups, ++$depth, $onlyOwnTopics, $user_id);

if (count($subforums)) {
foreach ($subforums as $subforum) {
Expand Down Expand Up @@ -808,4 +797,47 @@ public static function getAccessibleLabels(array $labels, array $user_groups): a
return $prev;
}, []);
}

/**
* Get the latest post in a "View own topic" forum
* This could be a topic created by the user, or a sticky topic
*
* @param int $forumId
* @param int $userId
* @return array|null Time of latest post, post creator ID, topic ID
*/
private function getLatestPostInOwnTopicForum(int $forumId, int $userId): ?array {
$latest_post = $this->_db->query(
<<<SQL
SELECT
p.topic_id,
p.created,
p.post_date,
p.post_creator
FROM nl2_topics t
LEFT JOIN nl2_posts p
ON p.id = (
SELECT id
FROM nl2_posts sp
WHERE sp.topic_id = t.id
AND sp.deleted = 0
ORDER BY sp.created DESC LIMIT 1
)
WHERE t.forum_id = ?
AND (t.topic_creator = ? OR t.sticky = 1)
ORDER BY p.created, p.post_date DESC LIMIT 1
SQL,
[$forumId, $userId]
);

if ($latest_post->count() && $latest_post = $latest_post->first()) {
return [
$latest_post->created ?? strtotime($latest_post->post_date),
$latest_post->post_creator,
$latest_post->topic_id,
];
}

return null;
}
}
2 changes: 1 addition & 1 deletion modules/Forum/pages/forum/view_forum.php
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@
if ($forum->canViewOtherTopics($subforum->id, $user_groups)) {
$latest_post = DB::getInstance()->query('SELECT * FROM nl2_topics WHERE forum_id = ? AND deleted = 0 ORDER BY topic_reply_date DESC', [$subforum->id])->results();
} else {
$latest_post = DB::getInstance()->query('SELECT * FROM nl2_topics WHERE forum_id = ? AND deleted = 0 AND topic_creator = ? ORDER BY topic_reply_date DESC', [$subforum->id, $user_id])->results();
$latest_post = DB::getInstance()->query('SELECT * FROM nl2_topics WHERE forum_id = ? AND deleted = 0 AND (topic_creator = ? OR sticky = 1) ORDER BY topic_reply_date DESC', [$subforum->id, $user_id])->results();
}

$subforum_topics = count($latest_post);
Expand Down

0 comments on commit 2a1aaa9

Please sign in to comment.