Commit 02e174a34bc16346857d244ed2777c24709b86a1
1 parent
002559aa
work with customer parser designer
Showing
5 changed files
with
48 additions
and
16 deletions
Show diff stats
backend/components/parsers/CustomCsvParser.php
| ... | ... | @@ -11,6 +11,11 @@ namespace backend\components\parsers; |
| 11 | 11 | |
| 12 | 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 | 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 | 15 | \ No newline at end of file | ... | ... |
backend/controllers/ParserController.php
| ... | ... | @@ -9,7 +9,7 @@ use backend\models\UploadFileParsingForm; |
| 9 | 9 | use yii\web\UploadedFile; |
| 10 | 10 | use yii\data\ArrayDataProvider; |
| 11 | 11 | |
| 12 | -use common\components\debug\CustomVarDamp; | |
| 12 | +use common\components\CustomVarDamp; | |
| 13 | 13 | |
| 14 | 14 | /** |
| 15 | 15 | * Parser controller |
| ... | ... | @@ -28,18 +28,18 @@ class ParserController extends BaseController |
| 28 | 28 | 'class' => AccessControl::className(), |
| 29 | 29 | 'rules' => [ |
| 30 | 30 | [ |
| 31 | - 'actions' => ['index','results'], | |
| 31 | + 'actions' => ['index','results','write'], | |
| 32 | 32 | 'allow' => true, |
| 33 | 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 | 92 | |
| 93 | 93 | return $this->render('results', |
| 94 | 94 | ['model' => $data, |
| 95 | + 'imp' => $model, | |
| 95 | 96 | 'dataProvider' => $provider]); |
| 96 | 97 | } |
| 97 | 98 | |
| ... | ... | @@ -111,12 +112,16 @@ class ParserController extends BaseController |
| 111 | 112 | |
| 112 | 113 | return $this->render('results', |
| 113 | 114 | ['model' => $data, |
| 115 | + 'imp' => $model, | |
| 114 | 116 | 'dataProvider' => $provider]); |
| 115 | 117 | } |
| 116 | 118 | |
| 117 | 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 | 21 | public $delimiter; |
| 22 | 22 | public $delete_price; |
| 23 | 23 | public $delete_prefix; |
| 24 | + public $first; | |
| 24 | 25 | |
| 25 | 26 | /** |
| 26 | 27 | * @return array the validation rules. |
| ... | ... | @@ -36,7 +37,8 @@ class UploadFileParsingForm extends Model |
| 36 | 37 | ['importer', 'integer','max' => 999999, 'min' => 0 ], |
| 37 | 38 | [['action','delete_prefix', 'delete_price'], 'boolean'], |
| 38 | 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 | 55 | public function readFile($filePath){ |
| 54 | 56 | |
| 55 | 57 | $data = Yii::$app->multiparser->parse($filePath); |
| 56 | - | |
| 58 | + // \common\components\CustomVarDamp::dumpAndDie($data); | |
| 57 | 59 | if( !is_array($data) ){ |
| 58 | 60 | $data = ['No results']; |
| 59 | 61 | } | ... | ... |
backend/views/parser/results.php
| ... | ... | @@ -3,6 +3,7 @@ |
| 3 | 3 | use yii\helpers\Html; |
| 4 | 4 | use yii\grid\GridView; |
| 5 | 5 | use yii\grid\SerialColumn; |
| 6 | +use yii\widgets\ActiveForm; | |
| 6 | 7 | |
| 7 | 8 | /* @var $this yii\web\View */ |
| 8 | 9 | /* @var $searchModel backend\models\CatalogSearch */ |
| ... | ... | @@ -14,22 +15,27 @@ $this->params['breadcrumbs'][] = $this->title; |
| 14 | 15 | <div class="catalog-index"> |
| 15 | 16 | |
| 16 | 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 | 23 | <?= GridView::widget([ |
| 22 | 24 | 'dataProvider' => $dataProvider, |
| 23 | 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 | 29 | '3', |
| 27 | 30 | '4', |
| 28 | 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 | 39 | <?= Html::a('Вернуться', ['parser/index'], ['class' => 'btn btn-primary', 'name' => 'Return',]) ?> |
| 34 | 40 | |
| 35 | 41 | </div> |
| 36 | 42 | \ No newline at end of file | ... | ... |