7
7
8
8
namespace Magento \ImportExport \Ui \DataProvider ;
9
9
10
+ use Magento \Framework \App \ObjectManager ;
10
11
use Magento \Framework \View \Element \UiComponent \DataProvider \DataProvider ;
11
12
use Magento \Framework \Filesystem \DriverInterface ;
12
13
use Magento \Framework \App \Filesystem \DirectoryList ;
13
14
use Magento \Framework \Filesystem ;
15
+ use Magento \Framework \Filesystem \Io \File ;
14
16
15
17
/**
16
18
* Data provider for export grid.
17
19
*/
18
20
class ExportFileDataProvider extends DataProvider
19
21
{
22
+ /**
23
+ * @var File|null
24
+ */
25
+ private $ fileIO ;
26
+
20
27
/**
21
28
* @var DriverInterface
22
29
*/
@@ -37,6 +44,7 @@ class ExportFileDataProvider extends DataProvider
37
44
* @param \Magento\Framework\Api\FilterBuilder $filterBuilder
38
45
* @param DriverInterface $file
39
46
* @param Filesystem $filesystem
47
+ * @param File|null $fileIO
40
48
* @param array $meta
41
49
* @param array $data
42
50
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
@@ -51,6 +59,7 @@ public function __construct(
51
59
\Magento \Framework \Api \FilterBuilder $ filterBuilder ,
52
60
DriverInterface $ file ,
53
61
Filesystem $ filesystem ,
62
+ File $ fileIO = null ,
54
63
array $ meta = [],
55
64
array $ data = []
56
65
) {
@@ -67,6 +76,9 @@ public function __construct(
67
76
$ meta ,
68
77
$ data
69
78
);
79
+
80
+ $ this ->fileIO = $ fileIO ?: ObjectManager::getInstance ()->get (File::class);
81
+ $ this ->request = $ request ;
70
82
}
71
83
72
84
/**
@@ -89,10 +101,14 @@ public function getData()
89
101
}
90
102
$ result = [];
91
103
foreach ($ files as $ file ) {
92
- $ result ['items ' ][]['file_name ' ] = basename ($ file );
104
+ $ result ['items ' ][]['file_name ' ] = $ this -> fileIO -> getPathInfo ($ file )[ ' basename ' ] ;
93
105
}
94
106
107
+ $ pageSize = (int ) $ this ->request ->getParam ('paging ' )['pageSize ' ];
108
+ $ pageCurrent = (int ) $ this ->request ->getParam ('paging ' )['current ' ];
109
+ $ pageOffset = ($ pageCurrent - 1 ) * $ pageSize ;
95
110
$ result ['totalRecords ' ] = count ($ result ['items ' ]);
111
+ $ result ['items ' ] = array_slice ($ result ['items ' ], $ pageOffset , $ pageSize );
96
112
97
113
return $ result ;
98
114
}
0 commit comments