fclose($f); print "success\n"; } if ($simpla->request->get('type') == 'catalog' && $simpla->request->get('mode') == 'import') { $filename = basename($simpla->request->get('filename')); if ($filename === 'import.xml') { // Категории и свойства (только в первом запросе пакетной передачи) if (!isset($_SESSION['last_1c_imported_product_num'])) { $z = new XMLReader(); $z->open($dir . $filename); while ($z->read() && $z->name !== 'Классификатор') { } $xml = new SimpleXMLElement($z->readOuterXML()); $z->close(); import_categories($xml); import_features($xml); } // Товары $z = new XMLReader(); $z->open($dir . $filename); while ($z->read() && $z->name !== 'Товар') { } // Последний товар, на котором остановились $last_product_num = 0; if (isset($_SESSION['last_1c_imported_product_num'])) { $last_product_num = $_SESSION['last_1c_imported_product_num']; } // Номер текущего товара $current_product_num = 0; while ($z->name === 'Товар') { if ($current_product_num >= $last_product_num) {
print "file_limit=1000000\n"; } if ($simpla->request->get('type') == 'catalog' && $simpla->request->get('mode') == 'file') { $filename = basename($simpla->request->get('filename')); $f = fopen($dir . $filename, 'ab'); fwrite($f, file_get_contents('php://input')); fclose($f); print "success\n"; } if ($simpla->request->get('type') == 'catalog' && $simpla->request->get('mode') == 'import') { $filename = basename($simpla->request->get('filename')); $xml = simplexml_load_file($dir . $filename); if (isset($xml->Классификатор)) { // Категории import_categories($xml->Классификатор); import_features($xml->Классификатор); } if (isset($xml->Каталог)) { import_products($xml->Каталог); } if (isset($xml->ПакетПредложений)) { import_variants($xml->ПакетПредложений); } //unlink($dir.$filename); print "success"; } function import_categories($xml, $parent_id = 0) { global $simpla; global $dir; if (isset($xml->Группы->Группа)) {