Commit 48829d222ed6f4827fc9db5d96051d944a0336dc

Authored by Mihail
1 parent da63a578

parser

backend/components/parsers/ParserHandler.php
@@ -22,7 +22,7 @@ class ParserHandler { @@ -22,7 +22,7 @@ class ParserHandler {
22 $this->run(); 22 $this->run();
23 } 23 }
24 24
25 - private function run(){ 25 + public function run(){
26 if ($this->extension = '.csv'){ 26 if ($this->extension = '.csv'){
27 $csvParser = new Reader( $this->filePath ); 27 $csvParser = new Reader( $this->filePath );
28 return $csvParser->read(); 28 return $csvParser->read();
backend/controllers/ParserController.php
@@ -63,10 +63,12 @@ class ParserController extends Controller @@ -63,10 +63,12 @@ class ParserController extends Controller
63 $filePath = Yii::getAlias('@webroot') . '/uploads/' . $model->file->baseName . '.' . $model->file->extension; 63 $filePath = Yii::getAlias('@webroot') . '/uploads/' . $model->file->baseName . '.' . $model->file->extension;
64 $model->file->saveAs( $filePath ); 64 $model->file->saveAs( $filePath );
65 65
66 - $data = new ParserHandler( $filePath );  
67 -// echo "<pre>";  
68 -// var_dump($data);  
69 -// echo "</pre>"; 66 + $parser = new ParserHandler( $filePath );
  67 + $data = $parser->run();
  68 +
  69 + if( !is_array($data) ){
  70 + $data = ['No results'];
  71 + }
70 $provider = new ArrayDataProvider([ 72 $provider = new ArrayDataProvider([
71 'allModels' => $data, 73 'allModels' => $data,
72 'pagination' => [ 74 'pagination' => [
@@ -78,7 +80,7 @@ class ParserController extends Controller @@ -78,7 +80,7 @@ class ParserController extends Controller
78 ]); 80 ]);
79 81
80 return $this->render('results', 82 return $this->render('results',
81 - ['model' => $model, 83 + ['model' => $data,
82 'dataProvider' => $provider]); 84 'dataProvider' => $provider]);
83 } 85 }
84 } 86 }
backend/views/parser/index.php
1 <?php 1 <?php
2 use yii\widgets\ActiveForm; 2 use yii\widgets\ActiveForm;
3 ?> 3 ?>
4 - 4 + <div class="catalog-view">
5 <?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]) ?> 5 <?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]) ?>
6 6
7 <?= $form->field($model, 'file')->fileInput() ?> 7 <?= $form->field($model, 'file')->fileInput() ?>
8 8
9 <button>Прочитать</button> 9 <button>Прочитать</button>
10 10
11 -<?php ActiveForm::end() ?>  
12 \ No newline at end of file 11 \ No newline at end of file
  12 +<?php ActiveForm::end() ?>
  13 + </div>
13 \ No newline at end of file 14 \ No newline at end of file
backend/views/parser/results.php
@@ -4,43 +4,21 @@ use yii\helpers\Html; @@ -4,43 +4,21 @@ use yii\helpers\Html;
4 use yii\grid\GridView; 4 use yii\grid\GridView;
5 5
6 /* @var $this yii\web\View */ 6 /* @var $this yii\web\View */
7 -/* @var $searchModel backend\models\ArticlesSearch */ 7 +/* @var $searchModel backend\models\CatalogSearch */
8 /* @var $dataProvider yii\data\ActiveDataProvider */ 8 /* @var $dataProvider yii\data\ActiveDataProvider */
9 9
10 $this->title = 'Results'; 10 $this->title = 'Results';
11 $this->params['breadcrumbs'][] = $this->title; 11 $this->params['breadcrumbs'][] = $this->title;
12 ?> 12 ?>
13 -<div class="articles-index"> 13 +<div class="catalog-index">
14 14
15 <h1><?= Html::encode($this->title) ?></h1> 15 <h1><?= Html::encode($this->title) ?></h1>
16 <?php // echo $this->render('_search', ['model' => $searchModel]); ?> 16 <?php // echo $this->render('_search', ['model' => $searchModel]); ?>
17 17
18 - <p>  
19 - <?= Html::a('Создать', ['create', 'type' =>$type], ['class' => 'btn btn-success']) ?>  
20 - </p> 18 +
21 19
22 <?= GridView::widget([ 20 <?= GridView::widget([
23 'dataProvider' => $dataProvider, 21 'dataProvider' => $dataProvider,
24 - 'filterModel' => $searchModel,  
25 - 'columns' => [  
26 - ['class' => 'yii\grid\SerialColumn'],  
27 -  
28 - 'id',  
29 - 'name',  
30 - 'translit',  
31 - 'title',  
32 - [  
33 - 'format' => 'image',  
34 - 'attribute'=>'image',  
35 - ],  
36 - // 'body:ntext',  
37 - // 'meta_title',  
38 - // 'description',  
39 - // 'h1',  
40 - // 'seo_text:ntext',  
41 -  
42 - ['class' => 'yii\grid\ActionColumn'],  
43 - ],  
44 ]); ?> 22 ]); ?>
45 23
46 </div> 24 </div>
47 \ No newline at end of file 25 \ No newline at end of file