У меня есть рабочий файловый менеджер с библиотекой разбиения на кодIgniter 3.0.4.Codeigniter Pagination 3.0.4 Сортировка каталогов и файлов
Я пытаюсь убедиться, что он отображает первый каталог, а затем файлы в разбивке на страницы.
В настоящее время кодировка codeignign сортирует каталоги и файлы по именам.
Вопрос с codeigniter pagination Как я могу убедиться, что все пути отображают каталоги в первую очередь. Затем сортирует файлы.
<?php
class Filemanager extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->library('upload');
$this->load->helper('text');
$this->load->library('pagination');
}
public function index($results = NULL) {
$data['title'] = 'File Manager';
$this_input_get_directory = $this->input->get('directory');
if (isset($this_input_get_directory)) {
$directory = scandir(FCPATH . 'images/catalog/' . $this_input_get_directory . '/', 1);
} else {
$directory = scandir(FCPATH . 'images/catalog/', 1);
}
$files = array_diff($directory, array('.', '..'));
$files_limit = 3;
$input_get_per_page = $this->uri->segment(2);
$input_get_per_page += $files_limit;
$config['base_url'] = base_url('filemanager');
$config['total_rows'] = count($files);
$config['per_page'] = $files_limit;
$config['uri_segment'] = 2;
$config['full_tag_open'] = "<ul class='pagination'>";
$config['full_tag_close'] ="</ul>";
$config['num_tag_open'] = '<li>';
$config['num_tag_close'] = '</li>';
$config['cur_tag_open'] = "<li class='disabled'><li class='active'><a href='#'>";
$config['cur_tag_close'] = "<span class='sr-only'></span></a></li>";
$config['next_tag_open'] = "<li>";
$config['next_tagl_close'] = "</li>";
$config['prev_tag_open'] = "<li>";
$config['prev_tagl_close'] = "</li>";
$config['first_tag_open'] = "<li>";
$config['first_tagl_close'] = "</li>";
$config['last_tag_open'] = "<li>";
$config['last_tagl_close'] = "</li>";
$this->pagination->initialize($config);
$data['images'] = array();
foreach ($files as $file => $value) {
$url = '';
if (isset($this_input_get_directory)) {
$url .= $this_input_get_directory . '/';
} else {
$url .= '';
}
if ($file < $input_get_per_page && $file >= $input_get_per_page - $files_limit) {
if (is_dir(FCPATH . 'images/catalog/' . $value)) {
$data['images'][] = array(
'thumb' => '',
'type' => 'directory',
'href' => site_url('filemanager') . '?directory='. $url . $value,
'name' => $value
);
} elseif (is_file(FCPATH . 'images/catalog/' . $url . $value)) {
$data['images'][] = array(
'thumb' => $this->resize($value, 100, 100),
'type' => 'image',
'name' => $value
);
}
}
}
$this->load->view('template/common/filemanager_view', $data);
}
}