Commit dfeb2d10be99e9c778eee8412e4a22334e45f475

Authored by Mihail
1 parent 574db870

edit universal csv parser

backend/components/parsers/CsvParser.php
... ... @@ -35,7 +35,7 @@ class CsvParser implements \IteratorAggregate {
35 35 /** @var array - array of headers values */
36 36 private $keys;
37 37  
38   - public function setup( $file, $first_line, $first_column, $hasHeaderRow = TRUE, $delimiter = ';')
  38 + public function setup( $file, $first_line, $first_column, $hasHeaderRow = false, $delimiter = ';')
39 39 {
40 40  
41 41 $this->first_line = $first_line;
... ... @@ -57,15 +57,7 @@ class CsvParser implements \IteratorAggregate {
57 57 return new \ArrayIterator($this->read());
58 58 }
59 59  
60   - /**
61   - * @return array
62   - * @throws InvalidFileException
63   - * @deprecated Use ::read instead.
64   - */
65   - public function parseAll()
66   - {
67   - return $this->read();
68   - }
  60 +
69 61  
70 62 /**
71 63 * @return array
... ... @@ -106,22 +98,29 @@ class CsvParser implements \IteratorAggregate {
106 98 }
107 99  
108 100  
109   - private function closeHandler()
  101 + protected function closeHandler()
110 102 {
111 103 $this->file = NULL;
112 104 }
113 105  
114   - private function readRow()
  106 + protected function readRow()
115 107 // @todo add comments
116 108 {
117   - $dirt_value_arr = $this->file->fgetcsv( );
118   - $dirt_value_arr = array_slice( $dirt_value_arr, $this->first_column );
119   - $clear_arr = Encoder::encodeArray( $this->in_charset, $this->out_charset, $dirt_value_arr );
  109 +
  110 + $row = $this->file->fgetcsv( );
  111 + //
  112 + if (is_array($row)) {
  113 + $row = array_slice( $row, $this->first_column );
  114 + $row = Encoder::encodeArray( $this->in_charset, $this->out_charset, $row );
  115 + } else{
  116 + $row = false;
  117 + }
  118 +
120 119  
121 120 // if ($this->keys !== NULL)
122   -// @$clear_arr[3] = ValueFilter::pricefilter($clear_arr[3]);
  121 +// @$clear_arr[3] = ValueFilter::pricefilter($clear_arr[3]);{}{}{}
123 122  
124   - return $clear_arr;
  123 + return $row;
125 124  
126 125 }
127 126  
... ...
backend/views/parser/results.php
... ... @@ -2,6 +2,7 @@
2 2  
3 3 use yii\helpers\Html;
4 4 use yii\grid\GridView;
  5 +use yii\grid\SerialColumn;
5 6  
6 7 /* @var $this yii\web\View */
7 8 /* @var $searchModel backend\models\CatalogSearch */
... ... @@ -19,6 +20,9 @@ $this->params['breadcrumbs'][] = $this->title;
19 20  
20 21 <?= GridView::widget([
21 22 'dataProvider' => $dataProvider,
  23 + 'columns' => [['class' => SerialColumn::className()],
  24 + '1',
  25 + '2',]
22 26 ]); ?>
23 27  
24 28 <?= Html::a('Вернуться', ['parser/index'], ['class' => 'btn btn-primary', 'name' => 'Return',]) ?>
... ...