示例#1
0
 function activity()
 {
     $this->_validate_user('manage/activity');
     $this->load->module_model(FUEL_FOLDER, 'logs_model');
     $this->load->library('pagination');
     $this->load->library('data_table');
     $this->load->helper('convert');
     $this->nav_selected = 'manage/activity';
     $page_state = $this->_get_page_state();
     /* PROCESS PARAMS BEGIN */
     $filters = array();
     $defaults = array();
     $defaults['col'] = 'entry_date';
     $defaults['order'] = 'asc';
     $defaults['offset'] = 0;
     $defaults['limit'] = 25;
     $defaults['search_term'] = '';
     $defaults['precedence'] = NULL;
     $uri_params = uri_safe_batch_decode(fuel_uri_segment(4), '|', TRUE);
     $uri_params = array();
     if (fuel_uri_segment(4)) {
         $uri_params['offset'] = (int) fuel_uri_segment(4);
     }
     $posted = array();
     if (!empty($_POST)) {
         if ($this->input->post('col')) {
             $posted['col'] = $this->input->post('col');
         }
         if ($this->input->post('order')) {
             $posted['order'] = $this->input->post('order');
         }
         if ($this->input->post('limit')) {
             $posted['limit'] = $this->input->post('limit');
         }
         if ($this->input->post('limit')) {
             $posted['offset'] = (int) $this->input->post('offset');
         }
         $posted['search_term'] = $this->input->post('search_term');
     }
     //$params = array_merge($defaults, $uri_params, $posted);
     $params = array_merge($defaults, $page_state, $uri_params, $posted);
     if ($params['search_term'] == lang('label_search')) {
         $params['search_term'] = NULL;
     }
     /* PROCESS PARAMS END */
     $seg_params = $params;
     unset($seg_params['offset']);
     $seg_params = uri_safe_batch_encode($seg_params, '|', TRUE);
     // if (!is_ajax() AND !empty($_POST))
     // {
     // 	$uri = fuel_url('manage/activity/offset/'.$params['offset']);
     // 	redirect($uri);
     // }
     $filters['first_name'] = $params['search_term'];
     $filters['last_name'] = $params['search_term'];
     $filters['message'] = $params['search_term'];
     $filters['entry_date'] = $params['search_term'];
     $this->logs_model->add_filters($filters);
     // pagination
     $config['base_url'] = fuel_url('manage/activity/offset/');
     $config['total_rows'] = $this->logs_model->list_items_total();
     $config['uri_segment'] = fuel_uri_index(4);
     $config['per_page'] = $params['limit'];
     $config['page_query_string'] = FALSE;
     $config['num_links'] = 5;
     $config['prev_link'] = lang('pagination_prev_page');
     $config['next_link'] = lang('pagination_next_page');
     $config['first_link'] = lang('pagination_first_link');
     $config['last_link'] = lang('pagination_last_link');
     $this->pagination->initialize($config);
     $this->_save_page_state($params);
     // data table
     $vars['params'] = $params;
     $vars['table'] = '';
     if (is_ajax()) {
         $items = $this->logs_model->list_items($params['limit'], $params['offset'], $params['col'], $params['order']);
         $this->data_table->row_alt_class = 'alt';
         $this->data_table->id = 'activity_data_table';
         // change this so that it doesn't have clickable rows'
         $this->data_table->only_data_cols = array('id');
         $this->data_table->set_sorting($params['col'], $params['order']);
         $this->data_table->auto_sort = TRUE;
         $this->data_table->sort_js_func = 'page.sortList';
         $headers = array('entry_date' => lang('form_label_entry_date'), 'name' => lang('form_label_name'), 'message' => lang('form_label_message'));
         $this->data_table->assign_data($items, $headers);
         $vars['table'] = $this->data_table->render();
         $this->load->view('_blocks/module_list_table', $vars);
         return;
     } else {
         $this->load->library('form_builder');
         $this->js_controller_params['method'] = 'activity';
         $vars['table'] = $this->load->view('_blocks/module_list_table', $vars, TRUE);
         $vars['pagination'] = $this->pagination->create_links();
         // for extra module filters
         $field_values = array();
         $this->_render('manage/activity', $vars);
     }
 }
示例#2
0
/**
 * Returns the uri string based on the FUEL admin path
 *
 * @access	public
 * @param	int
 * @param	int
 * @param	boolean
 * @return	string
 */
