Beispiel #1
0
 public function makeList()
 {
     $html = '';
     $CONTROLLER_NAME = $this->class_definition['controller_name'];
     $OPERATION = 'edit';
     $CLASS_NAME = $this->class_definition['class_name'];
     $PRIMARY = $this->class_definition['primary'];
     $TITLE = '';
     $TITLE .= $this->class_definition['title'];
     $PARENT_VARS = $this->parent_vars;
     /*     
          if($PARENT_VARS['parent_class'])
              $TITLE = $PARENT_VARS['parent_class']::$un_definition['title'].' <i class="icon-double-angle-right"></i> '.$TITLE;
     */
     $html .= '<div class="list title h3">Класс "' . $TITLE . '"</div>';
     $html .= '<a class="wrap_block wrap" targ="div#list_table_' . $CLASS_NAME . '" id="wrap_edit_form" href=""><i class="icon-eye-open"></i></a>';
     // ADD BUTTON
     $t_link_obj = new UN_Link('button add', array('controller' => $CONTROLLER_NAME, 'operation' => 'add'), '<i class="icon-plus-sign"></i>', 'добавить "' . $TITLE . '"');
     $t_link_obj->addVars($PARENT_VARS);
     $html .= $t_link_obj->getLink();
     $html .= '<div class="table-responsive clearfix" id="list_table_' . $CLASS_NAME . '">';
     $html .= '<table class="table ' . $CONTROLLER_NAME . '">';
     // HEAD
     $html .= '<thead>';
     // title box
     $html .= '<tr class="nodrag nodrop">';
     $html .= '<th class="text-center operate" width="30"></th>';
     foreach ($this->class_definition['fields'] as $field => $t_data) {
         if ($t_data['list_data']['show_in_list']) {
             $width = $t_data['list_data']['width'] ? ' width="' . $t_data['list_data']['width'] . '"' : '';
             $html .= '<th class="text-center"' . $width . '>';
             $html .= '<span class="title_box" title="' . $t_data['list_data']['hint'] . '">';
             if ($t_data['field_type'] == 'link') {
                 $html .= $t_data['class_name']::$un_definition['title'];
             } else {
                 $html .= $t_data['list_data']['title'];
             }
             if ($t_data['list_data']['sort']) {
                 $html .= '<span class="sort-arrows">';
                 // OBJECT SORT LINKS
                 $t_link_obj = new UN_Link('', array('controller' => $CONTROLLER_NAME, 'orderBy' => $field, 'orderWay' => 'desc'), '<i class="icon-caret-down"></i>', 'по убыванию');
                 //$t_link_obj->addVars($PARENT_VARS);
                 $html .= $t_link_obj->getLink();
                 $t_link_obj = new UN_Link('', array('controller' => $CONTROLLER_NAME, 'orderBy' => $field, 'orderWay' => 'asc'), '<i class="icon-caret-up"></i>', 'по возрастанию');
                 //$t_link_obj->addVars($PARENT_VARS);
                 $html .= $t_link_obj->getLink();
                 $html .= '</span>';
             }
             $html .= '</span>';
             $html .= '</th>';
         }
     }
     $html .= '<th class="space"></th></tr>';
     // filter box
     $html .= '<tr class="nodrag nodrop filter row_hover">';
     $html .= '<th class="text-center operate"></th>';
     foreach ($this->class_definition['fields'] as $field => $t_data) {
         if ($t_data['list_data']['show_in_list']) {
             $width = $t_data['list_data']['width'] ? ' style="max-width:' . $t_data['list_data']['width'] . 'px"' : '';
             $html .= '<th class="text-center">';
             if ($t_data['list_data']['filter']) {
                 if ($t_data['list_data']['type'] == 'text') {
                     $html .= '<input type="text" name="' . $CONTROLLER_NAME . 'Filter_' . $field . '"' . $width . '>';
                     $html .= '</input>';
                 }
             }
             $html .= '</th>';
         }
     }
     $html .= '<th class="space"></th></tr>';
     $html .= '</thead>';
     // BODY
     $html .= '<tbody>';
     $odd = true;
     if (empty($this->list_data)) {
         $html .= '<tr><td colspan="' . count($this->class_definition['fields']) . '" class="text-center h2">NO ITEMS</td></tr>';
     } else {
         foreach ($this->list_data as $key => $t_row) {
             // prepair to transfer fields for child classes
             $LINKED_FIELDS = array();
             $LINKED_FIELDS[$PRIMARY] = $t_row[$PRIMARY];
             $t_obj = new $CLASS_NAME();
             //file_put_contents($key.'-row-before.txt', print_r($t_row, true));
             $row = $t_obj::getRowValues($t_row);
             //file_put_contents($key.'-row-after.txt', print_r($row, true));
             $html .= '<tr class="pointer' . ($odd ? " odd" : "") . '">';
             $html .= '<td class="text-center operation-delete" title="DELETE">';
             // DELETE ROW ICON LINK
             $LINKED_FIELDS['controller'] = $CONTROLLER_NAME;
             $LINKED_FIELDS['operation'] = 'delete';
             $t_link_obj = new UN_Link('', $LINKED_FIELDS, '<i class="icon-remove-sign"></i>');
             $t_link_obj->addVars($PARENT_VARS);
             $html .= $t_link_obj->getLink();
             $html .= '</td>';
             foreach ($this->class_definition['fields'] as $field => $t_data) {
                 if ($t_data['list_data']['show_in_list']) {
                     switch ($t_data['field_type']) {
                         case 'composit_name':
                             $t_value = '';
                             //$t_value = UN_ObjectModel::getCompositName($this->class_definition, $row, $field);
                             //$t_value = UN_ObjectModel::getCompositNameValue( $row, $field, $this->class_definition['fields'][$field] );
                             $t_value = UN_ObjectModel::getCompositName($this->class_definition, $row, $field);
                             $row[$field] = $t_value;
                             //$t_value = UN_ObjectModel::getFieldValue($row, $field, $CLASS_NAME );
                             $html .= '<td class="pointer text-center field_' . $field . ($t_data['list_data']['editable'] ? " edit" : "") . '">';
                             // OBJECT ROW LINK
                             $LINKED_FIELDS['controller'] = $CONTROLLER_NAME;
                             $LINKED_FIELDS['operation'] = $OPERATION;
                             $t_link_obj = new UN_Link('', $LINKED_FIELDS, $t_value);
                             $t_link_obj->addVars($PARENT_VARS);
                             $html .= $t_link_obj->getLink();
                             $html .= '</td>';
                             break;
                         case 'association':
                             break;
                         default:
                             if (array_key_exists('data_type', $t_data) && $t_data['data_type'] == 'boolean') {
                                 $html .= '<td class="pointer text-center field_' . $field . ($t_data['list_data']['editable'] ? " edit" : "") . '">';
                                 if (array_key_exists('show_values', $t_data['list_data']) && !empty($t_data['list_data']['show_values'])) {
                                     $t_anchor = $row[$field];
                                 } else {
                                     $t_anchor = '<input class="list_data_field" type="checkbox" align="LEFT" disabled="disabled" 
                                                     ' . ((bool) $row[$field] ? ' checked="checked"' : '') . ' 
                                                     name="id_' . $row[$PRIMARY] . '_' . $field . '" id="id_' . $row[$PRIMARY] . '_' . $field . '" />';
                                 }
                                 // OBJECT ROW LINK
                                 $LINKED_FIELDS['controller'] = $CONTROLLER_NAME;
                                 $LINKED_FIELDS['operation'] = $OPERATION;
                                 $t_link_obj = new UN_Link('', $LINKED_FIELDS, $t_anchor);
                                 $t_link_obj->addVars($PARENT_VARS);
                                 $html .= $t_link_obj->getLink();
                                 $html .= '</td>';
                             } else {
                                 $html .= '<td class="pointer text-center field_' . $field . ($t_data['list_data']['editable'] ? " edit" : "") . '">';
                                 $t_anchor = $row[$field];
                                 //$t_anchor = $t_obj::getFieldValue($row, $field, $CLASS_NAME );
                                 // OBJECT ROW LINK
                                 $LINKED_FIELDS['controller'] = $CONTROLLER_NAME;
                                 $LINKED_FIELDS['operation'] = $OPERATION;
                                 $t_link_obj = new UN_Link('', $LINKED_FIELDS, $t_anchor);
                                 $t_link_obj->addVars($PARENT_VARS);
                                 $html .= $t_link_obj->getLink();
                                 $html .= '</td>';
                             }
                             break;
                     }
                 }
             }
             $html .= '<td class="space"></td></tr>';
             $odd = !$odd;
         }
     }
     $html .= '</tbody>';
     $html .= '</table>';
     $html .= '</div>';
     $this->result = $html;
     return $html;
 }