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; }