Skip to content

Commit 6b5e663

Browse files
committed
GH-230 Move stats list to a component
1 parent a11d186 commit 6b5e663

File tree

7 files changed

+144
-155
lines changed

7 files changed

+144
-155
lines changed

modules/overview/_includes.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626

2727
include($includePath . './screens/Overview/components/PlanetsListElement/PlanetsListElement.component.php');
2828
include($includePath . './screens/Overview/components/ResourcesTransport/ResourcesTransport.component.php');
29+
include($includePath . './screens/Overview/components/StatsList/StatsList.component.php');
2930

3031
include($includePath . './screens/PlanetNameChange/PlanetNameChange.screen.php');
3132
include($includePath . './screens/PlanetNameChange/PlanetNameChange.utils.php');
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
<?php
2+
3+
namespace UniEngine\Engine\Modules\Overview\Screens\Overview\Components\StatsList;
4+
5+
/**
6+
* @param array $props
7+
* @param array $props['stats']
8+
*/
9+
function render($props) {
10+
global $_Lang;
11+
12+
$stats = $props['stats'];
13+
14+
$localTemplateLoader = createLocalTemplateLoader(__DIR__);
15+
$tplBodyCache = [
16+
'body' => $localTemplateLoader('body'),
17+
'statCategoryRow' => $localTemplateLoader('statCategoryRow'),
18+
];
19+
20+
$categories = [
21+
'general' => [
22+
'categoryName' => $_Lang['Box_statGeneral'],
23+
'categoryType' => '',
24+
'pointsKey' => 'total_points',
25+
'recordsCurrentKey' => 'total_old_rank',
26+
'recordsOldKey' => 'total_rank',
27+
],
28+
'buildings' => [
29+
'categoryName' => $_Lang['Box_statBuildings'],
30+
'categoryType' => '4',
31+
'pointsKey' => 'build_points',
32+
'recordsCurrentKey' => 'build_rank',
33+
'recordsOldKey' => 'build_old_rank',
34+
],
35+
'fleet' => [
36+
'categoryName' => $_Lang['Box_statFleet'],
37+
'categoryType' => '2',
38+
'pointsKey' => 'fleet_points',
39+
'recordsCurrentKey' => 'fleet_rank',
40+
'recordsOldKey' => 'fleet_old_rank',
41+
],
42+
'defenses' => [
43+
'categoryName' => $_Lang['Box_statDefense'],
44+
'categoryType' => '5',
45+
'pointsKey' => 'defs_points',
46+
'recordsCurrentKey' => 'defs_rank',
47+
'recordsOldKey' => 'defs_old_rank',
48+
],
49+
'research' => [
50+
'categoryName' => $_Lang['Box_statResearch'],
51+
'categoryType' => '3',
52+
'pointsKey' => 'tech_points',
53+
'recordsCurrentKey' => 'tech_rank',
54+
'recordsOldKey' => 'tech_old_rank',
55+
],
56+
];
57+
58+
$categoriesHTML = [];
59+
60+
foreach ($categories as $category) {
61+
$categoryTplBodyParams = [
62+
'categoryName' => $category['categoryName'],
63+
'statCategoryType' => $category['categoryType'],
64+
'userCategoryRankLabel' => '0',
65+
'userCategoryRankPosition' => '0',
66+
'userCategoryPoints' => prettyNumber($stats[$category['pointsKey']]),
67+
'statsUnit' => $_Lang['_statUnit'],
68+
];
69+
70+
$recordsCurrentKey = $category['recordsCurrentKey'];
71+
$recordsOldKey = $category['recordsOldKey'];
72+
73+
if (
74+
!isset($stats[$recordsCurrentKey]) ||
75+
$stats[$recordsCurrentKey] <= 0
76+
) {
77+
$categoriesHTML[] = parsetemplate($tplBodyCache['statCategoryRow'], $categoryTplBodyParams);
78+
79+
continue;
80+
}
81+
82+
$oldPosition = $stats[$recordsOldKey];
83+
$currentPosition = $stats[$recordsCurrentKey];
84+
85+
$positionDifference = $oldPosition - $currentPosition;
86+
$positionDifferenceLabel = null;
87+
88+
if ($positionDifference > 0) {
89+
$positionDifferenceLabel = "<span class=\"lime\">(+{$positionDifference})</span>";
90+
} elseif ($positionDifference == 0) {
91+
$positionDifferenceLabel = "<span class=\"lightblue\">(*)</span>";
92+
} else {
93+
$positionDifferenceLabel = "<span class=\"red\">({$positionDifference})</span>";
94+
}
95+
96+
$categoryTplBodyParams['userCategoryRankPosition'] = $currentPosition;
97+
$categoryTplBodyParams['userCategoryRankLabel'] = implode(
98+
' ',
99+
[
100+
$currentPosition,
101+
$positionDifferenceLabel,
102+
]
103+
);
104+
105+
$categoriesHTML[] = parsetemplate($tplBodyCache['statCategoryRow'], $categoryTplBodyParams);
106+
}
107+
108+
$tplBodyParams = [
109+
'statsCategories' => implode('', $categoriesHTML),
110+
];
111+
$tplBodyParams = array_merge($_Lang, $tplBodyParams);
112+
113+
$componentHTML = parsetemplate(
114+
$tplBodyCache['body'],
115+
$tplBodyParams
116+
);
117+
118+
return [
119+
'componentHTML' => $componentHTML,
120+
];
121+
}
122+
123+
?>
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<table width="100%" align="center">
2+
<tr>
3+
<td colspan="2" class="c pad3">{Statistics}</td>
4+
</tr>
5+
{statsCategories}
6+
</table>
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?php
2+
3+
header("Location: ../index.php");
4+
5+
?>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<tr>
2+
<th><a href="stats.php?range={userCategoryRankPosition}&amp;type={statCategoryType}">{categoryName}</a></th>
3+
<th>{userCategoryRankLabel}<br/><span class="grey">{userCategoryPoints} {statsUnit}</span></th>
4+
</tr>

