@@ -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