From f05f60f3e9e267e978c16f64cb5b3b8ea30d84d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Dzieko=C5=84ski?= Date: Fri, 8 Jul 2022 00:03:12 +0200 Subject: [PATCH] GH-230 Move quick transport rendering to a separate component --- modules/overview/_includes.php | 1 + .../ResourcesTransport.component.php | 91 +++++++++++++++++++ .../components/ResourcesTransport/body.tpl | 14 +++ .../components/ResourcesTransport/index.php | 5 + .../components/ResourcesTransport/shipRow.tpl | 5 + overview.php | 29 +----- templates/default_template/overview_body.tpl | 29 +----- 7 files changed, 121 insertions(+), 53 deletions(-) create mode 100644 modules/overview/screens/Overview/components/ResourcesTransport/ResourcesTransport.component.php create mode 100644 modules/overview/screens/Overview/components/ResourcesTransport/body.tpl create mode 100644 modules/overview/screens/Overview/components/ResourcesTransport/index.php create mode 100644 modules/overview/screens/Overview/components/ResourcesTransport/shipRow.tpl diff --git a/modules/overview/_includes.php b/modules/overview/_includes.php index a395f62f7..a472c031b 100644 --- a/modules/overview/_includes.php +++ b/modules/overview/_includes.php @@ -25,6 +25,7 @@ include($includePath . './screens/FirstLogin/utils/helpers/getReferrerTasksData.helper.php'); include($includePath . './screens/Overview/components/PlanetsListElement/PlanetsListElement.component.php'); + include($includePath . './screens/Overview/components/ResourcesTransport/ResourcesTransport.component.php'); include($includePath . './screens/PlanetNameChange/PlanetNameChange.screen.php'); include($includePath . './screens/PlanetNameChange/PlanetNameChange.utils.php'); diff --git a/modules/overview/screens/Overview/components/ResourcesTransport/ResourcesTransport.component.php b/modules/overview/screens/Overview/components/ResourcesTransport/ResourcesTransport.component.php new file mode 100644 index 000000000..d6a9dc1a1 --- /dev/null +++ b/modules/overview/screens/Overview/components/ResourcesTransport/ResourcesTransport.component.php @@ -0,0 +1,91 @@ + $localTemplateLoader('body'), + 'shipRow' => $localTemplateLoader('shipRow'), + ]; + + $resourcesTotalSum = ( + $planet['metal'] + + $planet['crystal'] + + $planet['deuterium'] + ); + + $shipRows = []; + + foreach ($_Vars_ElementCategories['units']['transport'] as $shipId) { + $requiredShipsCount = ceil($resourcesTotalSum / getShipsStorageCapacity($shipId)); + $currentShipsCount = Elements\getElementCurrentCount($shipId, $planet, $user); + $remainingShipsCount = $currentShipsCount - $requiredShipsCount; + + $shipRows[] = parsetemplate($tplBodyCache['shipRow'], [ + 'shipName' => $_Lang['tech'][$shipId], + 'requiredCount' => prettyNumber($requiredShipsCount), + 'remainingCount' => str_replace('-', '', prettyColorNumber($remainingShipsCount, true)), + ]); + } + + $shouldDisplayQuickTransportBtn = ( + isPro($user) && + $user['current_planet'] != $user['settings_mainPlanetID'] + ); + $quickTransportBtnText = ''; + + if ($shouldDisplayQuickTransportBtn) { + $getQuickTransportTargetPlanetQuery = ( + "SELECT " . + "`name`, `galaxy`, `system`, `planet` " . + "FROM {{table}} " . + "WHERE " . + "`id` = {$user['settings_mainPlanetID']} " . + ";" + ); + $quickTransportTargetPlanet = doquery($getQuickTransportTargetPlanetQuery, 'planets', true); + + $quickTransportBtnText = sprintf( + $_Lang['QuickResSend_Button'], + $quickTransportTargetPlanet['name'], + $quickTransportTargetPlanet['galaxy'], + $quickTransportTargetPlanet['system'], + $quickTransportTargetPlanet['planet'] + ); + } + + $tplBodyParams = [ + 'shipRowsHTML' => implode('', $shipRows), + 'Hide_QuickResButton' => ( + $shouldDisplayQuickTransportBtn ? + '' : + 'style="display: none;"' + ), + 'QuickResSend_Button' => $quickTransportBtnText, + ]; + $tplBodyParams = array_merge($_Lang, $tplBodyParams); + + $componentHTML = parsetemplate( + $tplBodyCache['body'], + $tplBodyParams + ); + + return [ + 'componentHTML' => $componentHTML, + ]; +} + +?> diff --git a/modules/overview/screens/Overview/components/ResourcesTransport/body.tpl b/modules/overview/screens/Overview/components/ResourcesTransport/body.tpl new file mode 100644 index 000000000..75f420ee5 --- /dev/null +++ b/modules/overview/screens/Overview/components/ResourcesTransport/body.tpl @@ -0,0 +1,14 @@ + + {ResourcesTransport} + + +   + {Box_transRequired} + {Box_transMissing_Stay} + +{shipRowsHTML} + + + + + diff --git a/modules/overview/screens/Overview/components/ResourcesTransport/index.php b/modules/overview/screens/Overview/components/ResourcesTransport/index.php new file mode 100644 index 000000000..bc99142d1 --- /dev/null +++ b/modules/overview/screens/Overview/components/ResourcesTransport/index.php @@ -0,0 +1,5 @@ + diff --git a/modules/overview/screens/Overview/components/ResourcesTransport/shipRow.tpl b/modules/overview/screens/Overview/components/ResourcesTransport/shipRow.tpl new file mode 100644 index 000000000..2f33af743 --- /dev/null +++ b/modules/overview/screens/Overview/components/ResourcesTransport/shipRow.tpl @@ -0,0 +1,5 @@ + + {shipName} + {requiredCount} + {remainingCount} + diff --git a/overview.php b/overview.php index 8098f29f2..e7fb1f87a 100644 --- a/overview.php +++ b/overview.php @@ -535,31 +535,10 @@ } // --- Transporters ---------------------------- - $resourcesTransportNeededStorage = ( - $_Planet['metal'] + - $_Planet['crystal'] + - $_Planet['deuterium'] - ); - - foreach ($_Vars_ElementCategories['units']['transport'] as $shipId) { - $requiredShipsCount = ceil($resourcesTransportNeededStorage / getShipsStorageCapacity($shipId)); - $currentShipsCount = Elements\getElementCurrentCount($shipId, $_Planet, $_User); - $remainingShipsCount = $currentShipsCount - $requiredShipsCount; - - $parse["transportShips__{$shipId}__name"] = $_Lang['tech'][$shipId]; - $parse["transportShips__{$shipId}__requiredCount"] = prettyNumber($requiredShipsCount); - $parse["transportShips__{$shipId}__remainingCount"] = str_replace('-', '', prettyColorNumber($remainingShipsCount, true)); - } - - if(isPro() AND $_User['current_planet'] != $_User['settings_mainPlanetID']) - { - $GetQuickResPlanet = doquery("SELECT `name`, `galaxy`, `system`, `planet` FROM {{table}} WHERE `id` = {$_User['settings_mainPlanetID']};", 'planets', true); - $parse['QuickResSend_Button'] = sprintf($_Lang['QuickResSend_Button'], $GetQuickResPlanet['name'], $GetQuickResPlanet['galaxy'], $GetQuickResPlanet['system'], $GetQuickResPlanet['planet']); - } - else - { - $parse['Hide_QuickResButton'] = ' style="display: none;"'; - } + $parse['Component_QuickTransport'] = Overview\Screens\Overview\Components\ResourcesTransport\render([ + 'user' => &$_User, + 'planet' => &$_Planet, + ])['componentHTML']; // --- Flying Fleets Table --- $Result_GetFleets = Flights\Fetchers\fetchCurrentFlights([ 'userId' => $_User['id'] ]); diff --git a/templates/default_template/overview_body.tpl b/templates/default_template/overview_body.tpl index 8d1d87078..563344444 100644 --- a/templates/default_template/overview_body.tpl +++ b/templates/default_template/overview_body.tpl @@ -256,34 +256,7 @@ $(document).ready(function() - - {ResourcesTransport} - - -   - {Box_transRequired} - {Box_transMissing_Stay} - - - {transportShips__202__name} - {transportShips__202__requiredCount} - {transportShips__202__remainingCount} - - - {transportShips__203__name} - {transportShips__203__requiredCount} - {transportShips__203__remainingCount} - - - {transportShips__217__name} - {transportShips__217__requiredCount} - {transportShips__217__remainingCount} - - - - - - + {Component_QuickTransport} {OtherPlanets_header}