overview.php

Lines changed: 4 additions & 130 deletions
Original file line numberDiff line numberDiff line change
@@ -336,138 +336,12 @@
336336
$Referred = doquery("SELECT COUNT(`id`) as `count` FROM {{table}} WHERE `referrer_id` = {$_User['id']};", 'referring_table', true);
337337
$parse['RefferedCounter'] = prettyNumber((($Referred['count'] > 0) ? $Referred['count'] : '0'));
338338

339-
// --- Get UserStats ---
339+
// --- Render UserStats ---
340340
$StatRecord = doquery("SELECT * FROM {{table}} WHERE `stat_type` = '1' AND `id_owner` = {$_User['id']} LIMIT 1;", 'statpoints', true);
341-
$parse['user_points'] = prettyNumber($StatRecord['build_points']);
342-
$parse['user_fleet'] = prettyNumber($StatRecord['fleet_points']);
343-
$parse['user_defs'] = prettyNumber($StatRecord['defs_points']);
344-
$parse['player_points_tech'] = prettyNumber($StatRecord['tech_points']);
345-
$parse['total_points'] = prettyNumber($StatRecord['total_points']);
346-
347-
// Total Rank changes
348-
if($StatRecord['total_rank'] > 0)
349-
{
350-
$ile = $StatRecord['total_old_rank'] - $StatRecord['total_rank'];
351-
if($ile > 0)
352-
{
353-
$ile = "<span class=\"lime\">(+{$ile})</span>";
354-
}
355-
elseif($ile < 0)
356-
{
357-
$ile = "<span class=\"red\">({$ile})</span>";
358-
}
359-
else
360-
{
361-
$ile = '<span class="lightblue">(*)</span>';
362-
}
363-
$parse['user_total_rank'] = '<a href="stats.php?range='.$StatRecord['total_rank'].'">'.$StatRecord['total_rank'].'</a> '.$ile;
364-
}
365-
else
366-
{
367-
$parse['user_total_rank'] = 0;
368-
$StatRecord['total_rank'] = '0';
369-
}
370-
$parse['set_user_total_rank'] = $StatRecord['total_rank'];
371-
372-
// Build Rank changes
373-
if(isset($StatRecord['build_rank']) && $StatRecord['build_rank'] > 0)
374-
{
375-
$ile = $StatRecord['build_old_rank'] - $StatRecord['build_rank'];
376-
if($ile > 0)
377-
{
378-
$ile = "<span class=\"lime\">(+{$ile})</span>";
379-
}
380-
elseif($ile < 0)
381-
{
382-
$ile = "<span class=\"red\">({$ile})</span>";
383-
}
384-
else
385-
{
386-
$ile = '<span class="lightblue">(*)</span>';
387-
}
388-
$parse['user_br'] = '<a href="stats.php?range='.$StatRecord['build_rank'].'&amp;type=4">'.$StatRecord['build_rank'].'</a> '.$ile;
389-
}
390-
else
391-
{
392-
$parse['user_br'] = 0;
393-
$StatRecord['build_rank'] = '0';
394-
}
395-
$parse['set_user_br'] = $StatRecord['build_rank'];
396-
397-
// Fleet rank changes
398-
if(isset($StatRecord['fleet_rank']) && $StatRecord['fleet_rank'] > 0)
399-
{
400-
$ile = $StatRecord['fleet_old_rank'] - $StatRecord['fleet_rank'];
401-
if($ile > 0)
402-
{
403-
$ile = "<span class=\"lime\">(+{$ile})</span>";
404-
}
405-
else if($ile < 0)
406-
{
407-
$ile = "<span class=\"red\">({$ile})</span>";
408-
}
409-
else
410-
{
411-
$ile = '<span class="lightblue">(*)</span>';
412-
}
413-
$parse['user_fr'] = '<a href="stats.php?range='.$StatRecord['fleet_rank'].'&amp;type=2">'.$StatRecord['fleet_rank'].'</a> '.$ile;
414-
}
415-
else
416-
{
417-
$parse['user_fr'] = 0;
418-
$StatRecord['fleet_rank'] = '0';
419-
}
420-
$parse['set_user_fr'] = $StatRecord['fleet_rank'];
421-
422-
// Defense rank changes
423-
if(isset($StatRecord['defs_rank']) && $StatRecord['defs_rank'] > 0)
424-
{
425-
$ile = $StatRecord['defs_old_rank'] - $StatRecord['defs_rank'];
426-
if($ile > 0)
427-
{
428-
$ile = "<span class=\"lime\">(+{$ile})</span>";
429-
}
430-
else if($ile < 0)
431-
{
432-
$ile = "<span class=\"red\">({$ile})</span>";
433-
}
434-
else
435-
{
436-
$ile = '<span class="lightblue">(*)</span>';
437-
}
438-
$parse['user_dr'] = '<a href="stats.php?range='.$StatRecord['defs_rank'].'&amp;type=5">'.$StatRecord['defs_rank'].'</a> '.$ile;
439-
}
440-
else
441-
{
442-
$parse['user_dr'] = 0;
443-
$StatRecord['defs_rank'] = '0';
444-
}
445-
$parse['set_user_dr'] = $StatRecord['defs_rank'];
446341

