{ $this->_field = $field; $this->_client_id = $client_id; } public function format($data, $type, $number = 0, $columns = null) { switch ($this->_field) { case 'actions': return '<a href="javascript:' . $this->_client_id . '.deleteItem(' . $data[0] . ');">Удалить</a>'; default: return parent::format($data, $type); } } } // Создаём DataSource $datasource = new grid_data_source(new grid_header_item_array(new grid_header_item('id', 'Id', type::STRING, true), new grid_header_item('title', 'Заголовок', type::STRING, true), new grid_header_item('actions', 'Действия', null, false, new my_grid_formatter('actions', $emanager->client_id())))); // Создаём новый грид и пейджер к нему $grid_pager = new ajax_grid_pager('my_grid_pager', mydata::get_total(), 5); $grid = new ajax_grid('my_grid', $datasource, $ajaxbuffer, $grid_pager); // выбираем текущую страницу отсортированных данных $mydata = mydata::get_page($grid_pager->get_pagesize(), $grid_pager->get_curpage(), $grid->get_sort_direction() != sorting::SORT_DIR_DESC); // добавляем данные в DataSource foreach ($mydata as $data) { $datasource->add_row(array($data[0], $data[1], $data)); } // чтобы было видно прогресс задержим рендеринг постбэка на секунду if ($ajaxbuffer->is_post_back()) { sleep(1); } // Выводим результат $templater = new templater(dirname(__FILE__) . '/templates/main.tpl.php');
return !empty($this->_cats_cid[$data]['title_ru']) ? $this->_cats_cid[$data]['title_ru'] : $this->_cats_cid[$data]['title']; default: return parent::format($data, $type); } } } /** * * @return grid_data_source */ function create_ds_header($manager) { global $cats_cid; return new grid_data_source(new grid_header_item_array(new grid_header_item('u2cid', 'Id', type::STRING, true), new grid_header_item('url', 'URL', type::LINK_NEWWIN, true, null, true, true), new grid_header_item('cid', 'Категория', type::STRING, true, new cat_urls_formatter('category', $cats_cid, $manager)), new grid_header_item('actions', 'Действия', null, false, new cat_urls_formatter('actions', $cats_cid, $manager)))); } $url_cats_unmatched_ds = create_ds_header($emanager->client_id()); $url_cats_unmatched_grid = new ajax_grid('url_cats_grid_unmatched', $url_cats_unmatched_ds, $ajaxbuf_url_cats); $url_cats_unmatched_grid_pager = new ajax_grid_pager('url_cats_grid_pager_unmatched', $BILL->GetCategoriesUrlUnMatchedCount($url_cats_unmatched_grid->get_filterfield(), $url_cats_unmatched_grid->get_filtering()), 10); $url_cats_unmatched_grid->attach_pager($url_cats_unmatched_grid_pager); $url_cats_matched_ds = create_ds_header($emanager->client_id()); $url_cats_matched_grid = new ajax_grid('url_cats_grid_matched', $url_cats_matched_ds, $ajaxbuf_url_matched_cats); $url_cats_matched_grid_pager = new ajax_grid_pager('url_cats_grid_pager_matched', $BILL->GetCategoriesUrlMatchedCount($url_cats_matched_grid->get_filterfield(), $url_cats_matched_grid->get_filtering()), 10); $url_cats_matched_grid->attach_pager($url_cats_matched_grid_pager); /** * Check if we need to make some actions */ if ($emanager->isAnyAction()) { //special actions if ($emanager->getAction() == 'changeCatByName') { $item = json_decode($emanager->getItem()); $BILL->UpdateUrlCategoryMatchByName($item->url, $item->name);