Здравствуйте.
Не получается решить задачу с рассортировкой загруженных из csv разделов согласно структуре csv-файла.
В оргструктуре, в подразделения загрузил из csv разделы в виде - один родитель, а все остальные его потомки, т.е. 2 уровня.
Также предусмотрены два пользовательских поля, куда из csv загружаются id и parent_id.
Как сформировать структуру разделов, согласно этим данным?
Не получается решить задачу с рассортировкой загруженных из csv разделов согласно структуре csv-файла.
В оргструктуре, в подразделения загрузил из csv разделы в виде - один родитель, а все остальные его потомки, т.е. 2 уровня.
Также предусмотрены два пользовательских поля, куда из csv загружаются id и parent_id.
Как сформировать структуру разделов, согласно этим данным?
Код |
---|
... if ($handle) { $counter = 0; $keys = array(); $data = array(); while (!feof($handle)) { $csv_arr = fgetcsv($handle, 4096, ";", '"'); if (!$counter) { $keys = $csv_arr; } else { $el = array(); foreach ($csv_arr as $key => $item) { $el[$keys[$key]] = $item; } $data[] = $el; } $counter++; } } fclose($handle); if (!CModule::IncludeModule("iblock")) { die('error'); } $ibs = new CIBlockSection; foreach ($data as $val) { ... //как рассортировать разделы в базе согласно таблице? $query1 = $ibs->GetList( array('sort' => 'asc'), array('IBLOCK_ID' => 5, 'DEPTH_LEVEL' => 2, 'UF_SAP_CODE' => $val['parent_id']), false, array('ID', 'NAME', 'IBLOCK_SECTION_ID', 'UF_SAP_CODE', 'UF_SAP_CODE_PARENT') ); if ($res1 = $query1->Fetch()) { // echo "<pre>"; // print_r($res1); //получаем id родителей // $pid = $res1['ID']; $pid[$res1['UF_SAP_CODE']] = $res1['ID']; // echo "<pre>"; // print_r($pid); } $query2 = $ibs->GetList( array('sort' => 'asc'), array('IBLOCK_ID' => 5, 'UF_SAP_CODE_PARENT' => $val['id']), false, array('ID', 'NAME', 'IBLOCK_SECTION_ID', 'UF_SAP_CODE', 'UF_SAP_CODE_PARENT') ); if ($res2 = $query2->Fetch()) { // echo "<pre>"; // print_r($res2); //получаем id потомков // $chil = $res2['ID']; $chid[$res2['UF_SAP_CODE_PARENT']] = $res2['ID']; // echo "<pre>"; // print_r($chid); // $ibs->Update($chil, array('IBLOCK_SECTION_ID' => $pid)); } } |