Skip to content

Commit 41cbccf

Browse files
committed
GH-230 Move Planet name change screen's code completely to its submodule
1 parent a2d261d commit 41cbccf

File tree

5 files changed

+147
-55
lines changed

5 files changed

+147
-55
lines changed

modules/overview/_includes.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
include($includePath . './screens/FirstLogin/utils/effects/updateUserOnFirstLogin.effect.php');
1717
include($includePath . './screens/FirstLogin/utils/helpers/getReferrerTasksData.helper.php');
1818

19+
include($includePath . './screens/PlanetNameChange/PlanetNameChange.screen.php');
20+
include($includePath . './screens/PlanetNameChange/PlanetNameChange.utils.php');
1921
include($includePath . './screens/PlanetNameChange/utils/errorMappers/validateNewName.errorMapper.php');
2022
include($includePath . './screens/PlanetNameChange/utils/validators/validateNewName.validator.php');
2123

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
<?php
2+
3+
namespace UniEngine\Engine\Modules\Overview\Screens\PlanetNameChange;
4+
5+
use UniEngine\Engine\Common;
6+
use UniEngine\Engine\Modules\Overview\Screens\PlanetNameChange;
7+
8+
/**
9+
* @param array $params
10+
* @param arrayRef $params['input']
11+
* @param arrayRef $params['user']
12+
* @param arrayRef $params['planet']
13+
*/
14+
function render($props) {
15+
global $_Lang;
16+
17+
$input = &$props['input'];
18+
$user = &$props['user'];
19+
$planet = &$props['planet'];
20+
21+
$effectsResult = PlanetNameChange\runEffects([
22+
'input' => &$input,
23+
'user' => &$user,
24+
'planet' => &$planet,
25+
]);
26+
27+
$screenTitle = $_Lang['Rename_TitleMain'];
28+
$localTemplateLoader = createLocalTemplateLoader(__DIR__);
29+
30+
$isOnPlanet = $planet['planet_type'] == 1;
31+
$galaxyPlanetLink = Common\Components\GalaxyPlanetLink\render([
32+
'coords' => $planet,
33+
]);
34+
35+
$tplBodyParams = [
36+
'Rename_CurrentName' => sprintf(
37+
$_Lang['Rename_CurrentName'],
38+
(
39+
$isOnPlanet ?
40+
$_Lang['Rename_Planet'] :
41+
$_Lang['Rename_Moon']
42+
)
43+
),
44+
'Rename_Ins_CurrentName' => "{$planet['name']} {$galaxyPlanetLink}",
45+
46+
'Rename_Ins_MsgHide' => (
47+
$effectsResult['isSuccess'] === null ?
48+
'style="display: none;"' :
49+
''
50+
),
51+
'Rename_Ins_MsgColor' => (
52+
$effectsResult['isSuccess'] !== null ?
53+
$effectsResult['payload']['color'] :
54+
''
55+
),
56+
'Rename_Ins_MsgTxt' => (
57+
$effectsResult['isSuccess'] !== null ?
58+
$effectsResult['payload']['message'] :
59+
''
60+
),
61+
];
62+
$tplBodyParams = array_merge($_Lang, $tplBodyParams);
63+
64+
$componentHTML = parsetemplate(
65+
$localTemplateLoader('body'),
66+
$tplBodyParams
67+
);
68+
69+
display($componentHTML, $screenTitle);
70+
}
71+
72+
?>
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
<?php
2+
3+
namespace UniEngine\Engine\Modules\Overview\Screens\PlanetNameChange;
4+
5+
use UniEngine\Engine\Modules\Overview\Screens\PlanetNameChange;
6+
7+
/**
8+
* @param array $params
9+
* @param arrayRef $params['input']
10+
* @param arrayRef $params['user']
11+
* @param arrayRef $params['planet']
12+
*/
13+
function runEffects($props) {
14+
global $_Lang;
15+
16+
$input = &$props['input'];
17+
$user = &$props['user'];
18+
$planet = &$props['planet'];
19+
20+
if (
21+
!isset($input['action']) ||
22+
$input['action'] != 'do'
23+
) {
24+
return [
25+
'isSuccess' => null,
26+
];
27+
}
28+
29+
$newName = (
30+
isset($input['set_newname']) ?
31+
trim($input['set_newname']) :
32+
''
33+
);
34+
35+
$nameChangeValidationResult = PlanetNameChange\Utils\Validators\validateNewName([
36+
'input' => [
37+
'newName' => $newName,
38+
],
39+
'planet' => &$planet,
40+
]);
41+
42+
if (!$nameChangeValidationResult['isSuccess']) {
43+
$errorMessage = PlanetNameChange\Utils\ErrorMappers\mapValidateNewNameErrorToReadableMessage(
44+
$nameChangeValidationResult['error']
45+
);
46+
47+
return [
48+
'isSuccess' => false,
49+
'payload' => [
50+
'message' => $errorMessage,
51+
'color' => 'red',
52+
],
53+
];
54+
}
55+
56+
$planet['name'] = $newName;
57+
58+
doquery("UPDATE {{table}} SET `name` = '{$newName}' WHERE `id` = {$user['current_planet']} LIMIT 1;", 'planets');
59+
60+
return [
61+
'isSuccess' => true,
62+
'payload' => [
63+
'message' => $_Lang['RenamePlanet_NameSaved'],
64+
'color' => 'lime',
65+
],
66+
];
67+
}
68+
69+
?>