function fuel_uri_string($from = 0, $to = NULL, $rerouted = FALSE)
{
	$CI =& get_instance();
	$fuel_index = fuel_uri_index($from);
	
	if ($rerouted)
	{
		$segs = $CI->uri->rsegment_array($fuel_index);
	}
	else
	{
		$segs = $CI->uri->segment_array($fuel_index);
	}
	$from = fuel_uri_index($from);
	if (isset($to)) {
		$to = fuel_uri_index($to);
		if ($from < $to)
		{
			$to = $from;
		}
	}
	$segs = array_slice($segs, $from, $to);
	$uri = implode('/', $segs);
	return $uri;
}
示例#3
0
    function items()
    {
        $this->load->library('data_table');
        $params = $this->_list_process();
        $seg_params = $params;
        unset($seg_params['offset']);
        $seg_params = uri_safe_batch_encode($seg_params, '|', TRUE);
        // save page state
        $this->_save_page_state($params);
        if (!is_ajax() and !empty($_POST)) {
            //$uri = $this->config->item('fuel_path', 'fuel').$this->module.'/items/params/'.$seg_params.'/offset/'.$params['offset'];
            $uri = $this->config->item('fuel_path', 'fuel') . $this->module . '/items/offset/' . $params['offset'];
            redirect($uri);
        }
        // create search filter
        $filters[$this->display_field] = $params['search_term'];
        //$filters = array();
        // sort of hacky here... to make it easy for the model to just filter on the search term (like the users model)
        $this->model->filter_value = $params['search_term'];
        foreach ($this->filters as $key => $val) {
            $filters[$key] = $params[$key];
        }
        // set model filters before pagination and setting table data
        if (method_exists($this->model, 'add_filters')) {
            $this->model->add_filters($filters);
        }
        $this->config->set_item('enable_query_strings', FALSE);
        // pagination
        $config['base_url'] = fuel_url($this->module) . '/items/offset/';
        $config['total_rows'] = $this->model->list_items_total();
        $config['uri_segment'] = fuel_uri_index(4);
        $config['per_page'] = (int) $params['limit'];
        $config['page_query_string'] = FALSE;
        $config['num_links'] = 5;
        $this->pagination->initialize($config);
        if (method_exists($this->model, 'tree')) {
            //$vars['tree'] = "Loading...\n<ul></ul>\n";
            $vars['tree'] = "\n<ul></ul>\n";
        }
        // set vars
        $vars['params'] = $params;
        $vars['table'] = '';
        // reload table
        if (is_ajax()) {
            // data table items... check col value to know if we want to send sorting parameter
            if (empty($params['col']) or empty($params['order'])) {
                $items = $this->model->list_items($params['limit'], $params['offset']);
            } else {
                $items = $this->model->list_items($params['limit'], $params['offset'], $params['col'], $params['order']);
            }
            // set data table actions... look first for item_actions set in the fuel_modules
            foreach ($this->table_actions as $key => $val) {
                if (!is_int($key)) {
                    $action_type = 'url';
                    $action_val = $this->table_actions[$key];
                    if (is_array($val)) {
                        $action_type = key($val);
                        $action_val = current($val);
                    }
                    $this->data_table->add_action($key, $action_val, $action_type);
                } else {
                    if (strtoupper($val) == 'DELETE') {
                        $delete_func = '
					$CI =& get_instance();
					$link = "";
					if ($CI->fuel_auth->has_permission($CI->permission, "delete"))
					{
						$url = site_url("/".$CI->config->item("fuel_path", "fuel").$CI->module_uri."/delete/".$cols[$CI->model->key_field()]);
						$link = "<a href=\\"".$url."\\">DELETE</a>";
						$link .= " <input type=\\"checkbox\\" name=\\"delete[".$cols[$CI->model->key_field()]."]\\" value=\\"1\\" id=\\"delete_".$cols[$CI->model->key_field()]."\\" class=\\"multi_delete\\"/>";
					}
					return $link;';
                        $delete_func = create_function('$cols', $delete_func);
                        $this->data_table->add_action($val, $delete_func, 'func');
                    } else {
                        if (strtoupper($val) != 'VIEW' or !empty($this->preview_path) and strtoupper($val) == 'VIEW') {
                            $this->data_table->add_action($val, site_url('/' . $this->config->item('fuel_path', 'fuel') . $this->module_uri . '/' . strtolower($val) . '/{' . $this->model->key_field() . '}'), 'url');
                        }
                    }
                }
            }
            if (!$this->rows_selectable) {
                $this->data_table->id = 'data_table_noselect';
                $this->data_table->row_action = FALSE;
            } else {
                $this->data_table->row_action = TRUE;
            }
            $this->data_table->row_alt_class = 'alt';
            $this->data_table->only_data_fields = array($this->model->key_field());
            $this->data_table->set_sorting($params['col'], $params['order']);
            $this->data_table->auto_sort = TRUE;
            $this->data_table->actions_field = 'last';
            $this->data_table->no_data_str = lang('no_data');
            $_unpub_func = '
			$CI =& get_instance();
			$can_publish = $CI->fuel_auth->has_permission($CI->permission, "publish");
			$is_publish = (isset($cols[\'published\'])) ? TRUE : FALSE;
			if ((isset($cols[\'published\']) AND $cols[\'published\'] == "no") OR (isset($cols[\'active\']) AND $cols[\'active\'] == "no")) 
			{ 
				$text_class = ($can_publish) ? "publish_text unpublished toggle_publish": "published";
				$action_class = ($can_publish) ? "publish_action unpublished hidden": "unpublished hidden";
				$col_txt = ($is_publish) ? \'click to publish\' : \'click to activate\';
				return "<span class=\\"publish_hover\\"><span class=\\"".$text_class."\\" id=\\"row_published_".$cols["' . $this->model->key_field() . '"]."\\">no</span><span class=\\"".$action_class."\\">".$col_txt."</span></span>";
			}
			else
			{ 
				$text_class = ($can_publish) ? "publish_text published toggle_unpublish": "published";
				$action_class = ($can_publish) ? "publish_action published hidden": "published hidden";
				$col_txt = ($is_publish) ? \'click to unpublish\' : \'click to deactivate\';
				return "<span class=\\"publish_hover\\"><span class=\\"".$text_class."\\" id=\\"row_published_".$cols["' . $this->model->key_field() . '"]."\\">yes</span><span class=\\"".$action_class."\\">".$col_txt."</span></span>";
			}';
            $_unpublished = create_function('$cols', $_unpub_func);
            $this->data_table->add_field_formatter('published', $_unpublished);
            $this->data_table->add_field_formatter('active', $_unpublished);
            $this->data_table->auto_sort = TRUE;
            $this->data_table->sort_js_func = 'page.sortList';
            $this->data_table->assign_data($items);
            $vars['table'] = $this->data_table->render();
            $this->load->module_view(FUEL_FOLDER, '_blocks/module_list_table', $vars);
            return;
        } else {
            $this->load->library('form_builder');
            $this->js_controller_params['method'] = 'items';
            $vars['table'] = $this->load->module_view(FUEL_FOLDER, '_blocks/module_list_table', $vars, TRUE);
            $vars['pagination'] = $this->pagination->create_links();
            // for extra module 'filters'
            $field_values = array();
            foreach ($this->filters as $key => $val) {
                $field_values[$key] = $params[$key];
            }
            $this->form_builder->question_keys = array();
            //$this->form_builder->hidden = (array) $this->model->key_field();
            $this->form_builder->label_layout = 'left';
            $this->form_builder->form->validator =& $this->model->get_validation();
            $this->form_builder->submit_value = null;
            $this->form_builder->use_form_tag = FALSE;
            $this->form_builder->set_fields($this->filters);
            $this->form_builder->display_errors = FALSE;
            $this->form_builder->css_class = 'more_filters';
            $this->form_builder->set_field_values($field_values);
            $vars['more_filters'] = $this->form_builder->render();
            $this->_render($this->views['list'], $vars);
        }
    }
示例#4
0
    /**
     * Displays the list (table) view
     *
     * @access	public
     * @return	void
     */
    function items()
    {
        $this->load->library('data_table');
        $filters = $this->model->filters($this->filters);
        if (is_object($filters) && $filters instanceof Base_model_fields) {
            $filters = $filters->get_fields();
        }
        $this->filters = array_merge($this->filters, $filters);
        // set the language dropdown if there is a language column
        if ($this->fuel->language->has_multiple() and !empty($this->language_col) and method_exists($this->model, 'get_languages')) {
            $languages = $this->model->get_languages($this->language_col);
            $first_option = current($languages);
            if (!empty($languages) and (is_string($first_option) or is_array($first_option) and count($first_option) > 1)) {
                $lang_filter = array('type' => 'select', 'options' => $languages, 'label' => lang('label_language'), 'first_option' => lang('label_select_a_language'));
                $this->filters[$this->language_col . '_equal'] = $lang_filter;
                $this->model->add_filter_join($this->language_col . '_equal', 'and');
            }
        }
        $params = $this->_list_process();
        // save page state
        $this->fuel->admin->save_page_state($params);
        // filter the list
        $this->_filter_list($params);
        // to prevent it from being called unnecessarily with ajax
        if (!is_ajax()) {
            $this->config->set_item('enable_query_strings', FALSE);
            // pagination
            $query_str_arr = $this->input->get(NULL, TRUE);
            unset($query_str_arr['offset']);
            $query_str = !empty($query_str_arr) ? http_build_query($query_str_arr) : '';
            $config['base_url'] = fuel_url($this->module_uri) . '/items/?' . $query_str;
            $uri_segment = 4 + (count(explode('/', $this->module_uri)) - 1);
            $config['total_rows'] = $this->model->list_items_total();
            $config['uri_segment'] = fuel_uri_index($uri_segment);
            $config['per_page'] = (int) $params['limit'];
            $config['query_string_segment'] = 'offset';
            $config['page_query_string'] = TRUE;
            $config['num_links'] = 5;
            $config['prev_link'] = lang('pagination_prev_page');
            $config['next_link'] = lang('pagination_next_page');
            $config['first_link'] = lang('pagination_first_link');
            $config['last_link'] = lang('pagination_last_link');
            // must reset these in case a config file has something different
            $config['full_tag_open'] = NULL;
            $config['full_tag_close'] = NULL;
            $config['num_tag_open'] = '&nbsp;';
            $config['num_tag_close'] = NULL;
            $config['cur_tag_open'] = '&nbsp;<strong>';
            $config['cur_tag_close'] = '</strong>';
            $config['next_tag_open'] = '&nbsp;';
            $config['next_tag_close'] = '&nbsp;';
            $config['prev_tag_open'] = '&nbsp;';
            $config['prev_tag_close'] = NULL;
            $config['first_tag_open'] = '&nbsp;';
            $config['first_tag_close'] = '&nbsp;';
            $config['last_tag_open'] = NULL;
            $config['last_tag_close'] = NULL;
            $this->pagination->initialize($config);
            if (method_exists($this->model, 'tree')) {
                $vars['tree'] = "\n<ul></ul>\n";
            }
            // reset offset if total rows is less then limit
            if ($config['total_rows'] < $params['limit']) {
                $params['offset'] = 0;
            }
        }
        // set vars
        $vars['params'] = $params;
        $vars['table'] = '';
        // reload table
        if (is_ajax()) {
            // data table items... check col value to know if we want to send sorting parameter
            if (empty($params['col']) or empty($params['order'])) {
                $items = $this->model->list_items($params['limit'], $params['offset']);
            } else {
                $items = $this->model->list_items($params['limit'], $params['offset'], $params['col'], $params['order']);
                $this->data_table->set_sorting($params['col'], $params['order']);
            }
            $has_edit_permission = $this->fuel->auth->has_permission($this->permission, "edit") ? '1' : '0';
            $has_delete_permission = $this->fuel->auth->has_permission($this->permission, "delete") ? '1' : '0';
            // set data table actions... look first for item_actions set in the fuel_modules
            /*$edit_func = '
            			$CI =& get_instance();
            			$link = "";';
            
            			if ($has_edit_permission)
            			{
            				$edit_func .= 'if (isset($cols[$CI->model->key_field()]))
            				{	
            					echo  $cols[$CI->model->limit_to_user_field];
            					if (empty($CI->model->limit_to_user_field) OR (!empty($CI->model->limit_to_user_field) AND (!empty($cols[$CI->model->limit_to_user_field])) AND $cols[$CI->model->limit_to_user_field] = $CI->fuel->auth->user_data("id")))
            					{
            						$url = fuel_url("'.$this->module_uri.'/edit/".$cols[$CI->model->key_field()]);
            						$link = "<a href=\"".$url."\" class=\"action_delete\">".lang("table_action_delete")."</a>";
            						$link .= " <input type=\"checkbox\" name=\"delete[".$cols[$CI->model->key_field()]."]\" value=\"1\" id=\"delete_".$cols[$CI->model->key_field()]."\" class=\"multi_delete\"/>";
            					}
            				}';	
            			}
            
            			$edit_func .= 'return $link;';
            
            			$edit_func = create_function('$cols', $edit_func);*/
            // set data table actions... look first for item_actions set in the fuel_modules
            $delete_func = '
			$CI =& get_instance();
			$link = "";';
            if ($has_delete_permission) {
                $delete_func .= 'if (isset($cols[$CI->model->key_field()]))
				{
					$url = fuel_url("' . $this->module_uri . '/delete/".$cols[$CI->model->key_field()]);
					$link = "<a href=\\"".$url."\\" class=\\"action_delete\\">".lang("table_action_delete")."</a>";
					$link .= " <input type=\\"checkbox\\" name=\\"delete[".$cols[$CI->model->key_field()]."]\\" value=\\"1\\" id=\\"delete_".$cols[$CI->model->key_field()]."\\" class=\\"multi_delete\\"/>";
				}';
            }
            $delete_func .= 'return $link;';
            $delete_func = create_function('$cols', $delete_func);
            foreach ($this->table_actions as $key => $val) {
                if (!is_int($key)) {
                    $action_type = 'url';
                    $action_val = $this->table_actions[$key];
                    $attrs = array();
                    if (is_array($val)) {
                        if (isset($val['url'])) {
                            $action_type = 'url';
                            $action_val = $val['url'];
                            if (isset($val['attrs'])) {
                                $attrs = $val['attrs'];
                            }
                        } else {
                            $action_type = key($val);
                            $action_val = current($val);
                        }
                        $attrs = isset($val['attrs']) ? $val['attrs'] : array();
                    }
                    $this->data_table->add_action($key, $action_val, $action_type, $attrs);
                } else {
                    if (strtoupper($val) == 'EDIT') {
                        if ($this->fuel->auth->has_permission($this->permission, "edit")) {
                            $action_url = fuel_url($this->module_uri . '/edit/{' . $this->model->key_field() . '}');
                            $this->data_table->add_action(lang('table_action_edit'), $action_url, 'url');
                        }
                    } else {
                        if (strtoupper($val) == 'DELETE') {
                            $this->data_table->add_action($val, $delete_func, 'func');
                        } else {
                            if (strtoupper($val) != 'VIEW' or !empty($this->preview_path) and strtoupper($val) == 'VIEW') {
                                $action_name = lang('table_action_' . strtolower($val));
                                if (empty($action_name)) {
                                    $action_name = $val;
                                }
                                $action_url = fuel_url($this->module_uri . '/' . strtolower($val) . '/{' . $this->model->key_field() . '}');
                                $this->data_table->add_action($action_name, $action_url, 'url');
                            }
                        }
                    }
                }
            }
            if (!$this->rows_selectable) {
                $this->data_table->id = 'data_table_noselect';
                $this->data_table->row_action = FALSE;
            } else {
                $this->data_table->row_action = TRUE;
            }
            $this->data_table->row_alt_class = 'alt';
            if ($this->model->has_auto_increment()) {
                $this->data_table->only_data_fields = array($this->model->key_field());
            }
            // Key and boolean fields are data only
            // $this->data_table->only_data_fields = array_merge(array($this->model->key_field()), $this->model->boolean_fields);
            $this->data_table->auto_sort = TRUE;
            $this->data_table->actions_field = 'last';
            $this->data_table->no_data_str = lang('no_data');
            $this->data_table->lang_prefix = 'form_label_';
            $this->data_table->row_id_key = $this->model->key_field();
            $boolean_fields = $this->model->boolean_fields;
            if (!in_array('published', $boolean_fields)) {
                $boolean_fields[] = 'published';
            }
            if (!in_array('active', $boolean_fields)) {
                $boolean_fields[] = 'active';
            }
            $has_publish_permission = $this->fuel->auth->has_permission($this->permission, 'publish') ? '1' : '0';
            $has_edit_permission = $this->fuel->auth->has_permission($this->permission, 'edit') ? '1' : '0';
            $no = lang("form_enum_option_no");
            $yes = lang("form_enum_option_yes");
            $col_txt = lang('click_to_toggle');
            $key_field = $this->model->key_field();
            $_publish_toggle_callback = '
			$can_publish = (($heading == "published" OR $heading == "active") AND ' . $has_publish_permission . ' OR
				(($heading != "published" AND $heading != "active") AND ' . $has_edit_permission . '));

			$no = "' . $no . '";
			$yes = "' . $yes . '";
			$col_txt = "' . $col_txt . '";

			// boolean fields
			if (is_null($cols[$heading]) OR $cols[$heading] == "")
			{
				return "";
			}
			else if (!is_true_val($cols[$heading]))
			{
				$text_class = ($can_publish) ? "publish_text unpublished toggle_on" : "unpublished";
				$action_class = ($can_publish) ? "publish_action unpublished hidden" : "unpublished hidden";
				return \'<span class="publish_hover"><span class="\'.$text_class.\'" id="row_published_\'.$cols["' . $key_field . '"].\'" data-field="\'.$heading.\'">\'.$no.\'</span><span class="\'.$action_class.\'">\'.$col_txt.\'</span></span>\';
			}
			else
			{
				$text_class = ($can_publish) ? "publish_text published toggle_off" : "published";
				$action_class = ($can_publish) ? "publish_action published hidden" : "published hidden";
				return \'<span class="publish_hover"><span class="\'.$text_class.\'" id="row_published_\'.$cols["' . $key_field . '"].\'" data-field="\'.$heading.\'">\'.$yes.\'</span><span class="\'.$action_class.\'">\'.$col_txt.\'</span></span>\';
				
			}';
            $_publish_toggle_callback = create_function('$cols, $heading', $_publish_toggle_callback);
            foreach ($boolean_fields as $bool) {
                $this->data_table->add_field_formatter($bool, $_publish_toggle_callback);
            }
            $this->data_table->auto_sort = TRUE;
            $heading_sort_func = (isset($this->disable_heading_sort) and $this->disable_heading_sort) ? '' : 'fuel.sortList';
            $this->data_table->sort_js_func = $heading_sort_func;
            $this->data_table->assign_data($items, $this->table_headers);
            $vars['table'] = $this->data_table->render();
            if (!empty($items[0]) and (!empty($this->precedence_col) and isset($items[0][$this->precedence_col]))) {
                $vars['params']['precedence'] = 1;
            }
            $this->load->module_view(FUEL_FOLDER, '_blocks/module_list_table', $vars);
            return;
        } else {
            $this->load->library('form_builder');
            $this->js_controller_params['method'] = 'items';
            $this->js_controller_params['precedence_col'] = $this->precedence_col;
            $vars['table'] = $this->load->module_view(FUEL_FOLDER, '_blocks/module_list_table', $vars, TRUE);
            $vars['pagination'] = $this->pagination->create_links();
            // for extra module 'filters'
            $field_values = array();
            foreach ($this->filters as $key => $val) {
                $field_values[$key] = $params[$key];
            }
            $this->form_builder->question_keys = array();
            //$this->form_builder->hidden = (array) $this->model->key_field();
            $this->form_builder->label_layout = 'left';
            $this->form_builder->load_custom_fields(APPPATH . 'config/custom_fields.php');
            $this->form_builder->set_validator($this->model->get_validation());
            $this->form_builder->submit_value = NULL;
            $this->form_builder->use_form_tag = FALSE;
            $this->form_builder->set_fields($this->filters);
            $this->form_builder->display_errors = FALSE;
            $this->form_builder->css_class = 'more_filters';
            if ($this->config->item('date_format')) {
                $this->form_builder->date_format = $this->config->item('date_format');
            }
            $this->form_builder->set_field_values($field_values);
            if (method_exists($this->model, 'friendly_filter_info')) {
                $friendly_filter_info = $this->model->friendly_filter_info($field_values);
                if (!empty($friendly_filter_info)) {
                    $vars['info'] = $friendly_filter_info;
                }
            }
            // keycheck is already put in place by $this->form->close() in module_list layout
            $this->form_builder->key_check = FALSE;
            $vars['more_filters'] = $this->form_builder->render_divs();
            $vars['actions'] = $this->load->module_view(FUEL_FOLDER, '_blocks/module_list_actions', $vars, TRUE);
            $vars['form_action'] = $this->module_uri . '/items';
            $vars['form_method'] = 'get';
            $vars['query_string'] = $query_str;
            $vars['description'] = $this->description;
            $crumbs = array($this->module_uri => $this->module_name);
            $this->fuel->admin->set_titlebar($crumbs);
            $inline = $this->input->get('inline', TRUE);
            $this->fuel->admin->set_inline($inline);
            if ($inline === TRUE) {
                $this->fuel->admin->set_display_mode(Fuel_admin::DISPLAY_COMPACT_TITLEBAR);
            }
            $this->fuel->admin->render($this->views['list'], $vars, '', FUEL_FOLDER);
        }
    }