public function modify($sys_object_id) { $sys_object = new Crud_Models_Object(); $sys_object->load(intval($sys_object_id)); $sys_object->loadFieldsForObject(); if (isset($_POST) && !empty($_POST)) { $field_list = array(); $sys_object->table_title = $_POST['table_title']; $sys_object->group_name = $_POST['group_name']; $sys_object->custom_crud_class = $_POST['custom_crud_class']; $sys_object->is_system = isset($_POST['is_system']) && $_POST['is_system'] == 1 ? 1 : 0; $sys_object->save(); foreach ($_POST['field_title'] as $field_id => $field_title) { $properties = array(); foreach ($_POST as $key => $value) { if (preg_match('/^control-properties-/', $key) && isset($value[$field_id])) { $property_key = str_replace('control-properties-', '', $key); $properties[$property_key] = $value[$field_id]; } } $field = new Crud_Models_Field(); $field->load($field_id); if ($field->isEmpty()) { $field->id_sys_object = $sys_object->id; } $field->id_sys_control = isset($_POST['id_sys_control'][$field_id]) ? intval($_POST['id_sys_control'][$field_id]) : 0; $field->ids_sys_validator = isset($_POST['ids_sys_validator'][$field_id]) ? implode(',', $_POST['ids_sys_validator'][$field_id]) : ''; $field->field_title = $field_title; $field->field_description = $_POST['field_description'][$field_id]; $field->order_index = $_POST['order_index'][$field_id]; $field->is_hidden = isset($_POST['is_hidden'][$field_id]) ? intval($_POST['is_hidden'][$field_id]) : 0; $field->is_identification = isset($_POST['is_identification'][$field_id]) ? intval($_POST['is_identification'][$field_id]) : 0; $field->sys_control_properties = !empty($properties) ? json_encode($properties) : ''; $field->save(); } foreach ($_POST['id_sys_object_child'] as $relation_id => $id_sys_object_child) { $subform = new Crud_Models_Subform(); $subform->load($relation_id); if (!$subform->isEmpty()) { if ($subform->id_sys_object_parent != $sys_object->id) { $subform = new Crud_Models_Subform(); } } if (isset($_POST['delete']) && isset($_POST['delete'][$relation_id]) && $_POST['delete'][$relation_id] == 1) { $subform->delete(); } else { $where = array(); $where[] = array('AND', 'id_sys_object', '=', $id_sys_object_child); $where[] = array('AND', 'field_name', '=', $_POST['sys_field_title'][$relation_id]); $field = new Crud_Models_Field(); $fields = $field->search($where); if (empty($fields)) { continue; } $field = $fields[0]; $subform->id_sys_object_parent = $sys_object->id; $subform->id_sys_object_child = $id_sys_object_child; $subform->id_sys_field = $field->id; $subform->title = $_POST['title'][$relation_id]; $subform->save(); } } } header('location: ' . SITE_ROOT_URI . '/crud/objects/maplist/'); exit; }