Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/catalog/lib/ebay/ |
Upload File : |
<?php namespace Bitrix\Catalog\Ebay; class EbayXMLer { protected $fieldsMap = array( "NAME" => array( "PATH" => "ProductInformation/Title" ), "CATEGORIES" => array( "PATH" => "ProductInformation/Categories/Category", "TYPE" => "eBayLeafCategory" ) ); public function makeProductNode($product) { $dom = new \DOMDocument('1.0', 'utf-8'); $productNode = $dom->createElement('Product'); foreach($this->fieldsMap as $bitrixFieldId => $ebayFieldPath) { if(isset($product[$bitrixFieldId])) { $arPath = $this->parsePath($ebayFieldPath); $newNode = $oldNewNode = null; foreach($arPath as $pathItem) { if(!$this->isChildExist($productNode, $pathItem)) { $newNode = $dom->createElement($pathItem); if($oldNewNode) $oldNewNode->appendChild($newNode); else $productNode->appendChild($newNode); $oldNewNode = $newNode; } } if($newNode) $newNode->nodeValue = $product[$bitrixFieldId]; } } return $dom->saveXML($productNode); } public function isChildExist(\DOMNode $node, $childName) { $result = false; $children = $node->childNodes; foreach($children as $childNode) { if($childNode->nodeName == $childName) { $result = true; break; } } return $result; } protected function parsePath($path) { return explode("/", $path); } }