Commit 9009e1b58a0140db1613d51531e86e98af09a688
1 parent
b257b524
fixed issue with xml parser - redid in universul manner
Showing
3 changed files
with
37 additions
and
16 deletions
Show diff stats
backend/controllers/ParserController.php
... | ... | @@ -52,6 +52,8 @@ class ParserController extends BaseController |
52 | 52 | |
53 | 53 | public function actionIndex($mode = 0) |
54 | 54 | { |
55 | +// $path = 'common\components\parsers\CustomConverter'; | |
56 | +// CustomVarDamp::dumpAndDie(new $path()); | |
55 | 57 | $model = new UploadFileParsingForm(); |
56 | 58 | // установим режим, 0 - ручная загрузка, 1 - автозагрузка |
57 | 59 | $model->mode = $mode; |
... | ... | @@ -81,7 +83,6 @@ class ParserController extends BaseController |
81 | 83 | try { |
82 | 84 | $files_model->save(); |
83 | 85 | } catch (ErrorException $e) { |
84 | - // CustomVarDamp::dump($e->getMessage()); | |
85 | 86 | throw $e; |
86 | 87 | } |
87 | 88 | // получим id только что записанной записи - его запишем в название файла | ... | ... |
backend/models/UploadFileParsingForm.php
... | ... | @@ -71,12 +71,14 @@ class UploadFileParsingForm extends Model |
71 | 71 | public function readFile( $options = [] ){ |
72 | 72 | |
73 | 73 | $data = Yii::$app->multiparser->parse( $this->file_path, $options ); |
74 | - if( !is_array( $data ) ){ | |
74 | + CustomVarDamp::dumpAndDie($data); | |
75 | + if( !is_array( $data ) || count($data) == 0 ){ | |
75 | 76 | throw new ErrorException("Ошибка чтения из файла прайса {$this->file_path}"); |
76 | 77 | } |
77 | 78 | // файл больше не нужен - данные прочитаны и сохранены в кеш |
78 | -// if( file_exists($this->file_path) ) | |
79 | -// unlink($this->file_path); | |
79 | + if( file_exists($this->file_path) ) | |
80 | + //@ todo - перестало работать - нет доступа на удалениев этом сеансе, в следующем - файл удаляется - разобраться | |
81 | + //unlink( $this->file_path ); | |
80 | 82 | |
81 | 83 | return $data; |
82 | 84 | } | ... | ... |
common/components/parsers/config.php
... | ... | @@ -14,7 +14,6 @@ |
14 | 14 | 'hasHeaderRow' => true, |
15 | 15 | 'converter_conf' => [ |
16 | 16 | 'class' => ' common\components\parsers\CustomConverter', |
17 | - 'hasKey' => 1, | |
18 | 17 | 'configuration' => ["string" => 'DESCR', |
19 | 18 | "float" => 'PRICE', |
20 | 19 | "brand" => 'BRAND', |
... | ... | @@ -54,21 +53,40 @@ |
54 | 53 | ['console' => |
55 | 54 | ['class' => 'yii\multiparser\XmlParser', |
56 | 55 | 'node' => 'Товар', |
56 | + 'hasHeaderRow' => true, | |
57 | + 'keys' => [ | |
58 | + "BRAND" => 'Производитель', | |
59 | + "ARTICLE"=> 'Код', | |
60 | + "PRICE" => 'Розница', | |
61 | + "DESCR" => 'Наименование', | |
62 | + "BOX" => 'Колво', | |
63 | + "ADD_BOX"=> 'Ожидаемое', | |
64 | + "GROUP" => 'Группа' | |
65 | + ], | |
57 | 66 | 'converter_conf' => [ |
58 | - 'class' => ' common\components\parsers\CustomConverter', | |
59 | - 'hasKey' => 1, | |
67 | + 'class' => 'common\components\parsers\CustomConverter', | |
60 | 68 | 'configuration' => ["details" => [] |
61 | 69 | ],], |
62 | 70 | ], |
63 | - 'basic_column' => [ | |
64 | - "BRAND" => 'Производитель', | |
65 | - "ARTICLE"=> 'Код', | |
66 | - "PRICE" => 'Розница', | |
67 | - "DESCR" => 'Наименование', | |
68 | - "BOX" => 'Колво', | |
69 | - "ADD_BOX"=> 'Ожидаемое', | |
70 | - "GROUP" => 'Группа' | |
71 | - ], | |
71 | + 'web' => | |
72 | + ['class' => 'yii\multiparser\XmlParser', | |
73 | + 'node' => 'Товар', | |
74 | + 'hasHeaderRow' => true, | |
75 | + 'keys' => [ | |
76 | + "BRAND" => 'Производитель', | |
77 | + "ARTICLE"=> 'Код', | |
78 | + "PRICE" => 'Розница', | |
79 | + "DESCR" => 'Наименование', | |
80 | + "BOX" => 'Колво', | |
81 | + "ADD_BOX"=> 'Ожидаемое', | |
82 | + "GROUP" => 'Группа' | |
83 | + ], | |
84 | + 'converter_conf' => [ | |
85 | + 'class' => 'common\components\parsers\CustomConverter', | |
86 | + 'configuration' => ["details" => [] | |
87 | + ],], | |
88 | + ], | |
72 | 89 | ], |
90 | + | |
73 | 91 | ]; |
74 | 92 | ... | ... |