如何获得CI分页以使用array();

ED先生

我怎样才能使Codeigniter分页与我一起使用 $data['controller_files'][] = array()

我无法找出放置uri-> segment(4)和每页限制的最佳位置。

分页链接有效,但不是每页可用。仍显示我桌上的文件的完整列表。

路线

// Extensions
$route['admin/extension/permissions'] = "admin/extension/extension_permissions/index";
$route['admin/extension/permissions/(:any)'] = "admin/extension/extension_permissions/index/$1";

控制器

<?php

class Extension_permissions extends Admin_Controller {
    public function index($offset = 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') ;

    if ($files) {

        foreach ($files as $file) {

            $controller =  basename(strtolower($file), '.php');

            $this->load->library('pagination');

            $limit = 1;
            $total_rows = 13; // Number of Current files.

            $config['base_url'] = base_url()."admin/extension/permissions";
            $config['total_rows'] = $total_rows;
            $config['per_page'] = $limit;
            $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'] = '&laquo;'; 
            $config['prev_link'] = '&lsaquo;'; 
            $config['last_link'] = '&raquo;'; 
            $config['next_link'] = '&rsaquo;'; 
            $config['first_tag_open'] = '<li>'; 
            $config['first_tag_close'] = '</li>'; 
            $config['last_tag_open'] = '<li>'; 
            $config['last_tag_close'] = '</li>';

            $this->pagination->initialize($config);     

            $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) . ' &gt; ' . $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->parser->parse('template/extension/extension_permissions', $data);
}
}

看法

<div class="panel panel-default">
<div class="panel-heading"><h1 class="panel-title"></h1>{title}</div>
<div class="panel-body">
<div class="table-responsive">

<table class="table table-striped table-bordered table-hover" >
<thead>
    <tr>
    <td data-field="name">Controller Name</td>
    <td class="text-right">Action</td>
    </tr>
</thead id="myTable">
<tbody>
<?php if ($controller_files) { ?>
<?php foreach ($controller_files as $controllers) { ?>

<tr>
<td><?php echo $controllers['name']; ?></td>
<td class="text-right">
<?php if (!$controllers['installed']) { ?>
<a href="<?php echo $controllers['install']; ?>" class="btn btn-success"><i class="fa fa-plus-circle"></i> Install</a>
<?php } else { ?>
<a href="<?php echo $controllers['uninstall']; ?>" class="btn btn-danger"><i class="fa fa-minus-circle"></i> Uninstall</a>
<?php } ?>
</td>
</tr>

<?php foreach ($controllers['module'] as $module) { ?>
<tr>
<td class="text-left"><?php echo $module['name']; ?></td>
<td class="text-right">
<a href="<?php echo $module['delete']; ?>"  class="btn btn-danger"><i class="fa fa-trash-o"></i> Uninstall</a> 
<a href="<?php echo $module['edit']; ?>"  class="btn btn-primary"><i class="fa fa-pencil"></i> Edit</a>
</td>
</tr>
<?php } ?>

<?php } ?>
<?php } else { ?>
<tr>
    <td class="text-center">No Results</td>
</tr>
<?php } ?>
</tbody>
</table>
</div><!-- Table Responsive End -->
</div><!-- Panel Body End -->
<div class="panel-footer">
    <div class="clearfix">
        <div class="pull-left">
            <?php echo $this->pagination->create_links();?>
        </div>
        <div class="pull-right">
        </div>
    </div>
</div>
</div><!-- Panel Default End -->
昂卡昂

您可以使用array_slice来获取每页数据。

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();

        if (count($files)) {
            $paginatedFiles = array_slice($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) . ' &gt; ' . $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($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'] = '&laquo;'; 
        $config['prev_link'] = '&lsaquo;'; 
        $config['last_link'] = '&raquo;'; 
        $config['next_link'] = '&rsaquo;'; 
        $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);
    }

希望对您有用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章