Skip to content

Commit

Permalink
[FEATURE] Added AddressLine Support to the Registration and AddressEd…
Browse files Browse the repository at this point in the history
…it form
  • Loading branch information
lewisvoncken committed May 2, 2017
1 parent 45fd282 commit 1eb3a1d
Show file tree
Hide file tree
Showing 9 changed files with 532 additions and 8 deletions.
6 changes: 1 addition & 5 deletions Block/Checkout/LayoutProcessor.php
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -106,11 +106,7 @@ public function modifyStreetUiComponents($addressResult)
$lineNumber = $lineCount+1;

if(isset($addressResult['street']['children'][$lineCount])){
$group = "experius_address_lines/experius_address_line{$lineNumber}";
//var_dump($group); die();
$label = ($this->addressLineHelper->getModuleConfig("line_label", $group))
? $this->addressLineHelper->getModuleConfig("line_label", $group)
: __('Address Line');
$label = $this->addressLineHelper->getLineLabel($lineNumber);

if ( $this->addressLineHelper->getModuleConfig("line_enabled", $group)) {
$addressResult['street']['children'][$lineCount]['label'] = $label;
Expand Down
54 changes: 51 additions & 3 deletions Helper/Data.php
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,58 @@ public function getModuleConfig($field = false, $group = false, $section = false
//var_dump("{$section}/{$group}/{$field}"); exit();die();
return $this->scopeConfig->getValue("{$section}/{$group}/{$field}", \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
}

public function getLineLabel($lineNumber)
{
$group = "experius_address_lines/experius_address_line{$lineNumber}";
$label = ($this->getModuleConfig("line_label", $group))
? $this->getModuleConfig("line_label", $group)
: __('Address Line');
return $label;
}

public function getValidationMaxLength($lineNumber)
{
$group = "experius_address_lines/experius_address_line{$lineNumber}";
$maxLength = ($this->getModuleConfig("line_max_length", $group))
? $this->getModuleConfig("line_max_length", $group)
: false;
return $maxLength;
}

public function getValidationMinLength($lineNumber)
{
$group = "experius_address_lines/experius_address_line{$lineNumber}";
$maxLength = ($this->getModuleConfig("line_min_length", $group))
? $this->getModuleConfig("line_min_length", $group)
: false;
return $maxLength;
}

public function isLineRequired($lineNumber)
{
$group = "experius_address_lines/experius_address_line{$lineNumber}";
return $this->getModuleConfig("line_required", $group);
}

public function getValidationClassesForLine($lineNumber)
{
if (!$this->getValidationClassesAsArrayForLine($lineNumber)) {
return;
}
$validationArray = $this->getValidationClassesAsArrayForLine($lineNumber);
if (key_exists('validate-number',$validationArray)) {
$validationArray['validate-digits'] = 1;
unset($validationArray['validate-number']);
}
$validationClassesString = ' ' . implode(' ', array_keys($validationArray));
return $validationClassesString;
}

public function getValidationClassesAsArrayForLine($lineNumber)
{
$group = "experius_address_lines/experius_address_line{$lineNumber}";

$validationClassesString = $this->getModuleConfig("line_validation_classes", $group);
//var_dump($validationClassesString);
$validationParts = explode(',', $validationClassesString);
Expand All @@ -28,11 +76,11 @@ public function getValidationClassesAsArrayForLine($lineNumber)
foreach($validationParts as $validationPart) {

$validationPartArray = explode(':', $validationPart);
if (empty($validationPartArray)) {
if (!empty($validationPartArray)) {
$validationClassesArray[$validationPartArray[0]] = (int) $validationPartArray[1];
}
}
if($this->getModuleConfig("line_required", $group)){
if($this->isLineRequired($lineNumber)){
$validationClassesArray['required-entry'] = 1;
}
return $validationClassesArray;
Expand Down
32 changes: 32 additions & 0 deletions etc/adminhtml/system.xml
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,14 @@
<field id="line_validation_classes" showInDefault="1" showInStore="1" showInWebsite="1" sortOrder="30" translate="label" type="text">
<label>Line 1 Validation</label>
</field>
<field id="line_min_length" showInDefault="1" showInStore="1" showInWebsite="1" sortOrder="30" translate="label" type="text">
<label>Line 1 Min Length</label>
<comment>Necessary for registrion page and address edit.</comment>
</field>
<field id="line_max_length" showInDefault="1" showInStore="1" showInWebsite="1" sortOrder="40" translate="label" type="text">
<label>Line 1 Max Length</label>
<comment>Necessary for registrion page and address edit.</comment>
</field>
</group>
<group id="experius_address_line2" showInDefault="1" showInStore="1" showInWebsite="1" sortOrder="900" translate="label">
<label>Line 2</label>
Expand All @@ -38,6 +46,14 @@
<field id="line_validation_classes" showInDefault="1" showInStore="1" showInWebsite="1" sortOrder="20" translate="label" type="text">
<label>Line 2 Validation</label>
</field>
<field id="line_min_length" showInDefault="1" showInStore="1" showInWebsite="1" sortOrder="30" translate="label" type="text">
<label>Line 2 Min Length</label>
<comment>Necessary for registrion page and address edit.</comment>
</field>
<field id="line_max_length" showInDefault="1" showInStore="1" showInWebsite="1" sortOrder="40" translate="label" type="text">
<label>Line 2 Max Length</label>
<comment>Necessary for registrion page and address edit.</comment>
</field>
</group>
<group id="experius_address_line3" showInDefault="1" showInStore="1" showInWebsite="1" sortOrder="900" translate="label">
<label>Line 3</label>
Expand All @@ -55,6 +71,14 @@
<field id="line_validation_classes" showInDefault="1" showInStore="1" showInWebsite="1" sortOrder="20" translate="label" type="text">
<label>Line 3 Validation</label>
</field>
<field id="line_min_length" showInDefault="1" showInStore="1" showInWebsite="1" sortOrder="30" translate="label" type="text">
<label>Line 3 Min Length</label>
<comment>Necessary for registrion page and address edit.</comment>
</field>
<field id="line_max_length" showInDefault="1" showInStore="1" showInWebsite="1" sortOrder="40" translate="label" type="text">
<label>Line 3 Max Length</label>
<comment>Necessary for registrion page and address edit.</comment>
</field>
</group>
<group id="experius_address_line4" showInDefault="1" showInStore="1" showInWebsite="1" sortOrder="900" translate="label">
<label>Line 4</label>
Expand All @@ -72,6 +96,14 @@
<field id="line_validation_classes" showInDefault="1" showInStore="1" showInWebsite="120" sortOrder="20" translate="label" type="text">
<label>Line 4 Validation</label>
</field>
<field id="line_min_length" showInDefault="1" showInStore="1" showInWebsite="1" sortOrder="30" translate="label" type="text">
<label>Line 4 Min Length</label>
<comment>Necessary for registrion page and address edit.</comment>
</field>
<field id="line_max_length" showInDefault="1" showInStore="1" showInWebsite="1" sortOrder="40" translate="label" type="text">
<label>Line 4 Max Length</label>
<comment>Necessary for registrion page and address edit.</comment>
</field>
</group>
</group>
</section>
Expand Down
3 changes: 3 additions & 0 deletions etc/config.xml
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
<line_label>Street</line_label>
<line_required>1</line_required>
<line_validation_classes>max_text_length:255,min_text_length:1</line_validation_classes>
<line_min_length>1</line_min_length>
<line_max_length>255</line_max_length>
</experius_address_line1>
<experius_address_line2>
<line_enabled>0</line_enabled>
Expand All @@ -21,6 +23,7 @@
<line_label>Addition</line_label>
<line_required>0</line_required>
<line_validation_classes>max_text_length:255,min_text_length:1</line_validation_classes>
<line_max_length>255</line_max_length>
</experius_address_line3>
<experius_address_line4>
<line_enabled>0</line_enabled>
Expand Down
2 changes: 2 additions & 0 deletions etc/module.xml
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
<module name="Experius_AddressLines" setup_version="1.0.0">
<sequence>
<module name="Magento_Checkout"/>
<module name="Magento_Customer"/>
<module name="Magento_CustomerCustomAttributes"/>
</sequence>
</module>
</config>
17 changes: 17 additions & 0 deletions view/frontend/layout/customer_account_create.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?xml version="1.0"?>
<!--
/**
* Copyright © 2016 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-->
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<update handle="customer_form_template_handle"/>
<body>
<referenceBlock name="customer_form_register">
<action method="setTemplate" ifconfig="customer/experius_address_lines/enabled">
<argument name="template" xsi:type="string">Experius_AddressLines::/experius/customer/form/register.phtml</argument>
</action>
</referenceBlock>
</body>
</page>
17 changes: 17 additions & 0 deletions view/frontend/layout/customer_address_form.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?xml version="1.0"?>
<!--
/**
* Copyright © 2016 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-->
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<update handle="customer_form_template_handle"/>
<body>
<referenceBlock name="customer_address_edit">
<action method="setTemplate" ifconfig="customer/experius_address_lines/enabled">
<argument name="template" xsi:type="string">Experius_AddressLines::/experius/customer/address/edit.phtml</argument>
</action>
</referenceBlock>
</body>
</page>
Loading

0 comments on commit 1eb3a1d

Please sign in to comment.