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; }
public function modify($sys_object_id, $row_id = '', $subform_relation_id = null, $subform_relation_value = null) { $sys_object = new Crud_Models_Object(); $sys_object->load(intval($sys_object_id)); $sys_object->loadFieldsForObject(); if ($sys_object->is_system == 1 && $this->user->role->safe_title != 'administrator') { echo '<script>window.location="' . SITE_ROOT_URI . '/admin/error/' . '"</script>'; //header('location: ' . SITE_ROOT_URI . '/admin/error/'); exit; } if (!$this->user->role->canExecuteAction('can_view_' . $sys_object->table_name)) { echo '<script>window.location="' . SITE_ROOT_URI . '/admin/error/' . '"</script>'; //header('location: ' . SITE_ROOT_URI . '/admin/error/'); exit; } if ($sys_object->custom_crud_class != '' && new $sys_object->custom_crud_class() instanceof Crud_Interfaces_Crud) { echo call_user_func(array(new $sys_object->custom_crud_class(), 'modify'), $sys_object_id, $row_id); } else { $object_data = new Libraries_Db_Mysql_Model($sys_object->table_name); $subforms = array(); if ($row_id != '') { $object_data->load(intval($row_id)); $where = array(); $where[] = array('AND', 'id_sys_object_parent', '=', $sys_object->id); $subform = new Crud_Models_Subform(); $subforms = $subform->search($where); } if (isset($_GET['clone']) && $_GET['clone'] == 1) { $object_data->id = null; } $subform_relation = null; $subform_relation_field = null; if ($subform_relation_id) { $subform_relation = new Crud_Models_Subform(); $subform_relation->load($subform_relation_id); $subform_relation_field = new Crud_Models_Field(); $subform_relation_field->load($subform_relation->id_sys_field); } Libraries_Event::trigger('beforeFormOpen', $sys_object, $object_data); $user = Admin_Libraries_Admin::getLogedUser()->loadRole(); Libraries_View::getInstance()->sys_object = $sys_object; Libraries_View::getInstance()->object_data = $object_data; Libraries_View::getInstance()->subforms = $subforms; Libraries_View::getInstance()->subform_relation = $subform_relation; Libraries_View::getInstance()->subform_relation_field = $subform_relation_field; Libraries_View::getInstance()->subform_relation_value = $subform_relation_value; Libraries_View::getInstance()->user = $user; $content = Libraries_View::getInstance()->setModule('crud')->load('row'); echo $content; } }