35 lines
808 B
PHP
35 lines
808 B
PHP
|
<?php
|
||
|
|
||
|
namespace Domain\Normalizer\Decorator;
|
||
|
|
||
|
class TweakersPricewatchUrl extends Decorator
|
||
|
{
|
||
|
public function makePass(array $data): array
|
||
|
{
|
||
|
$module = $data['module'] ?? '-';
|
||
|
$module = $this->selectSignificantTerms($module);
|
||
|
|
||
|
$data['pricewatch_url'] = sprintf(
|
||
|
'https://tweakers.net/pricewatch/zoeken/?keyword=%s',
|
||
|
rawurlencode($module)
|
||
|
);
|
||
|
|
||
|
return $data;
|
||
|
}
|
||
|
|
||
|
protected function getAdditionalHeaders(): array
|
||
|
{
|
||
|
return ['pricewatch_url'];
|
||
|
}
|
||
|
|
||
|
private function selectSignificantTerms(string $module): string
|
||
|
{
|
||
|
$parts = explode(' ', trim($module), 2);
|
||
|
if ((count($parts) === 2) && stripos($parts[1], 'ver') !== false) {
|
||
|
return $parts[0];
|
||
|
}
|
||
|
|
||
|
return $module;
|
||
|
}
|
||
|
}
|