public static function data_table_build($params = array()) { $tds = array(); $trs = array(); $ths = array(); $thead = \GCore\Helpers\Html::container('thead', implode("\n", $ths), array()); $tbody = $tbody = \GCore\Helpers\Html::container('tbody', implode("\n", $trs), array()); if (!empty(\GCore\Helpers\DataPresenter::$columns)) { \GCore\Helpers\DataPresenter::set_cells_data(); $trs = self::trs(); $tbody = \GCore\Helpers\Html::container('tbody', implode("\n", $trs), array()); foreach (\GCore\Helpers\DataPresenter::$headers as $k => $header) { $th_tag = \GCore\Helpers\Html::container($header['tag'], $header['text'], $header['atts']); $ths[] = \GCore\Helpers\Html::container('th', $th_tag, array('class' => 'th-' . $k)); } $thead = \GCore\Helpers\Html::container('thead', \GCore\Helpers\Html::container('tr', implode("\n", $ths)), array()); } $table = \GCore\Helpers\Html::container('table', $thead . $tbody, array('class' => !empty($params['class']) ? $params['class'] : 'gcore_table_list', 'id' => !empty($params['id']) ? $params['id'] : 'gcore_table_list__#')); $table = \GCore\Helpers\DataLoader::load($table, \GCore\Helpers\DataPresenter::$data); \GCore\Helpers\DataPresenter::_flush(); return $table; }
public function display($connection, $area = 'front', $rows = array()) { $doc = \GCore\Libs\Document::getInstance(); $tds = array(); $trs = array(); $ths = array(); //display header ob_start(); eval('?>' . $connection['Connection']['extras'][$area]['blocks']['table']['header']); $header = ob_get_clean(); $header = $this->view->Lister->translate($connection, $this->view->Lister->prepare($connection, $header)); echo \GCore\Libs\Str::replacer($header, $rows); $thead = \GCore\Helpers\Html::container('thead', implode("\n", $ths), array()); $tbody = \GCore\Helpers\Html::container('tbody', implode("\n", $trs), array()); if (!empty(\GCore\Helpers\DataPresenter::$columns)) { //\GCore\Helpers\DataPresenter::set_cells_data(); $trs = \GCore\Helpers\DataTable::trs(); $tbody = \GCore\Helpers\Html::container('tbody', implode("\n", $trs), array()); foreach (\GCore\Helpers\DataPresenter::$headers as $k => $header) { $th_tag = \GCore\Helpers\Html::container($header['tag'], $header['text'], $header['atts']); $ths[] = \GCore\Helpers\Html::container('th', $th_tag, array('class' => 'th-' . $k)); } $thead = \GCore\Helpers\Html::container('thead', \GCore\Helpers\Html::container('tr', implode("\n", $ths)), array()); } $table = \GCore\Helpers\Html::container('table', $thead . $tbody, array('class' => 'table table-hover table-censored', 'id' => 'gcore_table_list__#')); $table = \GCore\Helpers\DataLoader::load($table, \GCore\Helpers\DataPresenter::$cells_data); \GCore\Helpers\DataPresenter::_flush(); //show table echo $this->view->Lister->translate($connection, $table); //display footer ob_start(); eval('?>' . $connection['Connection']['extras'][$area]['blocks']['table']['footer']); $footer = ob_get_clean(); $footer = $this->view->Lister->translate($connection, $this->view->Lister->prepare($connection, $footer)); echo \GCore\Libs\Str::replacer($footer, $rows); //echo '</div>'; }
public function setup($connection, $area = 'front', $rows = array()) { $pmodel = '\\GCore\\Models\\' . $connection['Connection']['extras']['models']['name'][1]; $pmodel_inst = $pmodel::getInstance(); //$this->view->Plugin->setup($connection, $pmodel_inst); $columns = array(); $_f = function ($e) { $cs = explode(':', $e, 2); return trim($cs[0]); }; $_t = function ($e) { $cs = explode(':', $e, 2); if (isset($cs[1])) { if (strpos($cs[1], 'array(') !== false and strpos($cs[1], 'array(') == 0) { eval('?>' . '<?php $tmp = ' . $cs[1] . '; ?>'); return $tmp; } return $cs[1]; } else { return $cs[0]; } return isset($cs[1]) ? $cs[1] : $cs[0]; }; $columns_string = trim($connection['Connection']['extras'][$area]['columns']['list']); if (!empty($columns_string)) { ob_start(); eval('?>' . $columns_string); $columns_string = ob_get_clean(); $columns = explode("\n", $columns_string); $fields = array_map($_f, $columns); $titles = array_map($_t, $columns); $headers = array_combine($fields, $titles); $sortables_string = trim($connection['Connection']['extras'][$area]['columns']['sortable']); if (!empty($sortables_string)) { $columns = explode("\n", $sortables_string); $fields = array_map($_f, $columns); $titles = array_map($_t, $columns); foreach ($fields as $k => $field) { if (isset($headers[$field])) { $headers[$field] = $this->view->Sorter->link($headers[$field], trim($titles[$k])); } } } $data_columns = array(); //chek for selectors foreach ($headers as $fld => $ttl) { if ($fld == '_SELECTOR_') { $headers[$fld] = $this->view->Toolbar->selectAll(); $data_columns[$fld]['html'] = $this->view->Toolbar->selector('{' . $pmodel_inst->alias . '.' . $pmodel_inst->pkey . '}'); } $this->view->Plugin->on_list($fld, $ttl, $data_columns); /*if($fld == '_EDIT_'){ //$headers[$fld] = $this->view->Toolbar->selectAll(); $data_columns[$fld]['a'] = r_('index.php?ext=chronoconnectivity&cont=lists&ccname='.$connection['Connection']['title'].'&act=edit'); if($pmodel_inst->pkey){ $data_columns[$fld]['a'] .= '&gcb={'.$pmodel_inst->alias.'.'.$pmodel_inst->pkey.'}'; } $data_columns[$fld]['html'] = '<a href="'.$data_columns[$fld]['a'].'">'.$ttl.'</a>'; } if($fld == '_DELETE_'){ //$headers[$fld] = $this->view->Toolbar->selectAll(); $data_columns[$fld]['a'] = r_('index.php?ext=chronoconnectivity&cont=lists&ccname='.$connection['Connection']['title'].'&act=delete'); if($pmodel_inst->pkey){ $data_columns[$fld]['a'] .= '&gcb={'.$pmodel_inst->alias.'.'.$pmodel_inst->pkey.'}'; } $data_columns[$fld]['html'] = '<a href="'.$data_columns[$fld]['a'].'">'.$ttl.'</a>'; }*/ } $view_linkable_string = isset($connection['Connection']['extras'][$area]['columns']['view_linkable']) ? trim($connection['Connection']['extras'][$area]['columns']['view_linkable']) : ''; if (!empty($view_linkable_string)) { $columns = explode("\n", $view_linkable_string); $fields = array_map($_f, $columns); $linkable = array_map($_t, $columns); foreach ($fields as $k => $field) { $data_columns[$field]['link'] = r_('index.php?ext=chronoconnectivity&cont=lists&ccname=' . $connection['Connection']['title'] . '&act=view'); if ($pmodel_inst->pkey) { $data_columns[$field]['link'] .= '&gcb={' . $pmodel_inst->alias . '.' . $pmodel_inst->pkey . '}'; } } } $edit_linkable_string = trim($connection['Connection']['extras'][$area]['columns']['linkable']); if (!empty($edit_linkable_string)) { $columns = explode("\n", $edit_linkable_string); $fields = array_map($_f, $columns); $linkable = array_map($_t, $columns); foreach ($fields as $k => $field) { $data_columns[$field]['link'] = r_('index.php?ext=chronoconnectivity&cont=lists&ccname=' . $connection['Connection']['title'] . '&act=edit'); if ($pmodel_inst->pkey) { $data_columns[$field]['link'] .= '&gcb={' . $pmodel_inst->alias . '.' . $pmodel_inst->pkey . '}'; } } } $binary_string = trim($connection['Connection']['extras'][$area]['columns']['binary']); if (!empty($binary_string)) { $columns = explode("\n", $binary_string); $fields = array_map($_f, $columns); $binary = array_map($_t, $columns); foreach ($fields as $k => $field) { $model = $pmodel_inst->alias; $fld = $field; if (strpos($field, '.') !== false) { $pcs = explode('.', $field); $model = $pcs[0]; $fld = $pcs[1]; } $data_columns[$field]['link'] = array(r_('index.php?ext=chronoconnectivity&cont=lists&act=toggle&ccname=' . $connection['Connection']['title'] . '&gcb={' . $pmodel_inst->alias . '.' . $pmodel_inst->pkey . '}&val=1&fld=' . $fld . '&model=' . $model), r_('index.php?ext=chronoconnectivity&cont=lists&act=toggle&ccname=' . $connection['Connection']['title'] . '&gcb={' . $pmodel_inst->alias . '.' . $pmodel_inst->pkey . '}&val=0&fld=' . $fld . '&model=' . $model)); $data_columns[$field]['image'] = array($this->view->Assets->image('disabled.png'), $this->view->Assets->image('enabled.png')); } } $links_string = trim($connection['Connection']['extras'][$area]['columns']['links']); if (!empty($links_string)) { $columns = explode("\n", $links_string); $fields = array_map($_f, $columns); $links = array_map($_t, $columns); foreach ($fields as $k => $field) { $data_columns[$field]['link'] = $links[$k]; } } $htmls_string = trim($connection['Connection']['extras'][$area]['columns']['htmls']); if (!empty($htmls_string)) { $columns = explode("\n", $htmls_string); $fields = array_map($_f, $columns); $htmls = array_map($_t, $columns); foreach ($fields as $k => $field) { $data_columns[$field]['html'] = $htmls[$k]; } } $styles_string = trim($connection['Connection']['extras'][$area]['columns']['styles']); if (!empty($styles_string)) { $columns = explode("\n", $styles_string); $fields = array_map($_f, $columns); $styles = array_map($_t, $columns); foreach ($fields as $k => $field) { $data_columns[$field]['style'] = $styles[$k]; } } $images_string = trim($connection['Connection']['extras'][$area]['columns']['images']); if (!empty($images_string)) { $columns = explode("\n", $images_string); $fields = array_map($_f, $columns); $images = array_map($_t, $columns); foreach ($fields as $k => $field) { $data_columns[$field]['image'] = $images[$k]; } } $functions_string = trim($connection['Connection']['extras'][$area]['columns']['functions']); if (!empty($functions_string)) { $columns = explode("\n", $functions_string); $fields = array_map($_f, $columns); $functions = array_map($_t, $columns); foreach ($fields as $k => $field) { $data_columns[$field]['function'] = create_function('$cell, $row', $functions[$k]); } } $fields_string = trim($connection['Connection']['extras'][$area]['columns']['fields']); if (!empty($fields_string)) { $columns = explode("\n", $fields_string); $fields = array_map($_f, $columns); $fields_info = array_map($_t, $columns); foreach ($fields as $k => $field) { $data_columns[$field]['field'] = $fields_info[$k]; } } \GCore\Helpers\DataPresenter::create(); \GCore\Helpers\DataPresenter::header($headers); \GCore\Helpers\DataPresenter::cells($rows, $data_columns); \GCore\Helpers\DataPresenter::set_cells_data(); } }