Can Someone here correct me what's wrong with my code ? I am actually trying to create model instead of adding function in Grocery crud library, Please someone help me, I really don't know how to extend library functions using models.
My model custom_export_model.php
[peter@localhost models]$ pwd /var/www/html/virtual/Development/DB/application/models [peter@localhost models]$ cat custom_export_model.php <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Custom_export_model extends grocery_CRUD_model { function __construct() { parent::__construct(); } public function exportToCSV($state_info = null) { $data = $this->get_common_data(); $data->order_by = $this->order_by; $data->types = $this->get_field_types(); $data->list = $this->get_list(); $data->list = $this->change_list($data->list , $data->types); $data->list = $this->change_list_add_actions($data->list); $data->total_results = $this->get_total_results(); $data->columns = $this->get_columns(); $data->primary_key = $this->get_primary_key(); @ob_end_clean(); $this->_export_to_csv($data); } function _export_to_csv($data) { $string_to_export = ""; foreach($data->columns as $column){ $string_to_export .= '"'.$column->display_as.'"'.","; } $string_to_export .= "\n"; foreach($data->list as $num_row => $row){ foreach($data->columns as $column){ $string_to_export .= '"'.$this->_trim_export_string($row->{$column->field_name}).'"'.","; } $string_to_export .= "\n"; } // Convert to UTF-16LE and Prepend BOM $string_to_export = "\xFF\xFE" .mb_convert_encoding($string_to_export, 'UTF-16LE', 'UTF-8'); $filename = "export-".date("Y-m-d_H:i:s").".csv"; header('Content-type: application/vnd.ms-excel;charset=UTF-16LE'); header('Content-Disposition: attachment; filename='.$filename); header("Cache-Control: no-cache"); echo $string_to_export; die(); } }
My controller
Before calling load view and render function, I am doing this
$crud->set_subject('testdata'); $state = $crud->getState(); $state_info = $crud->getStateInfo(); if($state == 'export') { $crud->set_model('custom_export_model'); $crud->basic_model->exportToCSV($state_info); } $output = $crud->render(); $this->_example_output($output);
Thank you all