mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2026-02-11 12:09:36 +00:00
Fix if canonical URL is relative
This commit is contained in:
parent
d868225260
commit
1213f82cdf
1 changed files with 16 additions and 0 deletions
|
|
@ -104,6 +104,14 @@ class GenericWebProvider implements InfoProviderInterface
|
||||||
$offer = $jsonLd['offers'];
|
$offer = $jsonLd['offers'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Make $jsonLd['url'] absolute if it's relative
|
||||||
|
if (isset($jsonLd['url']) && parse_url($jsonLd['url'], PHP_URL_SCHEME) === null) {
|
||||||
|
$parsedUrl = parse_url($url);
|
||||||
|
$scheme = $parsedUrl['scheme'] ?? 'https';
|
||||||
|
$host = $parsedUrl['host'] ?? '';
|
||||||
|
$jsonLd['url'] = $scheme.'://'.$host.$jsonLd['url'];
|
||||||
|
}
|
||||||
|
|
||||||
$vendor_infos = [new PurchaseInfoDTO(
|
$vendor_infos = [new PurchaseInfoDTO(
|
||||||
distributor_name: $this->extractShopName($url),
|
distributor_name: $this->extractShopName($url),
|
||||||
order_number: (string) ($jsonLd['sku'] ?? $jsonLd['@id'] ?? $jsonLd['gtin'] ?? 'Unknown'),
|
order_number: (string) ($jsonLd['sku'] ?? $jsonLd['@id'] ?? $jsonLd['gtin'] ?? 'Unknown'),
|
||||||
|
|
@ -192,6 +200,14 @@ class GenericWebProvider implements InfoProviderInterface
|
||||||
$canonicalURL = $dom->filter('meta[property="og:url"]')->attr('content');
|
$canonicalURL = $dom->filter('meta[property="og:url"]')->attr('content');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//If the canonical URL is relative, make it absolute
|
||||||
|
if (parse_url($canonicalURL, PHP_URL_SCHEME) === null) {
|
||||||
|
$parsedUrl = parse_url($url);
|
||||||
|
$scheme = $parsedUrl['scheme'] ?? 'https';
|
||||||
|
$host = $parsedUrl['host'] ?? '';
|
||||||
|
$canonicalURL = $scheme.'://'.$host.$canonicalURL;
|
||||||
|
}
|
||||||
|
|
||||||
//Try to find json-ld data in the head
|
//Try to find json-ld data in the head
|
||||||
$jsonLdNodes = $dom->filter('script[type="application/ld+json"]');
|
$jsonLdNodes = $dom->filter('script[type="application/ld+json"]');
|
||||||
foreach ($jsonLdNodes as $node) {
|
foreach ($jsonLdNodes as $node) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue