protected function _prepareCollection() { $sort = $this->getParam('sort', $this->_defaultSort); $dir = $this->getParam('dir', $this->_defaultDir); $files = $this->_helper->getLogFiles(); if (isset($sort) && !empty($files) && isset($files[0][$sort])) { usort($files, function ($a, $b) use($sort, $dir) { $a = $a[$sort]; $b = $b[$sort]; if (is_numeric($a)) { return $dir == 'asc' ? $a - $b : $b - $a; } else { return $dir == 'asc' ? strcmp($a, $b) : -strcmp($a, $b); } }); } $collection = new Varien_Data_Collection(); foreach ($files as $file) { $item = new Varien_Object(); $item->setIdFieldName('filename'); $item->setFilename($file['filename']); $item->setFilesize($this->_helper->humanFilesize($file['filesize'])); $item->setLines($file['lines']); $collection->addItem($item); } $this->setCollection($collection); return parent::_prepareCollection(); }