当我使用我的分页时,我不希望它计算我的数组中的某些文件。我尝试过阵列差异但没有工作。
如何制作,以便不计算我 $not_count array()
中的任何内容,因此我的$config['total_rows'] = $counted_files;
显示正确的计数。
<?php
class Extension_permissions extends Admin_Controller {
public function __construct() {
parent::__construct();
$this->load->model('admin/extension/model_extension_permissions');
if ($this->model_extension_permissions->check_permission_access() == true) {
return true;
} else {
redirect('admin/permission');
}
}
public function index($page = 0) {
$data['title'] = "Permissions";
$controller_files = $this->model_extension_permissions->get_installed_permissions('name');
$data['controller_files'] = array();
$files = glob(FCPATH . 'application/modules/admin/controllers/*/*.php') ;
$per_page = 1;
$offset = $page * $per_page;
$paginatedFiles = array();
$not_count = array(
FCPATH . 'application/modules/admin/controllers/common/dashboard.php',
FCPATH . 'application/modules/admin/controllers/common/login.php',
FCPATH . 'application/modules/admin/controllers/common/logout.php',
FCPATH . 'application/modules/admin/controllers/common/header.php',
FCPATH . 'application/modules/admin/controllers/common/footer.php'
);
$counted_files = array_diff($not_count, count($files)) ;
if ($counted_files) {
$paginatedFiles = array_slice($files, $offset, $per_page);
}
if ($paginatedFiles) {
foreach ($paginatedFiles as $file) {
$controller = basename(strtolower($file), '.php');
$modules = $this->model_extension_permissions->get_permissions_by_controller($controller);
$module_data = array();
foreach ($modules as $module) {
$module_data[] = array(
'permission_id' => $module['permission_id'],
'name' => ucwords(str_replace('_', ' ', $controller) . ' > ' . $module['name']),
'edit' => site_url('admin/extension/permissions/update' .'/'. $controller .'/'. $module['permission_id']),
'delete' => site_url('admin/extension/permissions/uninstall' .'/'. $controller .'/'. $module['permission_id'])
);
}
$data['controller_files'][] = array(
'name' => $controller,
'controller' => $controller,
'module' => $module_data,
'install' => site_url('admin/extension/permissions/install') .'/'.$controller,
'installed' => in_array($controller, $controller_files)
);
}
}
$this->load->library('pagination');
$config['base_url'] = base_url()."admin/extension/permissions";
$config['total_rows'] = $counted_files;
$config['per_page'] = $per_page;
$config['num_links'] = 200;
$config['uri_segment'] = 4;
$config['use_page_numbers'] = TRUE;
$this->pagination->initialize($config);
$this->parser->parse('template/extension/extension_permissions', $data);
}
}
答案 0 :(得分:2)
array_diff的第一个参数是要比较的数组,第二个参数是要比较的数组。在这种情况下,您要从$not_count
中排除$files
。你的代码应该是这样的。
public function index($page = 1) {
$data['title'] = "Permissions";
$controller_files = $this->model_extension_permissions->get_installed_permissions('name');
$data['controller_files'] = array();
$files = glob(FCPATH . 'application/modules/admin/controllers/*/*.php') ;
$per_page = 5;
$offset = ($page - 1) * $per_page;
$paginatedFiles = array();
$not_count = array(
FCPATH . 'application/modules/admin/controllers/common/dashboard.php',
FCPATH . 'application/modules/admin/controllers/common/login.php',
FCPATH . 'application/modules/admin/controllers/common/logout.php',
FCPATH . 'application/modules/admin/controllers/common/header.php',
FCPATH . 'application/modules/admin/controllers/common/footer.php'
);
$counted_files = array_diff($files, $not_count) ;
if (count($counted_files)) {
$paginatedFiles = array_slice($counted_files, $offset, $per_page, true);
}
if ($paginatedFiles) {
foreach ($paginatedFiles as $file) {
$controller = basename(strtolower($file), '.php');
$modules = $this->model_extension_permissions->get_permissions_by_controller($controller);
$module_data = array();
foreach ($modules as $module) {
$module_data[] = array(
'permission_id' => $module['permission_id'],
'name' => ucwords(str_replace('_', ' ', $controller) . ' > ' . $module['name']),
'edit' => site_url('admin/extension/permissions/update' .'/'. $controller .'/'. $module['permission_id']),
'delete' => site_url('admin/extension/permissions/uninstall' .'/'. $controller .'/'. $module['permission_id'])
);
}
$data['controller_files'][] = array(
'name' => $controller,
'controller' => $controller,
'module' => $module_data,
'install' => site_url('admin/extension/permissions/install') .'/'.$controller,
'installed' => in_array($controller, $controller_files)
);
}
}
$this->load->library('pagination');
$config['base_url'] = base_url()."admin/extension/permissions";
$config['total_rows'] = count($counted_files);
$config['per_page'] = $per_page;
$config['num_links'] = 5;
$config['uri_segment'] = 4;
$config['use_page_numbers'] = TRUE;
$config['full_tag_open'] = '<ul class="pagination pagination-sm">';
$config['full_tag_close'] = '</ul>';
$config['num_tag_open'] = '<li>';
$config['num_tag_close'] = '</li>';
$config['cur_tag_open'] = '<li class="active"><span>';
$config['cur_tag_close'] = '<span class="sr-only">(current)</span></span></li>';
$config['prev_tag_open'] = '<li>';
$config['prev_tag_close'] = '</li>';
$config['next_tag_open'] = '<li>';
$config['next_tag_close'] = '</li>';
$config['first_link'] = '«';
$config['prev_link'] = '‹';
$config['last_link'] = '»';
$config['next_link'] = '›';
$config['first_tag_open'] = '<li>';
$config['first_tag_close'] = '</li>';
$config['last_tag_open'] = '<li>';
$config['last_tag_close'] = '</li>';
$this->pagination->initialize($config);
$this->parser->parse('template/extension/extension_permissions', $data);
}
希望它对你有用。