public function execute(HTTPRequestCustom $request)
    {
        $id = $request->get_getint('id');
        $this->init();
        $extended_field = new ExtendedField();
        $extended_field->set_id($id);
        $exist_field = ExtendedFieldsDatabaseService::check_field_exist_by_id($extended_field);
        if ($exist_field) {
            $this->extended_field = ExtendedFieldsCache::load()->get_extended_field($id);
            $this->build_form($request);
        } else {
            $error_controller = PHPBoostErrors::unexisting_page();
            DispatchManager::redirect($error_controller);
        }
        $this->tpl = new StringTemplate('# INCLUDE MSG #
				# INCLUDE FORM #
				<script>
				jQuery(document).ready(function() {
				' . $this->get_events_select_type() . '});
				</script>');
        $this->tpl->add_lang($this->lang);
        $this->tpl->put_all(array('FIELD_TYPE' => $this->extended_field['field_type']));
        if ($this->submit_button->has_been_submited() && $this->form->validate()) {
            $extended_field = $this->save($id);
            $error = ExtendedFieldsService::get_error();
            if (!empty($error)) {
                $this->tpl->put('MSG', MessageHelper::display($error, MessageHelper::ERROR, 5));
            } else {
                AppContext::get_response()->redirect($this->form->get_value('referrer') ? $this->form->get_value('referrer') : AdminExtendedFieldsUrlBuilder::fields_list(), StringVars::replace_vars($this->lang['message.success.edit'], array('name' => $extended_field->get_name())));
            }
        }
        $this->tpl->put('FORM', $this->form->display());
        return new AdminExtendedFieldsDisplayResponse($this->tpl, $this->lang['extended-field-edit']);
    }
 /**
  * @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));
 }