Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
 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>';
 }
Ejemplo n.º 3
0
 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();
     }
 }