Skip to content

Commit 4c2d977

Browse files
mfilipcblanc
authored andcommitted
refactor: replace helper with view models in admin and store templates
Replace direct helper calls with view model pattern in admin.phtml and store.phtml templates. Add AdminConfig and StoreConfig view models to layout XML files and update template variable references from $helper to $viewModel.
1 parent 15bd8ff commit 4c2d977

File tree

6 files changed

+94
-37
lines changed

6 files changed

+94
-37
lines changed

ViewModel/AdminConfig.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
namespace Idealpostcodes\Ukaddresssearch\ViewModel;
3+
4+
use Idealpostcodes\Ukaddresssearch\Helper\Data;
5+
use Magento\Framework\View\Element\Block\ArgumentInterface;
6+
7+
class AdminConfig implements ArgumentInterface
8+
{
9+
/**
10+
* @var Data
11+
*/
12+
private $helper;
13+
14+
public function __construct(Data $helper)
15+
{
16+
$this->helper = $helper;
17+
}
18+
19+
public function getAdminConfig($field)
20+
{
21+
return $this->helper->getAdminConfig($field);
22+
}
23+
}

ViewModel/StoreConfig.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
namespace Idealpostcodes\Ukaddresssearch\ViewModel;
3+
4+
use Idealpostcodes\Ukaddresssearch\Helper\Data;
5+
use Magento\Framework\View\Element\Block\ArgumentInterface;
6+
7+
class StoreConfig implements ArgumentInterface
8+
{
9+
/**
10+
* @var Data
11+
*/
12+
private $helper;
13+
14+
public function __construct(Data $helper)
15+
{
16+
$this->helper = $helper;
17+
}
18+
19+
public function getConfig($field)
20+
{
21+
return $this->helper->getConfig($field);
22+
}
23+
}

view/adminhtml/layout/default.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@
55
</head>
66
<body>
77
<referenceContainer name="after.body.start">
8-
<block name="iddqd-c-edit" class="Magento\Backend\Block\Page\RequireJs" template="Idealpostcodes_Ukaddresssearch::admin.phtml"/>
8+
<block name="iddqd-c-edit" class="Magento\Backend\Block\Page\RequireJs" template="Idealpostcodes_Ukaddresssearch::admin.phtml">
9+
<arguments>
10+
<argument name="view_model" xsi:type="object">Idealpostcodes\Ukaddresssearch\ViewModel\AdminConfig</argument>
11+
</arguments>
12+
</block>
913
</referenceContainer>
1014
</body>
1115
</page>

