Skip to content

Commit 2850f4a

Browse files
committed
Add oneline renderer to AddressRenderer
1 parent 6ab2562 commit 2850f4a

1 file changed

Lines changed: 39 additions & 7 deletions

File tree

Location/AddressRenderer.php

Lines changed: 39 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,51 @@ public function __construct(
1212
) {
1313
}
1414

15+
public function getLine(Address $address): string
16+
{
17+
$renderer = $this->getRenderer('oneline');
18+
$text = $renderer->renderArray($this->getAddressDataFromAddress($address));
19+
$newTextParts = [];
20+
$textParts = explode(',', $text);
21+
foreach ($textParts as $textPart) {
22+
$textPart = trim($textPart);
23+
if (!empty($textPart)) {
24+
$newTextParts[] = $textPart;
25+
}
26+
}
27+
28+
return implode(', ', $newTextParts);
29+
}
30+
1531
public function getHtml(Address $address): string
1632
{
17-
$addressData = [
18-
'street' => [$address->getStreet(), $address->getHouseNumber()],
33+
$renderer = $this->getRenderer('html');
34+
$html = $renderer->renderArray($this->getAddressDataFromAddress($address));
35+
$html = preg_replace('/^<br(\s+)\/>$/msi', '', $html);
36+
return $html;
37+
}
38+
39+
private function getRenderer(string $code = 'html'): RendererInterface
40+
{
41+
return $this->addressConfig->getFormatByCode($code)->getRenderer();
42+
}
43+
44+
private function getAddressDataFromAddress(Address $address): array
45+
{
46+
$data = [
47+
'prefix' => $address->getPrefix(),
48+
'firstname' => $address->getFirstname(),
49+
'middlename' => $address->getMiddlename(),
50+
'lastname' => $address->getLastname(),
51+
'suffix' => $address->getSuffix(),
52+
'company' => $address->getCompany(),
53+
'street' => [$address->getStreet(), $address->getHouseNumber(), $address->getHouseNumberAddition()],
1954
'postcode' => $address->getPostcode(),
2055
'city' => $address->getCity(),
56+
'region' => $address->getRegion(),
2157
'country_id' => $address->getCountryId(),
2258
];
2359

24-
/** @var RendererInterface $renderer */
25-
$renderer = $this->addressConfig->getFormatByCode('html')->getRenderer();
26-
$html = $renderer->renderArray($addressData);
27-
$html = preg_replace('/^<br(\s+)\/>$/msi', '', $html);
28-
return $html;
60+
return $data;
2961
}
3062
}

0 commit comments

Comments
 (0)