diff --git a/interblue.pl/index.php b/interblue.pl/index.php new file mode 100644 index 0000000..d51144e --- /dev/null +++ b/interblue.pl/index.php @@ -0,0 +1,93 @@ + +$xml = new SimpleXMLElement(''); + +// Definicja nazw elementów, które zawierają ceny +$price_fields = [ + 'cena_detaliczna_brutto_pln', + // Dodaj tutaj inne pola cen, jeśli istnieją + // 'cena_inna_field', +]; + +// Iteracja przez każdy produkt w źródłowym pliku XML +foreach ($source_xml->product as $product) { + // Tablica do przechowywania adresów URL obrazów + $images = []; + + // Iteracja przez wszystkie dzieci elementu + foreach ($product->children() as $child) { + $child_name = $child->getName(); + + // Sprawdzenie, czy element jest jednym z obrazów (image_1, image_2, ..., image_25) + if (preg_match('/^image_\d+$/', $child_name)) { + $url = trim((string)$child); + + // Dodanie niepustego URL do tablicy obrazów + if (!empty($url)) { + $images[] = $url; + } + } + } + + // Utworzenie nowego elementu w nowym XML + $new_product = $xml->addChild('product'); + + // Ponowna iteracja przez dzieci oryginalnego , aby skopiować nieobrazkowe elementy + foreach ($product->children() as $child) { + $child_name = $child->getName(); + + // Pomijanie elementów obrazów + if (!preg_match('/^image_\d+$/', $child_name)) { + // Pobranie wartości elementu + $value = (string)$child; + + // Sprawdzenie, czy element jest polem cenowym + if (in_array($child_name, $price_fields)) { + // Zamiana kropki na przecinek w wartości ceny + $value = str_replace('.', ',', $value); + } + + // Dodanie elementu do nowego + $new_child = $new_product->addChild($child_name); + + // Sprawdzenie, czy zawartość to HTML i potrzeba CDATA + // Jeśli chcesz zachować tagi HTML, możesz użyć CDATA + if (strpos($child_name, 'opis_krotki_html') !== false || strpos($child_name, 'opis_dlugi_korzysci_html') !== false) { + $node = dom_import_simplexml($new_child); + $no = $node->ownerDocument; + $node->appendChild($no->createCDATASection($value)); + } else { + $new_child[0] = htmlspecialchars($value); + } + } + } + + // Połączenie wszystkich adresów URL obrazów w jeden ciąg oddzielony przecinkami + $images_str = implode(',', $images); + + // Dodanie nowego elementu do nowego + $new_product->addChild('images', htmlspecialchars($images_str)); +} + +// Zapisanie nowego pliku XML na serwerze +if($xml->asXML($target_file)) { + echo "Nowy plik XML został utworzony: $target_file"; +} else { + echo "Wystąpił błąd podczas zapisywania nowego pliku XML."; +} +?>