public function listAction() { $config = new Zend_Config_Ini(BASE_PATH . DIRECTORY_SEPARATOR . "configs" . DIRECTORY_SEPARATOR . "grid.ini", 'production'); $grid = Bvb_Grid::factory('Table', $config); $data = $this->_listdata(); // echo "<pre>"; //print_r($data);exit; $source = new Bvb_Grid_Source_Array($data); $grid->setSource($source); $grid->setImagesUrl('/grid/'); $editColumn = new Bvb_Grid_Extra_Column(); $baseUrl = Zend_Controller_Front::getInstance()->getBaseUrl(); $editColumn->setPosition('right')->setName('Edit')->setDecorator("<a href=\"{$baseUrl}/admin/menu/edit/id/{{front_menu_id}}\">Edit</a><input class=\"address-id\" name=\"address_id[]\" type=\"hidden\" value=\"{{front_menu_id}}\"/>"); $deleteColumn = new Bvb_Grid_Extra_Column(); $deleteColumn->setPosition('right')->setName('Delete')->setDecorator("<a class=\"delete-data\" href=\"{$baseUrl}/menu/delete/id/{{front_menu_id}}\">Delete</a>"); $grid->addExtraColumns($editColumn, $deleteColumn); $grid->updateColumn('front_menu_id', array('hidden' => true)); $grid->updateColumn('del', array('hidden' => true)); $grid->setRecordsPerPage(20); $grid->setPaginationInterval(array(5 => 5, 10 => 10, 20 => 20, 30 => 30, 40 => 40, 50 => 50, 100 => 100)); $grid->setExport(array('print', 'word', 'csv', 'excel', 'pdf')); $this->view->grid = $grid->deploy(); }
/** * Adding extra columns to a datagrid. They can be at left or right. * Also notice that you can use fields values to populate the fields by surrounding the field name with {{}} * */ public function extraAction() { $grid = $this->grid(); $select = $this->_db->select()->from(array('c' => 'Country'), array('country' => 'Name', 'Continent', 'Population', 'GovernmentForm', 'HeadOfState'))->join(array('ct' => 'City'), 'c.Capital = ct.ID', array('city' => 'Name')); $grid->setSource(new Bvb_Grid_Source_Zend_Select($select)); $grid->updateColumn('country', array('title' => 'Country (Capital)', 'class' => 'hideInput', 'decorator' => '{{country}} <em>({{city}})</em>')); $grid->updateColumn('city', array('title' => 'Capital', 'hidden' => 1)); $grid->updateColumn('Continent', array('title' => 'Continent')); $grid->updateColumn('Population', array('title' => 'Population', 'class' => 'width_80')); $grid->updateColumn('LifeExpectancy', array('title' => 'Life E.', 'class' => 'width_50')); $grid->updateColumn('GovernmentForm', array('title' => 'Government Form')); $grid->updateColumn('HeadOfState', array('title' => 'Head Of State', 'hidden' => 1)); $grid->setPdfGridColumns(array('Continent', 'Population')); $right = new Bvb_Grid_Extra_Column(); $right->setPosition('right')->setName('Right')->setDecorator("<input class='input_p'type='text' value=\"{{Population}}\" size=\"3\" name='number[]'>"); $left = new Bvb_Grid_Extra_Column(); $left->setPosition('left')->setName('Left')->setDecorator("<input type='checkbox' name='number[]'>"); $grid->addExtraColumns($right, $left); $row = new Bvb_Grid_Extra_Rows(); $row->addRow('beforePagination', array(array('content' => '<button class="addRecord" type="button" onClick="if(confirm(\'Please confirm you wish to approve all.\')){window.location=\'/admin/campaigns/approveall\'};return false;">Approve All</button>', 'colspan' => 6, 'class' => 'r'))); $grid->addExtraRows($row); #$grid->addExtraColumn($grid->getExtraColumn('Left')); $this->view->pages = $grid->deploy(); $this->render('index'); }