Skip to content

Commit

Permalink
GH-230 Move new messages counter to a component
Browse files Browse the repository at this point in the history
  • Loading branch information
mdziekon committed Jul 11, 2022
1 parent f61692f commit 54ac6eb
Show file tree
Hide file tree
Showing 5 changed files with 93 additions and 26 deletions.
1 change: 1 addition & 0 deletions modules/overview/_includes.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@

include($includePath . './screens/Overview/components/AdminAlerts/AdminAlerts.component.php');
include($includePath . './screens/Overview/components/EmailChangeInfo/EmailChangeInfo.component.php');
include($includePath . './screens/Overview/components/NewMessagesInfo/NewMessagesInfo.component.php');
include($includePath . './screens/Overview/components/PlanetsListElement/PlanetsListElement.component.php');
include($includePath . './screens/Overview/components/ResourcesTransport/ResourcesTransport.component.php');
include($includePath . './screens/Overview/components/StatsList/StatsList.component.php');
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
<?php

namespace UniEngine\Engine\Modules\Overview\Screens\Overview\Components\NewMessagesInfo;

/**
* @param array $props
* @param number $props['userId']
*/
function render($props) {
global $_Lang;

$userId = $props['userId'];

$getMessagesDataQuery = (
"SELECT " .
"COUNT(`id`) as `count` " .
"FROM {{table}} " .
"WHERE " .
"`deleted` = false AND " .
"`read` = false AND " .
"`id_owner` = {$userId} " .
";"
);
$messagesData = doquery($getMessagesDataQuery, 'messages', true);

if (
!$messagesData ||
$messagesData['count'] == 0
) {
return [
'componentHTML' => '',
];
}

$localTemplateLoader = createLocalTemplateLoader(__DIR__);

/**
* TODO: This counting logic is strictly related to Polish rules for countable things.
* In the future, use a better translation system to remove that and bring better support for other languages.
*/
if ($messagesData['count'] == 1) {
$msgBoxNew_suffix = $_Lang['MsgBox_New_1'];
$msgBoxUnread_suffix = $_Lang['MsgBox_Unreaden_1'];
$msgBoxCounter_variant = $_Lang['MsgBox_Msg'];
} else if (
$messagesData['count'] > 1 &&
$messagesData['count'] < 5
) {
$msgBoxNew_suffix = $_Lang['MsgBox_New_2_4'];
$msgBoxUnread_suffix = $_Lang['MsgBox_Unreaden_2_4'];
$msgBoxCounter_variant = $_Lang['MsgBox_Msgs'];
} else {
$msgBoxNew_suffix = $_Lang['MsgBox_New_5'];
$msgBoxUnread_suffix = $_Lang['MsgBox_Unreaden_5'];
$msgBoxCounter_variant = $_Lang['MsgBox_Msgs'];
}

$newMessagesCount = prettyNumber($messagesData['count']);

$content = "{$_Lang['MsgBox_YouHave']} {$newMessagesCount} {$_Lang['MsgBox_New']}{$msgBoxNew_suffix}, {$_Lang['MsgBox_Unreaden']}{$msgBoxUnread_suffix} {$msgBoxCounter_variant}!";

$tplBodyParams = [
'content' => $content,
];
$tplBodyParams = array_merge($_Lang, $tplBodyParams);

$componentHTML = parsetemplate(
$localTemplateLoader('body'),
$tplBodyParams
);

return [
'componentHTML' => $componentHTML,
];
}

?>
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<tr>
<th colspan="3">
<a href="messages.php">
{content}
</a>
</th>
</tr>
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?php

header("Location: ../index.php");

?>
29 changes: 3 additions & 26 deletions overview.php
Original file line number Diff line number Diff line change
Expand Up @@ -131,32 +131,9 @@
}

// --- New Messages Information Box ----------------------------------------------------------------------
$NewMsg = doquery("SELECT COUNT(`id`) as `count` FROM {{table}} WHERE `deleted` = false AND `read` = false AND `id_owner` = {$_User['id']};", 'messages', true);
if($NewMsg['count'] > 0)
{
if($NewMsg['count'] == 1)
{
$MsgBox_NewSurfix = $_Lang['MsgBox_New_1'];
$MsgBox_UnreadenSurfix= $_Lang['MsgBox_Unreaden_1'];
$MsgBox_Msg_s = $_Lang['MsgBox_Msg'];
}
elseif($NewMsg['count'] > 1 AND $NewMsg['count'] < 5)
{
$MsgBox_NewSurfix = $_Lang['MsgBox_New_2_4'];
$MsgBox_UnreadenSurfix= $_Lang['MsgBox_Unreaden_2_4'];
$MsgBox_Msg_s = $_Lang['MsgBox_Msgs'];
}
else
{
$MsgBox_NewSurfix = $_Lang['MsgBox_New_5'];
$MsgBox_UnreadenSurfix= $_Lang['MsgBox_Unreaden_5'];
$MsgBox_Msg_s = $_Lang['MsgBox_Msgs'];
}
$MsgBoxText = $_Lang['MsgBox_YouHave'].' '.prettyNumber($NewMsg['count']).' '.$_Lang['MsgBox_New'].$MsgBox_NewSurfix.', '.$_Lang['MsgBox_Unreaden'].$MsgBox_UnreadenSurfix.' '.$MsgBox_Msg_s.'!';

$NewMsgBox = '<tr><th colspan="3"><a href="messages.php">'.$MsgBoxText.'</a></th></tr>';
$parse['NewMsgBox'] = $NewMsgBox;
}
$parse['NewMsgBox'] = Overview\Screens\Overview\Components\NewMessagesInfo\render([
'userId' => $_User['id'],
])['componentHTML'];

// --- New Polls Information Box -------------------------------------------------------------------------
$SQLResult_GetPolls = doquery("SELECT {{table}}.`id`, `votes`.`id` AS `vote_id` FROM {{table}} LEFT JOIN {{prefix}}poll_votes AS `votes` ON `votes`.`poll_id` = {{table}}.id AND `votes`.`user_id` = {$_User['id']} WHERE {{table}}.`open` = 1 ORDER BY {{table}}.`time` DESC;", 'polls');
Expand Down

0 comments on commit 54ac6eb

Please sign in to comment.