447-
// Research rank changes
448-
if(isset($StatRecord['tech_rank']) && $StatRecord['tech_rank'] > 0)
449-
{
450-
$ile = $StatRecord['tech_old_rank'] - $StatRecord['tech_rank'];
451-
if($ile > 0)
452-
{
453-
$ile = "<span class=\"lime\">(+{$ile})</span>";
454-
}
455-
else if($ile < 0)
456-
{
457-
$ile = "<span class=\"red\">({$ile})</span>";
458-
}
459-
else
460-
{
461-
$ile = '<span class="lightblue">(*)</span>';
462-
}
463-
$parse['user_tr'] = '<a href="stats.php?range='.$StatRecord['tech_rank'].'&amp;type=3">'.$StatRecord['tech_rank'].'</a> '.$ile;
464-
}
465-
else
466-
{
467-
$parse['user_tr'] = 0;
468-
$StatRecord['tech_rank'] = '0';
469-
}
470-
$parse['set_user_tr'] = $StatRecord['tech_rank'];
342+
$parse['Component_StatsList'] = Overview\Screens\Overview\Components\StatsList\render([
343+
'stats' => $StatRecord,
344+
])['componentHTML'];
471345

472346
// Get User Achievements
473347
$GetStats_Fields = '`ustat_raids_won`, `ustat_raids_draw`, `ustat_raids_lost`, `ustat_raids_acs_won`, `ustat_raids_inAlly`, `ustat_raids_missileAttack`';

templates/default_template/overview_body.tpl

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -166,31 +166,7 @@ $(document).ready(function()
166166
</table>
167167
</th>
168168
<th width="215">
169-
<table width="100%" align="center">
170-
<tr>
171-
<td colspan="2" class="c pad3">{Statistics}</td>
172-
</tr>
173-
<tr>
174-
<th><a href="stats.php?range={set_user_total_rank}">{Box_statGeneral}</a></th>
175-
<th>{user_total_rank}<br/><span class="grey">{total_points} {_statUnit}</span></th>
176-
</tr>
177-
<tr>
178-
<th><a href="stats.php?range={set_user_br}&amp;type=4">{Box_statBuildings}</a></th>
179-
<th>{user_br}<br/><span class="grey">{user_points} {_statUnit}</span></th>
180-
</tr>
181-
<tr>
182-
<th><a href="stats.php?range={set_user_fr}&amp;type=2">{Box_statFleet}</a></th>
183-
<th>{user_fr}<br/><span class="grey">{user_fleet} {_statUnit}</span></th>
184-
</tr>
185-
<tr>
186-
<th><a href="stats.php?range={set_user_dr}&amp;type=5">{Box_statDefense}</a></th>
187-
<th>{user_dr}<br/><span class="grey">{user_defs} {_statUnit}</span></th>
188-
</tr>
189-
<tr>
190-
<th><a href="stats.php?range={set_user_tr}&amp;type=3">{Box_statResearch}</a></th>
191-
<th>{user_tr}<br/><span class="grey">{player_points_tech} {_statUnit}</span></th>
192-
</tr>
193-
</table>
169+
{Component_StatsList}
194170
<br/>
195171
<table width="100%" align="center">
196172
<tr>

0 commit comments

Comments
 (0)