overview.php

Lines changed: 4 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -39,63 +39,12 @@
3939
switch($mode)
4040
{
4141
case 'rename':
42-
// --- Rename Planet Page ---
43-
$parse = $_Lang;
44-
45-
$parse['Rename_Ins_MsgHide'] = 'style="display: none;"';
46-
$parse['Rename_Ins_MsgTxt'] = '';
47-
48-
if($_Planet['planet_type'] == 1)
49-
{
50-
$parse['Rename_CurrentName'] = sprintf($parse['Rename_CurrentName'], $parse['Rename_Planet']);
51-
}
52-
else
53-
{
54-
$parse['Rename_CurrentName'] = sprintf($parse['Rename_CurrentName'], $parse['Rename_Moon']);
55-
}
56-
57-
if (
58-
isset($_POST['action']) &&
59-
$_POST['action'] == 'do'
60-
) {
61-
// User wants to change planets name
62-
$NewName = trim($_POST['set_newname']);
63-
64-
$nameChangeValidationResult = Overview\Screens\PlanetNameChange\Utils\Validators\validateNewName([
65-
'input' => [
66-
'newName' => $NewName,
67-
],
68-
'planet' => &$_Planet,
69-
]);
70-
71-
if (!$nameChangeValidationResult['isSuccess']) {
72-
$errorMessage = Overview\Screens\PlanetNameChange\Utils\ErrorMappers\mapValidateNewNameErrorToReadableMessage(
73-
$nameChangeValidationResult['error']
74-
);
75-
76-
$parse['Rename_Ins_MsgColor'] = 'red';
77-
$parse['Rename_Ins_MsgTxt'] = $errorMessage;
78-
} else {
79-
$_Planet['name'] = $NewName;
80-
doquery("UPDATE {{table}} SET `name` = '{$NewName}' WHERE `id` = {$_User['current_planet']} LIMIT 1;", 'planets');
81-
82-
$parse['Rename_Ins_MsgColor'] = 'lime';
83-
$parse['Rename_Ins_MsgTxt'] = $_Lang['RenamePlanet_NameSaved'];
84-
}
85-
}
86-
87-
if ($parse['Rename_Ins_MsgTxt'] !== '') {
88-
$parse['Rename_Ins_MsgHide'] = '';
89-
}
90-
91-
$galaxyPlanetLink = Common\Components\GalaxyPlanetLink\render([
92-
'coords' => $_Planet,
42+
Overview\Screens\PlanetNameChange\render([
43+
'input' => &$_POST,
44+
'user' => &$_User,
45+
'planet' => &$_Planet,
9346
]);
9447

95-
$parse['Rename_Ins_CurrentName'] = "{$_Planet['name']} {$galaxyPlanetLink}";
96-
97-
$page = parsetemplate(gettemplate('overview_rename'), $parse);
98-
display($page, $_Lang['Rename_TitleMain']);
9948
break;
10049
case 'abandon':
10150
// --- Abandon Colony ---

0 commit comments

Comments
 (0)