Commit 02e174a34bc16346857d244ed2777c24709b86a1

Authored by Mihail
1 parent 002559aa

work with customer parser designer

backend/components/parsers/CustomCsvParser.php
@@ -11,6 +11,11 @@ namespace backend\components\parsers; @@ -11,6 +11,11 @@ namespace backend\components\parsers;
11 11
12 class CustomCsvParser extends \yii\multiparser\CsvParser { 12 class CustomCsvParser extends \yii\multiparser\CsvParser {
13 13
  14 + public $last_line = 10;
  15 + public $hasHeaderRow = true;
  16 + public $keys = ['first','second', 'third', 'forth', 'fifth'];
  17 +
  18 +
14 protected function readRow() 19 protected function readRow()
15 { 20 {
16 21
backend/components/widgets/InputHeaderDataColumn.php 0 → 100644
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: Cibermag
  5 + * Date: 07.09.2015
  6 + * Time: 18:04
  7 + */
  8 +use yii\grid\DataColumn ;
  9 +class InputHeaderDataColumn extends DataColumn {
  10 +
  11 + protected function renderHeaderCellContent(){
  12 +
  13 + }
  14 +}
0 \ No newline at end of file 15 \ No newline at end of file
backend/controllers/ParserController.php
@@ -9,7 +9,7 @@ use backend\models\UploadFileParsingForm; @@ -9,7 +9,7 @@ use backend\models\UploadFileParsingForm;
9 use yii\web\UploadedFile; 9 use yii\web\UploadedFile;
10 use yii\data\ArrayDataProvider; 10 use yii\data\ArrayDataProvider;
11 11
12 -use common\components\debug\CustomVarDamp; 12 +use common\components\CustomVarDamp;
13 13
14 /** 14 /**
15 * Parser controller 15 * Parser controller
@@ -28,18 +28,18 @@ class ParserController extends BaseController @@ -28,18 +28,18 @@ class ParserController extends BaseController
28 'class' => AccessControl::className(), 28 'class' => AccessControl::className(),
29 'rules' => [ 29 'rules' => [
30 [ 30 [
31 - 'actions' => ['index','results'], 31 + 'actions' => ['index','results','write'],
32 'allow' => true, 32 'allow' => true,
33 'roles' => ['@'], 33 'roles' => ['@'],
34 ], 34 ],
35 ], 35 ],
36 ], 36 ],
37 - 'verbs' => [  
38 - 'class' => VerbFilter::className(),  
39 - 'actions' => [  
40 - 'logout' => ['post'],  
41 - ],  
42 - ], 37 +// 'verbs' => [
  38 +// 'class' => VerbFilter::className(),
  39 +// 'actions' => [
  40 +// 'logout' => ['post'],
  41 +// ],
  42 +// ],
43 ]; 43 ];
44 } 44 }
45 45
@@ -92,6 +92,7 @@ class ParserController extends BaseController @@ -92,6 +92,7 @@ class ParserController extends BaseController
92 92
93 return $this->render('results', 93 return $this->render('results',
94 ['model' => $data, 94 ['model' => $data,
  95 + 'imp' => $model,
95 'dataProvider' => $provider]); 96 'dataProvider' => $provider]);
96 } 97 }
97 98
@@ -111,12 +112,16 @@ class ParserController extends BaseController @@ -111,12 +112,16 @@ class ParserController extends BaseController
111 112
112 return $this->render('results', 113 return $this->render('results',
113 ['model' => $data, 114 ['model' => $data,
  115 + 'imp' => $model,
114 'dataProvider' => $provider]); 116 'dataProvider' => $provider]);
115 } 117 }
116 118
117 return $this->render('index', ['model' => $model]); 119 return $this->render('index', ['model' => $model]);
118 } 120 }
  121 +public function actionWrite()
  122 +{
  123 + CustomVarDamp::dumpAndDie(Yii::$app->request->post());
119 124
120 - 125 +}
121 126
122 } 127 }
backend/models/UploadFileParsingForm.php
@@ -21,6 +21,7 @@ class UploadFileParsingForm extends Model @@ -21,6 +21,7 @@ class UploadFileParsingForm extends Model
21 public $delimiter; 21 public $delimiter;
22 public $delete_price; 22 public $delete_price;
23 public $delete_prefix; 23 public $delete_prefix;
  24 + public $first;
24 25
25 /** 26 /**
26 * @return array the validation rules. 27 * @return array the validation rules.
@@ -36,7 +37,8 @@ class UploadFileParsingForm extends Model @@ -36,7 +37,8 @@ class UploadFileParsingForm extends Model
36 ['importer', 'integer','max' => 999999, 'min' => 0 ], 37 ['importer', 'integer','max' => 999999, 'min' => 0 ],
37 [['action','delete_prefix', 'delete_price'], 'boolean'], 38 [['action','delete_prefix', 'delete_price'], 'boolean'],
38 ['delimiter', 'string', 'max' => 1], 39 ['delimiter', 'string', 'max' => 1],
39 - ['delimiter', 'default', 'value' => ';'] 40 + ['delimiter', 'default', 'value' => ';'],
  41 + ['first', 'safe']
40 42
41 ]; 43 ];
42 } 44 }
@@ -53,7 +55,7 @@ class UploadFileParsingForm extends Model @@ -53,7 +55,7 @@ class UploadFileParsingForm extends Model
53 public function readFile($filePath){ 55 public function readFile($filePath){
54 56
55 $data = Yii::$app->multiparser->parse($filePath); 57 $data = Yii::$app->multiparser->parse($filePath);
56 - 58 + // \common\components\CustomVarDamp::dumpAndDie($data);
57 if( !is_array($data) ){ 59 if( !is_array($data) ){
58 $data = ['No results']; 60 $data = ['No results'];
59 } 61 }
backend/views/parser/results.php
@@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
3 use yii\helpers\Html; 3 use yii\helpers\Html;
4 use yii\grid\GridView; 4 use yii\grid\GridView;
5 use yii\grid\SerialColumn; 5 use yii\grid\SerialColumn;
  6 +use yii\widgets\ActiveForm;
6 7
7 /* @var $this yii\web\View */ 8 /* @var $this yii\web\View */
8 /* @var $searchModel backend\models\CatalogSearch */ 9 /* @var $searchModel backend\models\CatalogSearch */
@@ -14,22 +15,27 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -14,22 +15,27 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
14 <div class="catalog-index"> 15 <div class="catalog-index">
15 16
16 <h1><?= Html::encode($this->title) ?></h1> 17 <h1><?= Html::encode($this->title) ?></h1>
17 - <?php // echo $this->render('_search', ['model' => $searchModel]); ?>  
18 - 18 + <?php // echo $this->render('_search', ['model' => $searchModel]);
19 19
20 20
  21 + $form = ActiveForm::begin(['action' => 'write']);
  22 + ?>
21 <?= GridView::widget([ 23 <?= GridView::widget([
22 'dataProvider' => $dataProvider, 24 'dataProvider' => $dataProvider,
23 'columns' => [['class' => SerialColumn::className()], 25 'columns' => [['class' => SerialColumn::className()],
24 - '1',  
25 - '2', 26 + ['header' => $form->field($imp, 'first')->dropDownList(['1'=>'001', '2'=>'002']),
  27 + 'attribute' => 'first' ],
  28 + 'second',
26 '3', 29 '3',
27 '4', 30 '4',
28 '5',] 31 '5',]
29 ]); ?> 32 ]); ?>
30 33
  34 + <div class="form-group">
  35 + <?= Html::submitButton(Yii::t('app', 'Записать в БД'), ['class' => 'btn btn-primary']) ?>
  36 + </div>
31 37
32 - 38 + <?php ActiveForm::end() ?>
33 <?= Html::a('Вернуться', ['parser/index'], ['class' => 'btn btn-primary', 'name' => 'Return',]) ?> 39 <?= Html::a('Вернуться', ['parser/index'], ['class' => 'btn btn-primary', 'name' => 'Return',]) ?>
34 40
35 </div> 41 </div>
36 \ No newline at end of file 42 \ No newline at end of file