view/adminhtml/templates/admin.phtml

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
1-
<?php /** @var Magento\Framework\View\TemplateEngine\Php $this */
2-
$helper = $this->helper('Idealpostcodes\Ukaddresssearch\Helper\Data');
1+
<?php /** @var Magento\Framework\View\Element\Template $block */
2+
/** @var \Idealpostcodes\Ukaddresssearch\ViewModel\AdminConfig $viewModel */
3+
$viewModel = $block->getData('view_model');
34
?>
45
<?php if(!isset($secureRenderer)) { ?>
56
<script type="text/javascript">
67
document.addEventListener('DOMContentLoaded', function() {
7-
var apiKey = "<?= $block->escapeJsQuote($helper->getAdminConfig('api_key')) ?>";
8-
var autocomplete = <?= $block->escapeJs($helper->getAdminConfig('addressAutocomplete')) ?>;
9-
var removeOrganisation = <?= $block->escapeJs($helper->getAdminConfig('removeOrganisation')) ?>;
10-
var populateCounty = <?= $block->escapeJs($helper->getAdminConfig('requireCounty')) ?>;
11-
var enabled = <?= $block->escapeJs($helper->getAdminConfig('enabled')) ?>;
12-
var customFields = <?= $block->escapeJs(trim(preg_replace("/\r|\n/", "", $helper->getAdminConfig('customFields')))) ?>;
8+
var apiKey = "<?= $block->escapeJsQuote($viewModel->getAdminConfig('api_key')) ?>";
9+
var autocomplete = <?= $block->escapeJs($viewModel->getAdminConfig('addressAutocomplete')) ?>;
10+
var removeOrganisation = <?= $block->escapeJs($viewModel->getAdminConfig('removeOrganisation')) ?>;
11+
var populateCounty = <?= $block->escapeJs($viewModel->getAdminConfig('requireCounty')) ?>;
12+
var enabled = <?= $block->escapeJs($viewModel->getAdminConfig('enabled')) ?>;
13+
var customFields = <?= $block->escapeJs(trim(preg_replace("/\r|\n/", "", $viewModel->getAdminConfig('customFields')))) ?>;
1314
// Exit early if disabled
1415
if (enabled === false) return;
1516
window.idpcConfig = {
@@ -27,12 +28,12 @@ $helper = $this->helper('Idealpostcodes\Ukaddresssearch\Helper\Data');
2728
<?php } else {
2829
echo $secureRenderer->renderTag('script', [], '
2930
document.addEventListener("DOMContentLoaded", function() {
30-
var apiKey = "' . $block->escapeJsQuote($helper->getAdminConfig('api_key')) . '";
31-
var autocomplete = ' . $block->escapeJs($helper->getAdminConfig('addressAutocomplete')) . ';
32-
var removeOrganisation = ' . $block->escapeJs($helper->getAdminConfig('removeOrganisation')) . ';
33-
var populateCounty = ' . $block->escapeJs($helper->getAdminConfig('requireCounty')) . ';
34-
var enabled = ' . $block->escapeJs($helper->getAdminConfig('enabled')) . ';
35-
var customFields = ' . $block->escapeJs(trim(preg_replace("/\r|\n/", "", $helper->getAdminConfig('customFields')))) . ';
31+
var apiKey = "' . $block->escapeJsQuote($viewModel->getAdminConfig('api_key')) . '";
32+
var autocomplete = ' . $block->escapeJs($viewModel->getAdminConfig('addressAutocomplete')) . ';
33+
var removeOrganisation = ' . $block->escapeJs($viewModel->getAdminConfig('removeOrganisation')) . ';
34+
var populateCounty = ' . $block->escapeJs($viewModel->getAdminConfig('requireCounty')) . ';
35+
var enabled = ' . $block->escapeJs($viewModel->getAdminConfig('enabled')) . ';
36+
var customFields = ' . $block->escapeJs(trim(preg_replace("/\r|\n/", "", $viewModel->getAdminConfig('customFields')))) . ';
3637
// Exit early if disabled
3738
if (enabled === false) return;
3839
window.idpcConfig = {

view/frontend/layout/default.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@
55
</head>
66
<body>
77
<referenceBlock name="head.additional">
8-
<block class="Magento\Framework\View\Element\Template" name="idealpostcodes.ukaddresssearch.store" template="Idealpostcodes_Ukaddresssearch::store.phtml" />
8+
<block class="Magento\Framework\View\Element\Template" name="idealpostcodes.ukaddresssearch.store" template="Idealpostcodes_Ukaddresssearch::store.phtml">
9+
<arguments>
10+
<argument name="view_model" xsi:type="object">Idealpostcodes\Ukaddresssearch\ViewModel\StoreConfig</argument>
11+
</arguments>
12+
</block>
913
</referenceBlock>
1014
</body>
1115
</page>

view/frontend/templates/store.phtml

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
11
<?php
2-
$helper = $this->helper('Idealpostcodes\Ukaddresssearch\Helper\Data');
2+
/** @var \Magento\Framework\View\Element\Template $block */
3+
/** @var \Idealpostcodes\Ukaddresssearch\ViewModel\StoreConfig $viewModel */
4+
$viewModel = $block->getData('view_model');
35
?>
46
<?php if(!isset($secureRenderer)) { ?>
57
<script type="text/javascript" name="Ideal_Postcodes">
68
document.addEventListener('DOMContentLoaded', function() {
7-
var apiKey = "<?= $block->escapeJsQuote($helper->getConfig('api_key')) ?>";
8-
var postcodeLookup = <?= $block->escapeJs($helper->getConfig('postcodeLookup')) ?>;
9-
var autocomplete = <?= $block->escapeJs($helper->getConfig('addressAutocomplete')) ?>;
10-
var removeOrganisation = <?= $block->escapeJs($helper->getConfig('removeOrganisation')) ?>;
11-
var hoistCountry = <?= $block->escapeJs($helper->getConfig('hoistCountryField')) ?>;
12-
var populateCounty = <?= $block->escapeJs($helper->getConfig('requireCounty')) ?>;
13-
var autocompleteOverride = <?= /* @noEscape */ $helper->getConfig('autocompleteOverride') ?>;
14-
var postcodeLookupOverride = <?= /* @noEscape */ $helper->getConfig('postcodeLookupOverride') ?>;
15-
var enabled = <?= $block->escapeJs($helper->getConfig('enabled')) ?>;
16-
var customFields = <?= /* @noEscape */ trim(preg_replace('/\r|\n/', '', $helper->getConfig('customFields'))) ?>;
9+
var apiKey = "<?= $block->escapeJsQuote($viewModel->getConfig('api_key')) ?>";
10+
var postcodeLookup = <?= $block->escapeJs($viewModel->getConfig('postcodeLookup')) ?>;
11+
var autocomplete = <?= $block->escapeJs($viewModel->getConfig('addressAutocomplete')) ?>;
12+
var removeOrganisation = <?= $block->escapeJs($viewModel->getConfig('removeOrganisation')) ?>;
13+
var hoistCountry = <?= $block->escapeJs($viewModel->getConfig('hoistCountryField')) ?>;
14+
var populateCounty = <?= $block->escapeJs($viewModel->getConfig('requireCounty')) ?>;
15+
var autocompleteOverride = <?= /* @noEscape */ $viewModel->getConfig('autocompleteOverride') ?>;
16+
var postcodeLookupOverride = <?= /* @noEscape */ $viewModel->getConfig('postcodeLookupOverride') ?>;
17+
var enabled = <?= $block->escapeJs($viewModel->getConfig('enabled')) ?>;
18+
var customFields = <?= /* @noEscape */ trim(preg_replace('/\r|\n/', '', $viewModel->getConfig('customFields'))) ?>;
1719
// Exit early if disabled
1820
if (enabled === false) return;
1921
window.idpcConfig = {
@@ -33,16 +35,16 @@ document.addEventListener('DOMContentLoaded', function() {
3335
<?php } else {
3436
echo $secureRenderer->renderTag('script', [], '
3537
document.addEventListener("DOMContentLoaded", function() {
36-
var apiKey = "' . $block->escapeJsQuote($helper->getConfig('api_key')) . '";
37-
var postcodeLookup = ' . $block->escapeJs($helper->getConfig('postcodeLookup')) . ';
38-
var autocomplete = ' . $block->escapeJs($helper->getConfig('addressAutocomplete')) . ';
39-
var removeOrganisation = ' . $block->escapeJs($helper->getConfig('removeOrganisation')) . ';
40-
var hoistCountry = ' . $block->escapeJs($helper->getConfig('hoistCountryField')) . ';
41-
var populateCounty = ' . $block->escapeJs($helper->getConfig('requireCounty')) . ';
42-
var autocompleteOverride = ' . /* @noEscape */ $helper->getConfig('autocompleteOverride') . ';
43-
var postcodeLookupOverride = ' . /* @noEscape */ $helper->getConfig('postcodeLookupOverride') . ';
44-
var enabled = ' . $block->escapeJs($helper->getConfig('enabled')) . ';
45-
var customFields = ' . /* @noEscape */ trim(preg_replace('/\r|\n/', '', $helper->getConfig('customFields'))) . ';
38+
var apiKey = "' . $block->escapeJsQuote($viewModel->getConfig('api_key')) . '";
39+
var postcodeLookup = ' . $block->escapeJs($viewModel->getConfig('postcodeLookup')) . ';
40+
var autocomplete = ' . $block->escapeJs($viewModel->getConfig('addressAutocomplete')) . ';
41+
var removeOrganisation = ' . $block->escapeJs($viewModel->getConfig('removeOrganisation')) . ';
42+
var hoistCountry = ' . $block->escapeJs($viewModel->getConfig('hoistCountryField')) . ';
43+
var populateCounty = ' . $block->escapeJs($viewModel->getConfig('requireCounty')) . ';
44+
var autocompleteOverride = ' . /* @noEscape */ $viewModel->getConfig('autocompleteOverride') . ';
45+
var postcodeLookupOverride = ' . /* @noEscape */ $viewModel->getConfig('postcodeLookupOverride') . ';
46+
var enabled = ' . $block->escapeJs($viewModel->getConfig('enabled')) . ';
47+
var customFields = ' . /* @noEscape */ trim(preg_replace('/\r|\n/', '', $viewModel->getConfig('customFields'))) . ';
4648
// Exit early if disabled
4749
if (enabled === false) return;
4850
window.idpcConfig = {

0 commit comments

Comments
 (0)