Commit 7aaeda8eaf1a007f756e931e3107c90a24fd0302
1 parent
93e39994
add getKeys from Importer for parsing settings
Showing
2 changed files
with
37 additions
and
2 deletions
Show diff stats
backend/controllers/ParserController.php
@@ -278,13 +278,18 @@ class ParserController extends BaseController | @@ -278,13 +278,18 @@ class ParserController extends BaseController | ||
278 | { | 278 | { |
279 | // $comand = "/usr/bin/php -f ".Yii::getAlias('@console') ."/Controllers/ParserController.php"; | 279 | // $comand = "/usr/bin/php -f ".Yii::getAlias('@console') ."/Controllers/ParserController.php"; |
280 | // exec($comand); | 280 | // exec($comand); |
281 | + | ||
281 | if( $arr_id_files = Yii::$app->cache->get( 'files_to_parse' ) ) { | 282 | if( $arr_id_files = Yii::$app->cache->get( 'files_to_parse' ) ) { |
282 | $arr_id_files = json_decode( $arr_id_files ); | 283 | $arr_id_files = json_decode( $arr_id_files ); |
283 | foreach ( $arr_id_files as $file_name ) { | 284 | foreach ( $arr_id_files as $file_name ) { |
285 | + | ||
286 | + $importer_id = ImportersFiles::findOne(['id' => $file_name])->importer_id; | ||
287 | + $keys = Importers::findOne( ['id' => $importer_id] )->keys; | ||
288 | + | ||
284 | $file_path = Yii::getAlias('@auto_upload') . '/' . $file_name . '.csv'; | 289 | $file_path = Yii::getAlias('@auto_upload') . '/' . $file_name . '.csv'; |
285 | $config = ['record_id' => $file_name, | 290 | $config = ['record_id' => $file_name, |
286 | - 'importer_id' => ImportersFiles::findOne(['id' => $file_name])->id, | ||
287 | - 'parser_config' => ['keys' => ['DESCR', 'ARTICLE', 'BRAND', 'PRICE', 'BOX'], | 291 | + 'importer_id' => $importer_id, |
292 | + 'parser_config' => ['keys' => $keys, | ||
288 | 'mode' => 'console'] | 293 | 'mode' => 'console'] |
289 | ]; | 294 | ]; |
290 | if( $this->parseFileConsole( $file_path, $config ) ){ | 295 | if( $this->parseFileConsole( $file_path, $config ) ){ |
backend/models/Importers.php
@@ -82,5 +82,35 @@ class Importers extends BaseActiveRecord | @@ -82,5 +82,35 @@ class Importers extends BaseActiveRecord | ||
82 | } | 82 | } |
83 | 83 | ||
84 | 84 | ||
85 | + public function getKeys () | ||
86 | + { | ||
87 | + // возьмем только поля описанные в fields() - там как раз наши настройки парсера | ||
88 | + $arr = $this->toArray(); | ||
89 | + // отсортируем по ключам с учетом преобразования в число | ||
90 | + asort($arr, SORT_NUMERIC); | ||
91 | + // уберем нулевые колонки | ||
92 | + $arr = array_filter($arr, function($val){ | ||
93 | + return $val <> '0'; | ||
94 | + }); | ||
95 | + // нам нужны именно ключи | ||
96 | + $arr = array_keys($arr); | ||
97 | + return $arr; | ||
98 | + | ||
99 | + } | ||
100 | + | ||
101 | + public function fields() | ||
102 | + { | ||
103 | + return [ | ||
104 | + 'BRAND' => 'PARSER_FIELD_BRAND', | ||
105 | + 'ARTICLE' => 'PARSER_FIELD_ARTICLE', | ||
106 | + 'PRICE' => 'PARSER_FIELD_PRICE', | ||
107 | + 'DESCR' => 'PARSER_FIELD_DESCR', | ||
108 | + 'BOX' => 'PARSER_FIELD_BOX', | ||
109 | + 'ADD_BOX' => 'PARSER_FIELD_ADD_BOX', | ||
110 | + 'GROUP_RG' => 'PARSER_FIELD_GROUP_RG' | ||
111 | + ]; | ||
112 | + | ||
113 | + } | ||
114 | + | ||
85 | 115 | ||
86 | } | 116 | } |