ownerDocument; $domElement->appendChild($domOwner->createCDATASection("{$value}")); } } /** * Add child node with value as CData * * @param string $name The child XML node name to add * @param string $value A text to add as CData * @return SimpleXMLElement */ public function addChildWithCData($name = '', $value = '') { $newChild = parent::addChild($name); if ($value) $this->addCDataToNode($newChild, "{$value}"); return $newChild; } /** * Add value as CData to the current XML node * * @param string $value A text to add as CData * @return void */ public function addCData($value = '') { $this->addCDataToNode($this, "{$value}"); } } $id_lang=(int)Context::getContext()->language->id; $start=0; $limit= ''; $order_by = 'id_product'; $order_way = 'DESC'; $id_category = false; $only_active = true; $context = null; $products_partial = Product::getProducts($id_lang, $start, $limit, $order_by, $order_way, $id_category, $only_active, $context); $products = Product::getProductsProperties($context->language->id, $products_partial); $xml = new SimpleXMLElementExtended(''); $xml->addChild('title', 'Baldaccini | Producent obuwia'); $xml->addChild('updated', date('Y-m-d')); foreach($products as $product) { $price = Product::getPriceStatic($product['id_product']); $cover = Product::getCover($product['id_product']); $products['id_image'] = $cover['id_image']; $link = new Link;//because getImageLInk is not static function $imagePath = $link->getImageLink($product['link_rewrite'], $products['id_image'], 'large_default'); $thumbPath = $link->getImageLink($product['link_rewrite'], $products['id_image'], 'home_default'); $product_attribute = new Product($product['id_product']); $combinations = $product_attribute->getAttributeCombinations($cookie->id_lang, 0,2); $avaiable_combination_name = array(); foreach($combinations as $combination){ $avaiable_combination_name[] = $combination['attribute_name']; } $combination_comma_separated = implode(",", $avaiable_combination_name); $tablicaKombinacji = explode(",",$combination_comma_separated); $all_product_subs = Product::getProductCategoriesFull($product['id_product'], $cookie->id_lang); $all_product_subs_path = array(); if(isset($all_product_subs) && count($all_product_subs)>0) { foreach($all_product_subs as $subcat) { $sub_category = new Category($subcat['id_category'], $cookie->id_lang); $sub_category_children = $sub_category->getSubCategories($cookie->id_lang, $active = true); if(count($sub_category_children)<=0) if($subcat['id_category']!=$product['id_product']->id_category_default)//this remove the default category from the list if(Tools::getPath($subcat['id_category'], '', true)!='') $all_product_subs_path[] = Tools::getPath($subcat['id_category'], '', true); } } $catDef = new Category($product['id_category_default'], $cookie->id_lang); $catDefault = $catDef->name; $katego = implode(",", $all_product_subs_path); $tablicaKategorii = explode(",",$katego); $productXml = $xml->addChild('entry'); $productXml->addChild('g:id', $product['id_product'], 'http://base.google.com/ns/1.0'); $SEOtitle = $catDefault; $productXml->addChild('g:title', $product['name'], 'http://base.google.com/ns/1.0'); $opis = $productXml->addChild('g:description'); $opis->addCData($product['description'], 'http://base.google.com/ns/1.0'); $productXml->addChild('g:link', $product['link'], 'http://base.google.com/ns/1.0'); $productXml->addChild('g:image_link', 'https://'.$imagePath, 'http://base.google.com/ns/1.0'); $productXml->addChild('g:condition', $product['condition'], 'http://base.google.com/ns/1.0'); $productXml->addChild('g:availability', 'in stock', 'http://base.google.com/ns/1.0'); $productXml->addChild('g:price', number_format((float)$price, 2, '.', ''), 'http://base.google.com/ns/1.0'); if ($product['ean13'] != null) { $productXml->addChild('g:gtin', $product['ean13'], 'http://base.google.com/ns/1.0'); } $productXml->addChild('g:brand', $product['manufacturer_name'], 'http://base.google.com/ns/1.0'); } $xml->asXML("gmc-feed.xml"); ?>