/**
  * @desc Delete a extended field for id
  * @param integer $id the id of the extended field
  */
 public static function delete_by_id($id)
 {
     if (!empty($id)) {
         $extended_field = new ExtendedField();
         $extended_field->set_id($id);
         if (ExtendedFieldsDatabaseService::check_field_exist_by_id($extended_field)) {
             $data = self::data_field($extended_field, self::SORT_BY_ID);
             $class = $data->get_instance();
             if (!$class->get_field_used_phpboost_configuration() || !$data->get_is_freeze()) {
                 ExtendedFieldsDatabaseService::delete_extended_field($data);
                 ExtendedFieldsCache::invalidate();
             }
         }
     }
 }
 public function execute(HTTPRequestCustom $request)
 {
     $id = $request->get_int('id', null);
     $code = -1;
     if ($id !== null) {
         $extended_field = new ExtendedField();
         $extended_field->set_id($id);
         $exist_field = ExtendedFieldsDatabaseService::check_field_exist_by_id($extended_field);
         if ($exist_field) {
             ExtendedFieldsService::delete_by_id($id);
             $code = $id;
         }
     }
     return new JSONResponse(array('code' => $code));
 }
 private function save($id)
 {
     $extended_field = new ExtendedField();
     $extended_field->set_id($id);
     $extended_field = ExtendedFieldsService::data_field($extended_field);
     $freeze = $extended_field->get_is_freeze();
     if (!$freeze) {
         $extended_field->set_field_name(ExtendedField::rewrite_field_name($this->form->get_value('name', $extended_field->get_field_name())));
         $extended_field->set_field_type($this->form->get_value('field_type', $extended_field->get_field_type())->get_raw_value());
     } else {
         $extended_field->set_field_name(TextHelper::htmlspecialchars($extended_field->get_field_name()));
         $extended_field->set_field_type($extended_field->get_field_type());
     }
     $extended_field->set_name(TextHelper::htmlspecialchars($this->form->get_value('name')));
     $extended_field->set_position(PersistenceContext::get_querier()->get_column_value(DB_TABLE_MEMBER_EXTENDED_FIELDS_LIST, 'MAX(position) + 1', ''));
     $extended_field->set_description(TextHelper::htmlspecialchars($this->form->get_value('description', $extended_field->get_description())));
     if (!$this->form->field_is_disabled('possible_values')) {
         $extended_field->set_possible_values($this->form->get_value('possible_values'));
     }
     if (!$this->form->field_is_disabled('default_value')) {
         $extended_field->set_default_value($this->form->get_value('default_value'));
     }
     $extended_field->set_is_required((bool) $this->form->get_value('field_required'));
     $extended_field->set_display((bool) $this->form->get_value('display'));
     $regex = 0;
     if (!$this->form->field_is_disabled('regex_type')) {
         $regex = is_numeric($this->form->get_value('regex_type', '')->get_raw_value()) ? $this->form->get_value('regex_type', '')->get_raw_value() : $this->form->get_value('regex', '');
     }
     $extended_field->set_regex($regex);
     $extended_field->set_authorization($this->form->get_value('authorizations', $extended_field->get_authorization())->build_auth_array());
     ExtendedFieldsService::update($extended_field);
     return $extended_field;
 }