From cf116d58d4c90409733201648e3e66cd231408f9 Mon Sep 17 00:00:00 2001 From: fomichev Date: Mon, 21 Oct 2024 17:43:19 +0300 Subject: [PATCH] =?utf8?q?=D0=9A=D0=BE=D0=B4=D0=B8=D1=80=D0=BE=D0=B2=D0=BA?= =?utf8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/services/MarketplaceService.php | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/erp24/services/MarketplaceService.php b/erp24/services/MarketplaceService.php index 8186ad2c..046b220b 100644 --- a/erp24/services/MarketplaceService.php +++ b/erp24/services/MarketplaceService.php @@ -112,12 +112,12 @@ class MarketplaceService */ public static function createXMLFeed($productsInfo) { - $xml = new \SimpleXMLElement(''); + $xml = new \SimpleXMLElement(''); $xml->addAttribute('date', date('Y-m-d\TH:i:sP')); $shop = $xml->addChild('shop'); - $shop->addChild('name', htmlspecialchars('База Цветов 24', ENT_XML1 | ENT_COMPAT, 'UTF-8')); - $shop->addChild('company', htmlspecialchars('База Цветов 24', ENT_XML1 | ENT_COMPAT, 'UTF-8')); + self::sxml_cdata($shop->addChild('name'), 'База Цветов 24'); + self::sxml_cdata($shop->addChild('company'), 'База Цветов 24'); $shop->addChild('url', 'https://bazacvetov24.ru'); // Добавление валюты @@ -128,8 +128,9 @@ class MarketplaceService // Добавление категорий $categories = $shop->addChild('categories'); - $category = $categories->addChild('category', htmlspecialchars('Букеты', ENT_XML1 | ENT_COMPAT, 'UTF-8')); + $category = $categories->addChild('category'); $category->addAttribute('id', '1'); + self::sxml_cdata($category, 'Букеты'); // Добавление информации о доставке $deliveryOptions = $shop->addChild('delivery-options'); @@ -143,7 +144,7 @@ class MarketplaceService $offer = $offers->addChild('offer'); $offer->addAttribute('id', $product['id']); $offer->addAttribute('available', $product['available'] ? 'true' : 'false'); - $offer->addChild('name', htmlspecialchars($product['name'], ENT_XML1 | ENT_COMPAT, 'UTF-8')); + self::sxml_cdata($offer->addChild('name'), $product['name']); $offer->addChild('url', 'https://bazacvetov24.ru/flowers/' . $product['id']); $offer->addChild('price', $product['price']); $offer->addChild('currencyId', 'RUR'); @@ -157,7 +158,7 @@ class MarketplaceService $offerDeliveryOption->addAttribute('days', '1'); $offerDeliveryOption->addAttribute('order-before', '18'); - $offer->addChild('description', htmlspecialchars($product['description'], ENT_XML1 | ENT_COMPAT, 'UTF-8')); + self::sxml_cdata($offer->addChild('description'), $product['description']); $offer->addChild('weight', $product['weight']); $offer->addChild('qty', $product['qty']); $offer->addChild('minorder', $product['minorder']); @@ -168,8 +169,8 @@ class MarketplaceService foreach ($product['composition'] as $component) { $consist = $offer->addChild('consist', $component['quantity']); - $consist->addAttribute('name', htmlspecialchars($component['name'], ENT_XML1 | ENT_COMPAT, 'UTF-8')); - $consist->addAttribute('unit', htmlspecialchars($component['unit'], ENT_XML1 | ENT_COMPAT, 'UTF-8')); + $consist->addAttribute('name', $component['name']); + $consist->addAttribute('unit', $component['unit']); } foreach ($product['pictures'] as $picture) { @@ -180,7 +181,11 @@ class MarketplaceService return $xml->asXML(); } - + private static function sxml_cdata($element, $content) { + $dom = dom_import_simplexml($element); + $cdata = $dom->ownerDocument->createCDATASection($content); + $dom->appendChild($cdata); + } private static function getProductPictureUrl($productId) { return ['https://bazacvetov24.ru/products/5339/51-roza-premium_3326_md.jpg']; -- 2.39.5