public function execute(HTTPRequestCustom $request) { $id = $request->get_int('id', 0); $page = $request->get_value('page', ''); $filter = $request->get_value('filter', ''); $filter_id = $request->get_value('filter_id', ''); //Add filter BugtrackerService::add_filter(array('user_id' => AppContext::get_current_user()->get_id(), 'page' => $page, 'filters' => $filter, 'filters_ids' => $filter_id)); AppContext::get_response()->redirect($request->get_url_referrer() ? $request->get_url_referrer() : BugtrackerUrlBuilder::unsolved(), LangLoader::get_message('success.add.filter', 'common', 'bugtracker')); }
public function execute(HTTPRequestCustom $request) { $id = $request->get_int('id', 0); $id_stream = $request->get_int('id_stream', 0); if ($this->archive_exist($id) || $id_stream !== 0 && $id !== 0) { if (!NewsletterAuthorizationsService::id_stream($id_stream)->moderation_subscribers()) { NewsletterAuthorizationsService::get_errors()->moderation_archives(); } NewsletterService::delete_archive($id); AppContext::get_response()->redirect($request->get_url_referrer() ? $request->get_url_referrer() : NewsletterUrlBuilder::archives($id_stream), LangLoader::get_message('newsletter.message.success.delete', 'common', 'newsletter')); } else { $controller = new UserErrorController(LangLoader::get_message('error', 'status-messages-common'), $this->lang['error-archive-not-existed']); DispatchManager::redirect($controller); } }
private function build_form(HTTPRequestCustom $request) { $security_config = SecurityConfig::load(); $form = new HTMLForm(__CLASS__); $fieldset = new FormFieldsetHTML('add_member', LangLoader::get_message('members.add-member', 'admin-user-common')); $form->add_fieldset($fieldset); $fieldset->add_field(new FormFieldTextEditor('display_name', $this->lang['display_name'], '', array('maxlength' => 100, 'required' => true, 'events' => array('blur' => ' if (!HTMLForms.getField("login").getValue() && HTMLForms.getField("display_name").validate() == "") { HTMLForms.getField("login").setValue(HTMLForms.getField("display_name").getValue().replace(/\\s/g, \'\')); HTMLForms.getField("login").enableValidationMessage(); HTMLForms.getField("login").liveValidate(); }')), array(new FormFieldConstraintLengthRange(3, 100), new FormFieldConstraintDisplayNameExists()))); $fieldset->add_field($email = new FormFieldMailEditor('email', $this->lang['email'], '', array('required' => true), array(new FormFieldConstraintMailExist()))); $fieldset->add_field(new FormFieldCheckbox('custom_login', $this->lang['login.custom'], false, array('events' => array('click' => ' if (HTMLForms.getField("custom_login").getValue()) { HTMLForms.getField("login").enable(); } else { HTMLForms.getField("login").disable(); }')))); $fieldset->add_field($login = new FormFieldTextEditor('login', $this->lang['login'], '', array('required' => true, 'hidden' => true, 'maxlength' => 25), array(new FormFieldConstraintLengthRange(3, 25), new FormFieldConstraintPHPBoostAuthLoginExists()))); $fieldset->add_field($password = new FormFieldPasswordEditor('password', $this->lang['password'], '', array('required' => true), array(new FormFieldConstraintLengthMin($security_config->get_internal_password_min_length()), new FormFieldConstraintPasswordStrength()))); $fieldset->add_field($password_bis = new FormFieldPasswordEditor('password_bis', $this->lang['password.confirm'], '', array('required' => true), array(new FormFieldConstraintLengthMin($security_config->get_internal_password_min_length()), new FormFieldConstraintPasswordStrength()))); $form->add_constraint(new FormConstraintFieldsEquality($password, $password_bis)); if ($security_config->are_login_and_email_forbidden_in_password()) { $form->add_constraint(new FormConstraintFieldsInequality($email, $password)); $form->add_constraint(new FormConstraintFieldsInequality($login, $password)); } $fieldset->add_field(new FormFieldRanksSelect('rank', $this->lang['rank'], FormFieldRanksSelect::MEMBER)); $fieldset->add_field(new FormFieldHidden('referrer', $request->get_url_referrer())); $this->submit_button = new FormButtonDefaultSubmit(); $form->add_constraint(new FormConstraintFieldsEquality($password, $password_bis)); $form->add_button($this->submit_button); $form->add_button(new FormButtonReset()); $this->form = $form; }
public function execute(HTTPRequestCustom $request) { $user_id = $request->get_int('id', null); $user = UserService::get_user($user_id); if (!$user->is_admin() || $user->is_admin() && UserService::count_admin_members() > 1) { try { UserService::delete_by_id($user_id); } catch (RowNotFoundException $ex) { $error_controller = PHPBoostErrors::unexisting_element(); DispatchManager::redirect($error_controller); } AppContext::get_response()->redirect($request->get_url_referrer() ? $request->get_url_referrer() : AdminMembersUrlBuilder::management(), StringVars::replace_vars(LangLoader::get_message('user.message.success.delete', 'user-common'), array('name' => $user->get_display_name()))); } else { $error_controller = PHPBoostErrors::unauthorized_action(); DispatchManager::redirect($error_controller); } }
public function execute(HTTPRequestCustom $request) { $event_id = $request->get_getint('event_id', 0); $current_user_id = AppContext::get_current_user()->get_id(); if (!empty($event_id)) { $this->get_event($event_id); $this->check_authorizations(); if (in_array($current_user_id, array_keys($this->event->get_participants()))) { CalendarService::delete_participant($event_id, $current_user_id); CalendarCurrentMonthEventsCache::invalidate(); } $category = $this->event->get_content()->get_category(); AppContext::get_response()->redirect($request->get_url_referrer() ? $request->get_url_referrer() : CalendarUrlBuilder::display_event($category->get_id(), $category->get_rewrited_name(), $event_id, $this->event->get_content()->get_rewrited_title())); } else { $error_controller = PHPBoostErrors::unexisting_page(); DispatchManager::redirect($error_controller); } }
private function build_form(HTTPRequestCustom $request) { $form = new HTMLForm(__CLASS__); $fieldset = new FormFieldsetHTML('delete_bug'); $form->add_fieldset($fieldset); $fieldset->add_field(new FormFieldRichTextEditor('comments_message', LangLoader::get_message('comment', 'comments-common'), '', array('description' => $this->lang['explain.delete_comment'], 'hidden' => !$this->config->are_pm_enabled() || !$this->config->are_pm_delete_enabled()))); $fieldset->add_field(new FormFieldHidden('referrer', $request->get_url_referrer())); $this->submit_button = new FormButtonDefaultSubmit(); $form->add_button($this->submit_button); $form->add_button(new FormButtonLink(LangLoader::get_message('back', 'main'), 'javascript:history.back(1);')); $this->form = $form; }
private function build_form(HTTPRequestCustom $request) { $form = new HTMLForm(__CLASS__); $fieldset = new FormFieldsetHTML('faq', $this->get_faq_question()->get_id() === null ? $this->lang['faq.add'] : $this->lang['faq.edit']); $form->add_fieldset($fieldset); $fieldset->add_field(new FormFieldTextEditor('question', $this->lang['faq.form.question'], $this->get_faq_question()->get_question(), array('required' => true))); $search_category_children_options = new SearchCategoryChildrensOptions(); $search_category_children_options->add_authorizations_bits(Category::READ_AUTHORIZATIONS); $search_category_children_options->add_authorizations_bits(Category::CONTRIBUTION_AUTHORIZATIONS); $fieldset->add_field(FaqService::get_categories_manager()->get_select_categories_form_field('id_category', $this->common_lang['form.category'], $this->get_faq_question()->get_id_category(), $search_category_children_options)); $fieldset->add_field(new FormFieldRichTextEditor('answer', $this->lang['faq.form.answer'], $this->get_faq_question()->get_answer(), array('rows' => 15, 'required' => true))); if (!$this->is_contributor_member()) { $fieldset->add_field(new FormFieldCheckbox('approved', $this->common_lang['form.approve'], $this->get_faq_question()->is_approved())); } $this->build_contribution_fieldset($form); $fieldset->add_field(new FormFieldHidden('referrer', $request->get_url_referrer())); $this->submit_button = new FormButtonDefaultSubmit(); $form->add_button($this->submit_button); $form->add_button(new FormButtonReset()); $this->form = $form; }
protected function build_form(HTTPRequestCustom $request) { $form = new HTMLForm(__CLASS__); $fieldset = new FormFieldsetHTML('category', $this->get_title()); $form->add_fieldset($fieldset); $fieldset->add_field(new FormFieldTextEditor('name', $this->common_lang['form.name'], $this->get_category()->get_name(), array('required' => true))); $fieldset->add_field(new FormFieldCheckbox('personalize_rewrited_name', $this->common_lang['form.rewrited_name.personalize'], $this->get_category()->rewrited_name_is_personalized(), array('events' => array('click' => ' if (HTMLForms.getField("personalize_rewrited_name").getValue()) { HTMLForms.getField("rewrited_name").enable(); } else { HTMLForms.getField("rewrited_name").disable(); }')))); $fieldset->add_field(new FormFieldTextEditor('rewrited_name', $this->common_lang['form.rewrited_name'], $this->get_category()->get_rewrited_name(), array('description' => $this->common_lang['form.rewrited_name.description'], 'hidden' => !$this->get_category()->rewrited_name_is_personalized()), array(new FormFieldConstraintRegex('`^[a-z0-9\\-]+$`i')))); $search_category_children_options = new SearchCategoryChildrensOptions(); if ($this->get_category()->get_id()) { $search_category_children_options->add_category_in_excluded_categories($this->get_category()->get_id()); } $fieldset->add_field($this->get_categories_manager()->get_select_categories_form_field('id_parent', $this->common_lang['form.category'], $this->get_category()->get_id_parent(), $search_category_children_options)); $this->build_fieldset_options($form); $fieldset_authorizations = new FormFieldsetHTML('authorizations_fieldset', $this->common_lang['authorizations']); $form->add_fieldset($fieldset_authorizations); $root_auth = $this->get_categories_manager()->get_categories_cache()->get_category(Category::ROOT_CATEGORY)->get_authorizations(); $fieldset_authorizations->add_field(new FormFieldCheckbox('special_authorizations', $this->common_lang['authorizations'], !$this->get_category()->auth_is_equals($root_auth), array('description' => $this->lang['category.form.authorizations.description'], 'events' => array('click' => ' if (HTMLForms.getField("special_authorizations").getValue()) { jQuery("#' . __CLASS__ . '_authorizations").show(); } else { jQuery("#' . __CLASS__ . '_authorizations").hide(); }')))); $auth_settings = $this->get_authorizations_settings(); $auth_setter = new FormFieldAuthorizationsSetter('authorizations', $auth_settings, array('hidden' => $this->get_category()->auth_is_equals($root_auth))); $auth_settings->build_from_auth_array($this->get_category()->get_authorizations()); $fieldset_authorizations->add_field($auth_setter); $fieldset->add_field(new FormFieldHidden('referrer', $request->get_url_referrer())); $this->submit_button = new FormButtonDefaultSubmit(); $form->add_button($this->submit_button); $form->add_button(new FormButtonReset()); $this->form = $form; }
private function build_form(HTTPRequestCustom $request) { $form = new HTMLForm(__CLASS__); $regex_type = is_numeric($this->extended_field['regex']) ? $this->extended_field['regex'] : 0; $regex = is_string($this->extended_field['regex']) ? $this->extended_field['regex'] : ''; $fieldset = new FormFieldsetHTML('edit_fields', $this->lang['extended-field-edit']); $form->add_fieldset($fieldset); $fieldset->add_field(new FormFieldTextEditor('name', $this->lang['field.name'], $this->extended_field['name'], array('required' => true))); $fieldset->add_field(new FormFieldShortMultiLineTextEditor('description', $this->lang['field.description'], $this->extended_field['description'])); $fieldset->add_field(new FormFieldSimpleSelectChoice('field_type', $this->lang['field.type'], $this->extended_field['field_type'], $this->get_array_select_type(), array('disabled' => $this->is_type_select_disabled(), 'events' => array('change' => $this->get_events_select_type())))); $fieldset->add_field(new FormFieldSimpleSelectChoice('regex_type', $this->lang['field.regex'], $regex_type, array(new FormFieldSelectChoiceOption('--', '0'), new FormFieldSelectChoiceOption($this->lang['regex.figures'], '1'), new FormFieldSelectChoiceOption($this->lang['regex.letters'], '2'), new FormFieldSelectChoiceOption($this->lang['regex.figures-letters'], '3'), new FormFieldSelectChoiceOption($this->lang['regex.word'], '7'), new FormFieldSelectChoiceOption($this->lang['regex.mail'], '4'), new FormFieldSelectChoiceOption($this->lang['regex.website'], '5'), new FormFieldSelectChoiceOption($this->lang['regex.phone-number'], '8'), new FormFieldSelectChoiceOption($this->lang['regex.personnal-regex'], '6')), array('description' => $this->lang['field.regex-explain'], 'events' => array('change' => ' if (HTMLForms.getField("regex_type").getValue() == 6) { HTMLForms.getField("regex").enable(); } else { HTMLForms.getField("regex").disable(); }')))); $fieldset->add_field(new FormFieldTextEditor('regex', $this->lang['regex.personnal-regex'], $regex, array('maxlength' => 25))); $fieldset->add_field(new FormFieldCheckbox('field_required', $this->lang['field.required'], (int) $this->extended_field['required'], array('description' => $this->lang['field.required_explain']))); $fieldset->add_field(new FormFieldPossibleValues('possible_values', $this->lang['field.possible-values'], $this->extended_field['possible_values'])); $fieldset->add_field(new FormFieldShortMultiLineTextEditor('default_value', $this->lang['field.default-value'], $this->extended_field['default_value'], array('rows' => 4))); $fieldset->add_field(new FormFieldCheckbox('display', $this->lang['field.display'], (int) $this->extended_field['display'])); $auth = $this->extended_field['auth']; $auth_settings = new AuthorizationsSettings(array(new ActionAuthorization($this->lang['field.read_authorizations'], ExtendedField::READ_PROFILE_AUTHORIZATION), new ActionAuthorization($this->lang['field.actions_authorizations'], ExtendedField::READ_EDIT_AND_ADD_AUTHORIZATION))); $auth_settings->build_from_auth_array($auth); $auth_setter = new FormFieldAuthorizationsSetter('authorizations', $auth_settings); $fieldset->add_field($auth_setter); $fieldset->add_field(new FormFieldHidden('referrer', $request->get_url_referrer())); $this->submit_button = new FormButtonDefaultSubmit(); $form->add_button($this->submit_button); $form->add_button(new FormButtonReset()); $this->form = $form; }
private function build_form(HTTPRequestCustom $request) { $form = new HTMLForm(__CLASS__); $fieldset = new FormFieldsetHTML('news', $this->lang['news']); $form->add_fieldset($fieldset); $fieldset->add_field(new FormFieldTextEditor('name', $this->common_lang['form.name'], $this->get_news()->get_name(), array('required' => true))); if (!$this->is_contributor_member()) { $fieldset->add_field(new FormFieldCheckbox('personalize_rewrited_name', $this->common_lang['form.rewrited_name.personalize'], $this->get_news()->rewrited_name_is_personalized(), array('events' => array('click' => ' if (HTMLForms.getField("personalize_rewrited_name").getValue()) { HTMLForms.getField("rewrited_name").enable(); } else { HTMLForms.getField("rewrited_name").disable(); }')))); $fieldset->add_field(new FormFieldTextEditor('rewrited_name', $this->common_lang['form.rewrited_name'], $this->get_news()->get_rewrited_name(), array('description' => $this->common_lang['form.rewrited_name.description'], 'hidden' => !$this->get_news()->rewrited_name_is_personalized()), array(new FormFieldConstraintRegex('`^[a-z0-9\\-]+$`i')))); } $search_category_children_options = new SearchCategoryChildrensOptions(); $search_category_children_options->add_authorizations_bits(Category::READ_AUTHORIZATIONS); $search_category_children_options->add_authorizations_bits(Category::CONTRIBUTION_AUTHORIZATIONS); $fieldset->add_field(NewsService::get_categories_manager()->get_select_categories_form_field('id_cat', $this->common_lang['form.category'], $this->get_news()->get_id_cat(), $search_category_children_options)); $fieldset->add_field(new FormFieldRichTextEditor('contents', $this->common_lang['form.contents'], $this->get_news()->get_contents(), array('rows' => 15, 'required' => true))); $fieldset->add_field(new FormFieldCheckbox('enable_short_contents', $this->lang['news.form.short_contents.enabled'], $this->get_news()->get_short_contents_enabled(), array('description' => StringVars::replace_vars($this->lang['news.form.short_contents.enabled.description'], array('number' => NewsConfig::load()->get_number_character_to_cut())), 'events' => array('click' => ' if (HTMLForms.getField("enable_short_contents").getValue()) { HTMLForms.getField("short_contents").enable(); } else { HTMLForms.getField("short_contents").disable(); }')))); $fieldset->add_field(new FormFieldRichTextEditor('short_contents', $this->lang['news.form.short_contents'], $this->get_news()->get_short_contents(), array('hidden' => !$this->get_news()->get_short_contents_enabled(), 'description' => !NewsConfig::load()->get_display_condensed_enabled() ? '<span class="color-alert">' . $this->lang['news.form.short_contents.description'] . '</span>' : ''))); $other_fieldset = new FormFieldsetHTML('other', $this->common_lang['form.other']); $form->add_fieldset($other_fieldset); $other_fieldset->add_field(new FormFieldUploadFile('picture', $this->common_lang['form.picture'], $this->get_news()->get_picture()->relative())); $other_fieldset->add_field(NewsService::get_keywords_manager()->get_form_field($this->get_news()->get_id(), 'keywords', $this->common_lang['form.keywords'], array('description' => $this->common_lang['form.keywords.description']))); $other_fieldset->add_field(new NewsFormFieldSelectSources('sources', $this->common_lang['form.sources'], $this->get_news()->get_sources())); if (!$this->is_contributor_member()) { $publication_fieldset = new FormFieldsetHTML('publication', $this->common_lang['form.approbation']); $form->add_fieldset($publication_fieldset); $publication_fieldset->add_field(new FormFieldDateTime('creation_date', $this->common_lang['form.date.creation'], $this->get_news()->get_creation_date(), array('required' => true))); $publication_fieldset->add_field(new FormFieldSimpleSelectChoice('approbation_type', $this->common_lang['form.approbation'], $this->get_news()->get_approbation_type(), array(new FormFieldSelectChoiceOption($this->common_lang['form.approbation.not'], News::NOT_APPROVAL), new FormFieldSelectChoiceOption($this->common_lang['form.approbation.now'], News::APPROVAL_NOW), new FormFieldSelectChoiceOption($this->common_lang['status.approved.date'], News::APPROVAL_DATE)), array('events' => array('change' => ' if (HTMLForms.getField("approbation_type").getValue() == 2) { jQuery("#' . __CLASS__ . '_start_date_field").show(); HTMLForms.getField("end_date_enable").enable(); } else { jQuery("#' . __CLASS__ . '_start_date_field").hide(); HTMLForms.getField("end_date_enable").disable(); }')))); $publication_fieldset->add_field(new FormFieldDateTime('start_date', $this->common_lang['form.date.start'], $this->get_news()->get_start_date() === null ? new Date() : $this->get_news()->get_start_date(), array('hidden' => $this->get_news()->get_approbation_type() != News::APPROVAL_DATE))); $publication_fieldset->add_field(new FormFieldCheckbox('end_date_enable', $this->common_lang['form.date.end.enable'], $this->get_news()->end_date_enabled(), array('hidden' => $this->get_news()->get_approbation_type() != News::APPROVAL_DATE, 'events' => array('click' => ' if (HTMLForms.getField("end_date_enable").getValue()) { HTMLForms.getField("end_date").enable(); } else { HTMLForms.getField("end_date").disable(); }')))); $publication_fieldset->add_field(new FormFieldDateTime('end_date', $this->common_lang['form.date.end'], $this->get_news()->get_end_date() === null ? new Date() : $this->get_news()->get_end_date(), array('hidden' => !$this->get_news()->end_date_enabled()))); $publication_fieldset->add_field(new FormFieldCheckbox('top_list', $this->lang['news.form.top_list'], $this->get_news()->top_list_enabled())); } $this->build_contribution_fieldset($form); $fieldset->add_field(new FormFieldHidden('referrer', $request->get_url_referrer())); $this->submit_button = new FormButtonDefaultSubmit(); $form->add_button($this->submit_button); $form->add_button(new FormButtonReset()); $this->form = $form; }
private function redirect(HTTPRequestCustom $request) { if ($this->event->belongs_to_a_serie()) { AppContext::get_response()->redirect($this->form->get_value('referrer') ? $this->form->get_value('referrer') : CalendarUrlBuilder::home($this->event->get_start_date()->get_year(), $this->event->get_start_date()->get_month()), StringVars::replace_vars($this->lang['calendar.message.success.delete'], array('title' => $this->event->get_content()->get_title()))); } else { AppContext::get_response()->redirect($request->get_url_referrer() ? $request->get_url_referrer() : CalendarUrlBuilder::home($this->event->get_start_date()->get_year(), $this->event->get_start_date()->get_month()), StringVars::replace_vars($this->lang['calendar.message.success.delete'], array('title' => $this->event->get_content()->get_title()))); } }
private function build_form(HTTPRequestCustom $request) { $common_lang = LangLoader::get('common'); $bug = $this->get_bug(); $types = $this->config->get_types(); $categories = $this->config->get_categories(); $severities = $this->config->get_severities(); $priorities = $this->config->get_priorities(); $versions_detected_in = array_reverse($this->config->get_versions_detected(), true); $display_types = count($types) > 1; $display_categories = count($categories) > 1; $display_severities = count($severities) > 1; $display_priorities = count($priorities) > 1; $display_versions_detected_in = count($versions_detected_in) > 1; $default_type = $this->config->get_default_type(); $default_category = $this->config->get_default_category(); $default_severity = $this->config->get_default_severity(); $default_priority = $this->config->get_default_priority(); $default_version = $this->config->get_default_version(); $form = new HTMLForm(__CLASS__); $fieldset = new FormFieldsetHTML('bug_infos', $this->lang['titles.bugs_infos']); $form->add_fieldset($fieldset); $fieldset->add_field(new FormFieldTextEditor('title', $common_lang['form.title'], $bug->get_title(), array('required' => true))); $fieldset->add_field(new FormFieldRichTextEditor('contents', $common_lang['form.description'], $bug->get_contents(), array('description' => $this->lang['explain.contents'], 'rows' => 15, 'required' => true))); //Types if ($display_types) { $array_types = array(); if (empty($default_type)) { $array_types[] = new FormFieldSelectChoiceOption(' ', ''); } foreach ($types as $key => $type) { $array_types[] = new FormFieldSelectChoiceOption(stripslashes($type), $key); } $fieldset->add_field(new FormFieldSimpleSelectChoice('type', $this->lang['labels.fields.type'], $bug->get_type(), $array_types, array('required' => $this->config->is_type_mandatory()))); } //Categories if ($display_categories) { $array_categories = array(); if (empty($default_category)) { $array_categories[] = new FormFieldSelectChoiceOption(' ', ''); } foreach ($categories as $key => $category) { $array_categories[] = new FormFieldSelectChoiceOption(stripslashes($category), $key); } $fieldset->add_field(new FormFieldSimpleSelectChoice('category', $this->lang['labels.fields.category'], $bug->get_category(), $array_categories, array('required' => $this->config->is_category_mandatory()))); } if (BugtrackerAuthorizationsService::check_authorizations()->advanced_write()) { //Severities if ($display_severities) { $array_severities = array(); if (empty($default_severity)) { $array_severities[] = new FormFieldSelectChoiceOption(' ', ''); } foreach ($severities as $key => $severity) { $array_severities[] = new FormFieldSelectChoiceOption(stripslashes($severity['name']), $key); } $fieldset->add_field(new FormFieldSimpleSelectChoice('severity', $this->lang['labels.fields.severity'], $bug->get_severity(), $array_severities, array('required' => $this->config->is_severity_mandatory()))); } //Priorities if ($display_priorities) { $array_priorities = array(); if (empty($default_priority)) { $array_priorities[] = new FormFieldSelectChoiceOption(' ', ''); } foreach ($priorities as $key => $priority) { $array_priorities[] = new FormFieldSelectChoiceOption(stripslashes($priority), $key); } $fieldset->add_field(new FormFieldSimpleSelectChoice('priority', $this->lang['labels.fields.priority'], $bug->get_priority(), $array_priorities, array('required' => $this->config->is_priority_mandatory()))); } } //Detected versions if ($display_versions_detected_in) { $array_versions = array(); if (empty($default_version)) { $array_versions[] = new FormFieldSelectChoiceOption(' ', ''); } foreach ($versions_detected_in as $key => $version) { $array_versions[] = new FormFieldSelectChoiceOption(stripslashes($version['name']), $key); } $fieldset->add_field(new FormFieldSimpleSelectChoice('detected_in', $this->lang['labels.fields.detected_in'], $bug->get_detected_in(), $array_versions, array('required' => $this->config->is_detected_in_version_mandatory()))); } $fieldset->add_field(new FormFieldCheckbox('reproductible', $this->lang['labels.fields.reproductible'], $bug->is_reproductible() ? FormFieldCheckbox::CHECKED : FormFieldCheckbox::UNCHECKED, array('events' => array('click' => ' if (HTMLForms.getField("reproductible").getValue()) { HTMLForms.getField("reproduction_method").enable(); } else { HTMLForms.getField("reproduction_method").disable(); }')))); $fieldset->add_field(new FormFieldRichTextEditor('reproduction_method', $this->lang['labels.fields.reproduction_method'], FormatingHelper::unparse($bug->get_reproduction_method()), array('rows' => 15, 'hidden' => !$bug->is_reproductible()))); $fieldset->add_field(new FormFieldHidden('referrer', $request->get_url_referrer())); $this->submit_button = new FormButtonDefaultSubmit(); $form->add_button($this->submit_button); $form->add_button(new FormButtonReset()); $this->form = $form; }
private function build_form(HTTPRequestCustom $request) { $field = $this->get_field(); $regex_type = is_numeric($field->get_regex()) ? $field->get_regex() : 0; $regex = is_string($field->get_regex()) ? $field->get_regex() : ''; $form = new HTMLForm(__CLASS__); $fieldset = new FormFieldsetHTML('field', !empty($this->id) ? $this->lang['admin.fields.title.edit_field'] : $this->lang['admin.fields.title.add_field']); $form->add_fieldset($fieldset); $fieldset->add_field(new FormFieldTextEditor('name', $this->admin_user_common_lang['field.name'], $field->get_name(), array('required' => true), array(new ContactConstraintFieldExist($this->id)))); $fieldset->add_field(new FormFieldShortMultiLineTextEditor('description', $this->admin_user_common_lang['field.description'], $field->get_description(), array('rows' => 4, 'cols' => 47))); $fieldset->add_field(new FormFieldSimpleSelectChoice('field_type', $this->admin_user_common_lang['field.type'], $field->get_field_type(), $this->get_array_select_type($field->get_field_name()), array('disabled' => $field->is_readonly(), 'events' => array('change' => $this->get_events_select_type())))); $fieldset->add_field(new FormFieldSimpleSelectChoice('regex_type', $this->admin_user_common_lang['field.regex'], $regex_type, $this->get_array_select_regex(), array('disabled' => $field->is_readonly(), 'description' => $this->admin_user_common_lang['field.regex-explain'], 'events' => array('change' => ' if (HTMLForms.getField("regex_type").getValue() == 6) { HTMLForms.getField("regex").enable(); } else { HTMLForms.getField("regex").disable(); }')))); $fieldset->add_field(new FormFieldTextEditor('regex', $this->admin_user_common_lang['regex.personnal-regex'], $regex, array('hidden' => $field->is_readonly()))); $fieldset->add_field(new FormFieldCheckbox('field_required', $this->admin_user_common_lang['field.required'], (int) $field->is_required(), array('disabled' => $field->is_readonly()))); if ($field->get_field_name() == 'f_recipients') { $fieldset->add_field(new ContactFormFieldRecipientsPossibleValues('possible_values', $this->admin_user_common_lang['field.possible-values'], $field->get_possible_values(), array('description' => $this->lang['field.possible_values.email.explain']))); } else { if ($field->get_field_name() == 'f_subject') { $fieldset->add_field(new ContactFormFieldObjectPossibleValues('possible_values', $this->admin_user_common_lang['field.possible-values'], $field->get_possible_values(), array('description' => $this->lang['field.possible_values.recipient.explain']))); } else { $fieldset->add_field(new FormFieldPossibleValues('possible_values', $this->admin_user_common_lang['field.possible-values'], $field->get_possible_values(), array('hidden' => $field->is_readonly()))); } } $fieldset->add_field(new FormFieldTextEditor('default_value_small', $this->admin_user_common_lang['field.default-value'], $field->get_default_value(), array('disabled' => $field->is_readonly()))); $fieldset->add_field(new FormFieldShortMultiLineTextEditor('default_value_medium', $this->admin_user_common_lang['field.default-value'], $field->get_default_value(), array('rows' => 4, 'cols' => 47, 'hidden' => $field->is_readonly()))); $fieldset->add_field(new FormFieldCheckbox('display', $this->admin_user_common_lang['field.display'], (int) $field->is_displayed(), array('disabled' => $field->is_readonly()))); $auth_settings = new AuthorizationsSettings(array(new ActionAuthorization($this->lang['admin.authorizations.display_field'], ContactField::DISPLAY_FIELD_AUTHORIZATION))); $auth_settings->build_from_auth_array($field->get_authorization()); $auth_setter = new FormFieldAuthorizationsSetter('authorizations', $auth_settings, array('hidden' => $field->is_readonly())); $fieldset->add_field($auth_setter); $fieldset->add_field(new FormFieldHidden('referrer', $request->get_url_referrer())); $this->submit_button = new FormButtonDefaultSubmit(); $form->add_button($this->submit_button); $form->add_button(new FormButtonReset()); $this->form = $form; }
private function save(HTTPRequestCustom $request) { $has_error = false; $user_id = $this->user->get_id(); if ($this->form->get_value('delete_account')) { UserService::delete_by_id($user_id); } else { $approbation = $this->internal_auth_infos['approved']; if (AppContext::get_current_user()->is_admin()) { $old_approbation = $approbation; $approbation = $this->form->get_value('approbation'); $groups = array(); foreach ($this->form->get_value('groups') as $field => $option) { $groups[] = $option->get_raw_value(); } GroupsService::edit_member($user_id, $groups); $this->user->set_groups($groups); $this->user->set_level($this->form->get_value('rank')->get_raw_value()); } if ($this->form->has_field('theme')) { $this->user->set_theme($this->form->get_value('theme')->get_raw_value()); } $this->user->set_locale($this->form->get_value('lang')->get_raw_value()); $this->user->set_display_name($this->form->get_value('display_name')); $this->user->set_email($this->form->get_value('email')); $this->user->set_locale($this->form->get_value('lang')->get_raw_value()); $this->user->set_editor($this->form->get_value('text-editor')->get_raw_value()); $this->user->set_show_email(!$this->form->get_value('user_hide_mail')); $this->user->set_timezone($this->form->get_value('timezone')->get_raw_value()); try { UserService::update($this->user, $this->member_extended_fields_service); } catch (MemberExtendedFieldErrorsMessageException $e) { $has_error = true; $this->tpl->put('MSG', MessageHelper::display($e->getMessage(), MessageHelper::NOTICE)); } $login = $this->form->get_value('email'); if ($this->form->get_value('custom_login', false)) { $login = $this->form->get_value('login'); } $password = $this->form->get_value('password'); if ($this->internal_auth_infos === null && !empty($password)) { $authentication_method = new PHPBoostAuthenticationMethod($login, $password); AuthenticationService::associate($authentication_method, $user_id); } elseif (!empty($password)) { $old_password = $this->form->get_value('old_password'); if (!empty($old_password)) { $old_password_hashed = KeyGenerator::string_hash($old_password); if ($old_password_hashed == $this->internal_auth_infos['password']) { PHPBoostAuthenticationMethod::update_auth_infos($user_id, $login, $approbation, KeyGenerator::string_hash($password)); $has_error = false; } else { $has_error = true; $this->tpl->put('MSG', MessageHelper::display($this->lang['profile.edit.password.error'], MessageHelper::NOTICE)); } } } else { PHPBoostAuthenticationMethod::update_auth_infos($user_id, $login, $approbation); } if (AppContext::get_current_user()->is_admin()) { if ($old_approbation != $approbation && $old_approbation == 0) { //Recherche de l'alerte correspondante $matching_alerts = AdministratorAlertService::find_by_criteria($user_id, 'member_account_to_approbate'); //L'alerte a été trouvée if (count($matching_alerts) == 1) { $alert = $matching_alerts[0]; $alert->set_status(AdministratorAlert::ADMIN_ALERT_STATUS_PROCESSED); AdministratorAlertService::save_alert($alert); $site_name = GeneralConfig::load()->get_site_name(); $subject = StringVars::replace_vars($this->user_lang['registration.subject-mail'], array('site_name' => $site_name)); $content = StringVars::replace_vars($this->user_lang['registration.email.mail-administrator-validation'], array('pseudo' => $this->user->get_display_name(), 'site_name' => $site_name, 'signature' => MailServiceConfig::load()->get_mail_signature())); AppContext::get_mail_service()->send_from_properties($this->user->get_email(), $subject, $content); } } $user_warning = $this->form->get_value('user_warning')->get_raw_value(); if (!empty($user_warning) && $user_warning != $this->user->get_warning_percentage()) { MemberSanctionManager::caution($user_id, $user_warning, MemberSanctionManager::SEND_MP, str_replace('%level%', $user_warning, LangLoader::get_message('user_warning_level_changed', 'main'))); } elseif (empty($user_warning)) { MemberSanctionManager::cancel_caution($user_id); } $user_readonly = $this->form->get_value('user_readonly')->get_raw_value(); if (!empty($user_readonly) && $user_readonly != $this->user->get_delay_readonly()) { MemberSanctionManager::remove_write_permissions($user_id, time() + $user_readonly, MemberSanctionManager::SEND_MP, str_replace('%date%', $this->form->get_value('user_readonly')->get_label(), LangLoader::get_message('user_readonly_changed', 'main'))); } elseif (empty($user_readonly)) { MemberSanctionManager::restore_write_permissions($user_id); } $user_ban = $this->form->get_value('user_ban')->get_raw_value(); if (!empty($user_ban) && $user_ban != $this->user->get_delay_banned()) { MemberSanctionManager::banish($user_id, time() + $user_ban, MemberSanctionManager::SEND_MAIL); } elseif ($user_ban != $this->user->get_delay_banned()) { MemberSanctionManager::cancel_banishment($user_id); } } SessionData::recheck_cached_data_from_user_id($user_id); } if (!$has_error) { AppContext::get_response()->redirect($request->get_url_referrer() ? $request->get_url_referrer() : UserUrlBuilder::edit_profile($user_id), $this->lang['user.message.success.edit']); } }
private function build_form(HTTPRequestCustom $request) { $common_lang = LangLoader::get('common'); $date_lang = LangLoader::get('date-common'); $event_content = $this->get_event()->get_content(); $form = new HTMLForm(__CLASS__); $fieldset = new FormFieldsetHTML('event', $this->lang['calendar.titles.event']); $form->add_fieldset($fieldset); $fieldset->add_field(new FormFieldTextEditor('title', $common_lang['form.title'], $event_content->get_title(), array('required' => true))); $search_category_children_options = new SearchCategoryChildrensOptions(); $search_category_children_options->add_authorizations_bits(Category::READ_AUTHORIZATIONS); $search_category_children_options->add_authorizations_bits(Category::CONTRIBUTION_AUTHORIZATIONS); $fieldset->add_field(CalendarService::get_categories_manager()->get_select_categories_form_field('category_id', LangLoader::get_message('category', 'categories-common'), $event_content->get_category_id(), $search_category_children_options)); $fieldset->add_field(new FormFieldRichTextEditor('contents', $common_lang['form.contents'], $event_content->get_contents(), array('rows' => 15, 'required' => true))); $fieldset->add_field($start_date = new FormFieldDateTime('start_date', $this->lang['calendar.labels.start_date'], $this->get_event()->get_start_date(), array('required' => true))); $fieldset->add_field($end_date = new FormFieldDateTime('end_date', $this->lang['calendar.labels.end_date'], $this->get_event()->get_end_date(), array('required' => true))); $form->add_constraint(new FormConstraintFieldsDifferenceSuperior($start_date, $end_date)); $fieldset->add_field(new FormFieldSimpleSelectChoice('repeat_type', $this->lang['calendar.labels.repeat_type'], $event_content->get_repeat_type(), array(new FormFieldSelectChoiceOption($this->lang['calendar.labels.repeat.never'], CalendarEventContent::NEVER), new FormFieldSelectChoiceOption($date_lang['every_day'], CalendarEventContent::DAILY), new FormFieldSelectChoiceOption($date_lang['every_week'], CalendarEventContent::WEEKLY), new FormFieldSelectChoiceOption($date_lang['every_month'], CalendarEventContent::MONTHLY), new FormFieldSelectChoiceOption($date_lang['every_year'], CalendarEventContent::YEARLY)), array('events' => array('change' => ' if (HTMLForms.getField("repeat_type").getValue() != "' . CalendarEventContent::NEVER . '") { HTMLForms.getField("repeat_number").enable(); } else { HTMLForms.getField("repeat_number").disable(); }')))); $fieldset->add_field(new FormFieldNumberEditor('repeat_number', $this->lang['calendar.labels.repeat_number'], $event_content->get_repeat_number(), array('min' => 1, 'max' => 150, 'hidden' => $event_content->get_repeat_type() == CalendarEventContent::NEVER), array(new FormFieldConstraintIntegerRange(1, 150)))); $fieldset->add_field(new FormFieldShortMultiLineTextEditor('location', $this->lang['calendar.labels.location'], $event_content->get_location())); $fieldset->add_field(new FormFieldCheckbox('registration_authorized', $this->lang['calendar.labels.registration_authorized'], $event_content->is_registration_authorized(), array('events' => array('click' => ' if (HTMLForms.getField("registration_authorized").getValue()) { HTMLForms.getField("max_registered_members").enable(); HTMLForms.getField("last_registration_date_enabled").enable(); jQuery("#' . __CLASS__ . '_register_authorizations").show(); } else { HTMLForms.getField("max_registered_members").disable(); HTMLForms.getField("last_registration_date_enabled").disable(); jQuery("#' . __CLASS__ . '_register_authorizations").hide(); }')))); $fieldset->add_field(new FormFieldNumberEditor('max_registered_members', $this->lang['calendar.labels.max_registered_members'], $event_content->get_max_registered_members(), array('description' => $this->lang['calendar.labels.max_registered_members.explain'], 'hidden' => !$event_content->is_registration_authorized()), array(new FormFieldConstraintRegex('`^[0-9]+$`i')))); $fieldset->add_field(new FormFieldCheckbox('last_registration_date_enabled', $this->lang['calendar.labels.last_registration_date_enabled'], $event_content->is_last_registration_date_enabled(), array('hidden' => !$event_content->is_registration_authorized(), 'events' => array('click' => ' if (HTMLForms.getField("last_registration_date_enabled").getValue()) { HTMLForms.getField("last_registration_date").enable(); } else { HTMLForms.getField("last_registration_date").disable(); }')))); $fieldset->add_field(new FormFieldDateTime('last_registration_date', $this->lang['calendar.labels.last_registration_date'], $event_content->get_last_registration_date(), array('hidden' => !$event_content->is_last_registration_date_enabled()))); $auth_settings = new AuthorizationsSettings(array(new ActionAuthorization($this->lang['calendar.authorizations.display_registered_users'], CalendarEventContent::DISPLAY_REGISTERED_USERS_AUTHORIZATION), new ActionAuthorization($this->lang['calendar.authorizations.register'], CalendarEventContent::REGISTER_AUTHORIZATION))); $auth_settings->build_from_auth_array($event_content->get_register_authorizations()); $auth_setter = new FormFieldAuthorizationsSetter('register_authorizations', $auth_settings, array('hidden' => !$event_content->is_registration_authorized())); $fieldset->add_field($auth_setter); if (!$this->is_contributor_member()) { $fieldset->add_field(new FormFieldCheckbox('approved', $common_lang['form.approve'], $event_content->is_approved())); } $this->build_contribution_fieldset($form); $fieldset->add_field(new FormFieldHidden('referrer', $request->get_url_referrer())); $this->submit_button = new FormButtonDefaultSubmit(); $form->add_button($this->submit_button); $form->add_button(new FormButtonReset()); $this->form = $form; }
private function build_form(HTTPRequestCustom $request) { $form = new HTMLForm(__CLASS__); $fieldset = new FormFieldsetHTML('articles', $this->lang['articles']); $form->add_fieldset($fieldset); $fieldset->add_field(new FormFieldTextEditor('title', $this->common_lang['form.title'], $this->get_article()->get_title(), array('required' => true))); if (!$this->is_contributor_member()) { $fieldset->add_field(new FormFieldCheckbox('personalize_rewrited_title', $this->common_lang['form.rewrited_name.personalize'], $this->get_article()->rewrited_title_is_personalized(), array('events' => array('click' => ' if (HTMLForms.getField("personalize_rewrited_title").getValue()) { HTMLForms.getField("rewrited_title").enable(); } else { HTMLForms.getField("rewrited_title").disable(); }')))); $fieldset->add_field(new FormFieldTextEditor('rewrited_title', $this->common_lang['form.rewrited_name'], $this->get_article()->get_rewrited_title(), array('description' => $this->common_lang['form.rewrited_name.description'], 'hidden' => !$this->get_article()->rewrited_title_is_personalized()), array(new FormFieldConstraintRegex('`^[a-z0-9\\-]+$`i')))); } $search_category_children_options = new SearchCategoryChildrensOptions(); $search_category_children_options->add_authorizations_bits(Category::READ_AUTHORIZATIONS); $search_category_children_options->add_authorizations_bits(Category::CONTRIBUTION_AUTHORIZATIONS); $fieldset->add_field(ArticlesService::get_categories_manager()->get_select_categories_form_field('id_category', $this->common_lang['form.category'], $this->get_article()->get_id_category(), $search_category_children_options)); $fieldset->add_field(new FormFieldCheckbox('enable_description', $this->lang['articles.form.description_enabled'], $this->get_article()->get_description_enabled(), array('description' => StringVars::replace_vars($this->lang['articles.form.description_enabled.description'], array('number' => ArticlesConfig::load()->get_number_character_to_cut())), 'events' => array('click' => ' if (HTMLForms.getField("enable_description").getValue()) { HTMLForms.getField("description").enable(); } else { HTMLForms.getField("description").disable(); }')))); $fieldset->add_field(new FormFieldRichTextEditor('description', StringVars::replace_vars($this->lang['articles.form.description'], array('number' => ArticlesConfig::load()->get_number_character_to_cut())), $this->get_article()->get_description(), array('rows' => 3, 'hidden' => !$this->get_article()->get_description_enabled()))); $fieldset->add_field(new FormFieldRichTextEditor('contents', $this->common_lang['form.contents'], $this->get_article()->get_contents(), array('rows' => 15, 'required' => true))); $onclick_action = 'javascript:bbcode_page();'; $fieldset->add_field(new FormFieldActionLink('add_page', $this->lang['articles.form.add_page'], $onclick_action, PATH_TO_ROOT . '/articles/templates/images/pagebreak.png')); $other_fieldset = new FormFieldsetHTML('other', $this->common_lang['form.other']); $form->add_fieldset($other_fieldset); $other_fieldset->add_field(new FormFieldCheckbox('author_name_displayed', LangLoader::get_message('config.author_displayed', 'admin-common'), $this->get_article()->get_author_name_displayed())); $other_fieldset->add_field(new FormFieldCheckbox('notation_enabled', LangLoader::get_message('config.notation_enabled', 'admin-common'), $this->get_article()->get_notation_enabled())); $other_fieldset->add_field(new FormFieldUploadPictureFile('picture', $this->common_lang['form.picture'], $this->get_article()->get_picture()->relative())); $other_fieldset->add_field(ArticlesService::get_keywords_manager()->get_form_field($this->get_article()->get_id(), 'keywords', $this->common_lang['form.keywords'], array('description' => $this->common_lang['form.keywords.description']))); $other_fieldset->add_field(new ArticlesFormFieldSelectSources('sources', $this->common_lang['form.sources'], $this->get_article()->get_sources())); if (!$this->is_contributor_member()) { $publication_fieldset = new FormFieldsetHTML('publication', $this->common_lang['form.approbation']); $form->add_fieldset($publication_fieldset); $publication_fieldset->add_field(new FormFieldDateTime('date_created', $this->common_lang['form.date.creation'], $this->get_article()->get_date_created(), array('required' => true))); $publication_fieldset->add_field(new FormFieldSimpleSelectChoice('publishing_state', $this->common_lang['form.approbation'], $this->get_article()->get_publishing_state(), array(new FormFieldSelectChoiceOption($this->common_lang['form.approbation.not'], Article::NOT_PUBLISHED), new FormFieldSelectChoiceOption($this->common_lang['form.approbation.now'], Article::PUBLISHED_NOW), new FormFieldSelectChoiceOption($this->common_lang['status.approved.date'], Article::PUBLISHED_DATE)), array('events' => array('change' => ' if (HTMLForms.getField("publishing_state").getValue() == 2) { jQuery("#' . __CLASS__ . '_publishing_start_date_field").show(); HTMLForms.getField("end_date_enable").enable(); } else { jQuery("#' . __CLASS__ . '_publishing_start_date_field").hide(); HTMLForms.getField("end_date_enable").disable(); }')))); $publication_fieldset->add_field(new FormFieldDateTime('publishing_start_date', $this->common_lang['form.date.start'], $this->get_article()->get_publishing_start_date() === null ? new Date() : $this->get_article()->get_publishing_start_date(), array('hidden' => $this->get_article()->get_publishing_state() != Article::PUBLISHED_DATE))); $publication_fieldset->add_field(new FormFieldCheckbox('end_date_enable', $this->common_lang['form.date.end.enable'], $this->get_article()->end_date_enabled(), array('hidden' => $this->get_article()->get_publishing_state() != Article::PUBLISHED_DATE, 'events' => array('click' => ' if (HTMLForms.getField("end_date_enable").getValue()) { HTMLForms.getField("publishing_end_date").enable(); } else { HTMLForms.getField("publishing_end_date").disable(); }')))); $publication_fieldset->add_field(new FormFieldDateTime('publishing_end_date', $this->common_lang['form.date.end'], $this->get_article()->get_publishing_end_date() === null ? new date() : $this->get_article()->get_publishing_end_date(), array('hidden' => !$this->get_article()->end_date_enabled()))); } $this->build_contribution_fieldset($form); $fieldset->add_field(new FormFieldHidden('referrer', $request->get_url_referrer())); $this->submit_button = new FormButtonDefaultSubmit(); $form->add_button($this->submit_button); $form->add_button(new FormButtonReset()); $this->form = $form; // Positionnement à la bonne page quand on édite un article avec plusieurs pages if ($this->get_article()->get_id() !== null) { $current_page = $request->get_getstring('page', ''); $this->tpl->put('C_PAGE', !empty($current_page)); if (!empty($current_page)) { $article_contents = $this->article->get_contents(); //If article doesn't begin with a page, we insert one if (substr(trim($article_contents), 0, 6) != '[page]') { $article_contents = '[page] [/page]' . $article_contents; } //Removing [page] bbcode $article_contents_clean = preg_split('`\\[page\\].+\\[/page\\](.*)`Us', $article_contents, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY); //Retrieving pages preg_match_all('`\\[page\\]([^[]+)\\[/page\\]`U', $article_contents, $array_page); $page_name = isset($array_page[1][$current_page - 1]) && $array_page[1][$current_page - 1] != ' ' ? $array_page[1][$current_page - 1] : ''; $this->tpl->put('PAGE', TextHelper::to_js_string($page_name)); } } }
private function build_form(HTTPRequestCustom $request) { $form = new HTMLForm(__CLASS__); $fieldset = new FormFieldsetHTML('download', $this->get_downloadfile()->get_id() === null ? $this->lang['download.add'] : $this->lang['download.edit']); $form->add_fieldset($fieldset); $fieldset->add_field(new FormFieldTextEditor('name', $this->common_lang['form.name'], $this->get_downloadfile()->get_name(), array('required' => true))); $search_category_children_options = new SearchCategoryChildrensOptions(); $search_category_children_options->add_authorizations_bits(Category::READ_AUTHORIZATIONS); $search_category_children_options->add_authorizations_bits(Category::CONTRIBUTION_AUTHORIZATIONS); $fieldset->add_field(DownloadService::get_categories_manager()->get_select_categories_form_field('id_category', $this->common_lang['form.category'], $this->get_downloadfile()->get_id_category(), $search_category_children_options)); $fieldset->add_field(new FormFieldUploadFile('url', $this->common_lang['form.url'], $this->get_downloadfile()->get_url()->relative(), array('required' => true))); if ($this->get_downloadfile()->get_id() !== null && $this->get_downloadfile()->get_number_downloads() > 0) { $fieldset->add_field(new FormFieldCheckbox('reset_number_downloads', $this->lang['download.form.reset_number_downloads'])); } $fieldset->add_field(new FormFieldRichTextEditor('contents', $this->common_lang['form.description'], $this->get_downloadfile()->get_contents(), array('rows' => 15, 'required' => true))); $fieldset->add_field(new FormFieldCheckbox('short_contents_enabled', $this->common_lang['form.short_contents.enabled'], $this->get_downloadfile()->is_short_contents_enabled(), array('description' => StringVars::replace_vars($this->common_lang['form.short_contents.enabled.description'], array('number' => DownloadConfig::NUMBER_CARACTERS_BEFORE_CUT)), 'events' => array('click' => ' if (HTMLForms.getField("short_contents_enabled").getValue()) { HTMLForms.getField("short_contents").enable(); } else { HTMLForms.getField("short_contents").disable(); }')))); $fieldset->add_field(new FormFieldRichTextEditor('short_contents', $this->common_lang['form.description'], $this->get_downloadfile()->get_short_contents(), array('hidden' => !$this->get_downloadfile()->is_short_contents_enabled()))); if ($this->config->is_author_displayed()) { $fieldset->add_field(new FormFieldCheckbox('author_display_name_enabled', $this->lang['download.form.author_display_name_enabled'], $this->get_downloadfile()->is_author_display_name_enabled(), array('events' => array('click' => ' if (HTMLForms.getField("author_display_name_enabled").getValue()) { HTMLForms.getField("author_display_name").enable(); } else { HTMLForms.getField("author_display_name").disable(); }')))); $fieldset->add_field(new FormFieldTextEditor('author_display_name', $this->lang['download.form.author_display_name'], $this->get_downloadfile()->get_author_display_name(), array('hidden' => !$this->get_downloadfile()->is_author_display_name_enabled()))); } $other_fieldset = new FormFieldsetHTML('other', $this->common_lang['form.other']); $form->add_fieldset($other_fieldset); $other_fieldset->add_field(new FormFieldUploadPictureFile('picture', $this->common_lang['form.picture'], $this->get_downloadfile()->get_picture()->relative())); $other_fieldset->add_field(DownloadService::get_keywords_manager()->get_form_field($this->get_downloadfile()->get_id(), 'keywords', $this->common_lang['form.keywords'], array('description' => $this->common_lang['form.keywords.description']))); if (!$this->is_contributor_member()) { $publication_fieldset = new FormFieldsetHTML('publication', $this->common_lang['form.approbation']); $form->add_fieldset($publication_fieldset); $publication_fieldset->add_field(new FormFieldDateTime('creation_date', $this->common_lang['form.date.creation'], $this->get_downloadfile()->get_creation_date(), array('required' => true))); $publication_fieldset->add_field(new FormFieldSimpleSelectChoice('approbation_type', $this->common_lang['form.approbation'], $this->get_downloadfile()->get_approbation_type(), array(new FormFieldSelectChoiceOption($this->common_lang['form.approbation.not'], DownloadFile::NOT_APPROVAL), new FormFieldSelectChoiceOption($this->common_lang['form.approbation.now'], DownloadFile::APPROVAL_NOW), new FormFieldSelectChoiceOption($this->common_lang['status.approved.date'], DownloadFile::APPROVAL_DATE)), array('events' => array('change' => ' if (HTMLForms.getField("approbation_type").getValue() == 2) { jQuery("#' . __CLASS__ . '_start_date_field").show(); HTMLForms.getField("end_date_enabled").enable(); } else { jQuery("#' . __CLASS__ . '_start_date_field").hide(); HTMLForms.getField("end_date_enabled").disable(); }')))); $publication_fieldset->add_field(new FormFieldDateTime('start_date', $this->common_lang['form.date.start'], $this->get_downloadfile()->get_start_date() === null ? new Date() : $this->get_downloadfile()->get_start_date(), array('hidden' => $this->get_downloadfile()->get_approbation_type() != DownloadFile::APPROVAL_DATE))); $publication_fieldset->add_field(new FormFieldCheckbox('end_date_enabled', $this->common_lang['form.date.end.enable'], $this->get_downloadfile()->is_end_date_enabled(), array('hidden' => $this->get_downloadfile()->get_approbation_type() != DownloadFile::APPROVAL_DATE, 'events' => array('click' => ' if (HTMLForms.getField("end_date_enabled").getValue()) { HTMLForms.getField("end_date").enable(); } else { HTMLForms.getField("end_date").disable(); }')))); $publication_fieldset->add_field(new FormFieldDateTime('end_date', $this->common_lang['form.date.end'], $this->get_downloadfile()->get_end_date() === null ? new Date() : $this->get_downloadfile()->get_end_date(), array('hidden' => !$this->get_downloadfile()->is_end_date_enabled()))); } $this->build_contribution_fieldset($form); $fieldset->add_field(new FormFieldHidden('referrer', $request->get_url_referrer())); $this->submit_button = new FormButtonDefaultSubmit(); $form->add_button($this->submit_button); $form->add_button(new FormButtonReset()); $this->form = $form; }
protected function build_form(HTTPRequestCustom $request) { $form = new HTMLForm(__CLASS__); $fieldset = new FormFieldsetHTML('category', $this->get_title()); $form->add_fieldset($fieldset); $fieldset->add_field(new FormFieldSimpleSelectChoice('type', LangLoader::get_message('type', 'main'), $this->get_category()->get_type(), array(new FormFieldSelectChoiceOption(LangLoader::get_message('category', 'categories-common'), ForumCategory::TYPE_CATEGORY), new FormFieldSelectChoiceOption(LangLoader::get_message('module_title', 'common', 'forum'), ForumCategory::TYPE_FORUM), new FormFieldSelectChoiceOption(LangLoader::get_message('link', 'admin'), ForumCategory::TYPE_URL)), array('events' => array('change' => ' if (HTMLForms.getField("type").getValue() == ' . ForumCategory::TYPE_CATEGORY . ') { HTMLForms.getField("id_parent").disable(); HTMLForms.getField("description").disable(); HTMLForms.getField("url").disable(); if (HTMLForms.getField("special_authorizations").getValue()) { jQuery("#' . __CLASS__ . '_authorizations > div").eq(1).hide(); jQuery("#' . __CLASS__ . '_authorizations > div").eq(2).hide(); } } else if (HTMLForms.getField("type").getValue() == ' . ForumCategory::TYPE_FORUM . ') { HTMLForms.getField("id_parent").enable(); HTMLForms.getField("description").enable(); HTMLForms.getField("url").disable(); if (HTMLForms.getField("special_authorizations").getValue()) { jQuery("#' . __CLASS__ . '_authorizations > div").eq(1).show(); jQuery("#' . __CLASS__ . '_authorizations > div").eq(2).show(); } } else { HTMLForms.getField("id_parent").enable(); HTMLForms.getField("description").enable(); HTMLForms.getField("url").enable(); if (HTMLForms.getField("special_authorizations").getValue()) { jQuery("#' . __CLASS__ . '_authorizations > div").eq(1).hide(); jQuery("#' . __CLASS__ . '_authorizations > div").eq(2).hide(); } }')))); $fieldset->add_field(new FormFieldTextEditor('name', $this->common_lang['form.name'], $this->get_category()->get_name(), array('required' => true))); $fieldset->add_field(new FormFieldCheckbox('personalize_rewrited_name', $this->common_lang['form.rewrited_name.personalize'], $this->get_category()->rewrited_name_is_personalized(), array('events' => array('click' => ' if (HTMLForms.getField("personalize_rewrited_name").getValue()) { HTMLForms.getField("rewrited_name").enable(); } else { HTMLForms.getField("rewrited_name").disable(); }')))); $fieldset->add_field(new FormFieldTextEditor('rewrited_name', $this->common_lang['form.rewrited_name'], $this->get_category()->get_rewrited_name(), array('description' => $this->common_lang['form.rewrited_name.description'], 'hidden' => !$this->get_category()->rewrited_name_is_personalized()), array(new FormFieldConstraintRegex('`^[a-z0-9\\-]+$`i')))); $fieldset->add_field(new FormFieldRichTextEditor('description', $this->common_lang['form.description'], $this->get_category()->get_description(), array('hidden' => $this->get_category()->get_type() == ForumCategory::TYPE_CATEGORY))); $search_category_children_options = new SearchCategoryChildrensOptions(); $search_category_children_options->add_category_in_excluded_categories(Category::ROOT_CATEGORY); if ($this->get_category()->get_id()) { $search_category_children_options->add_category_in_excluded_categories($this->get_category()->get_id()); } $fieldset->add_field($this->get_categories_manager()->get_select_categories_form_field('id_parent', $this->common_lang['form.category'], $this->get_category()->get_id_parent(), $search_category_children_options, array('required' => true, 'hidden' => $this->get_category()->get_type() == ForumCategory::TYPE_CATEGORY))); $fieldset->add_field(new FormFieldUrlEditor('url', LangLoader::get_message('form.url', 'common'), $this->get_category()->get_url(), array('required' => true, 'hidden' => $this->get_category()->get_type() != ForumCategory::TYPE_URL))); $fieldset_authorizations = new FormFieldsetHTML('authorizations_fieldset', $this->common_lang['authorizations']); $form->add_fieldset($fieldset_authorizations); $root_auth = $this->get_categories_manager()->get_categories_cache()->get_category(Category::ROOT_CATEGORY)->get_authorizations(); $fieldset_authorizations->add_field(new FormFieldCheckbox('special_authorizations', $this->common_lang['authorizations'], !$this->get_category()->auth_is_equals($root_auth), array('description' => $this->lang['category.form.authorizations.description'], 'events' => array('click' => ' if (HTMLForms.getField("special_authorizations").getValue()) { jQuery("#' . __CLASS__ . '_authorizations").show(); if (HTMLForms.getField("type").getValue() == ' . ForumCategory::TYPE_CATEGORY . ' || HTMLForms.getField("type").getValue() == ' . ForumCategory::TYPE_URL . ') { jQuery("#' . __CLASS__ . '_authorizations > div").eq(1).hide(); jQuery("#' . __CLASS__ . '_authorizations > div").eq(2).hide(); } } else { jQuery("#' . __CLASS__ . '_authorizations").hide(); }')))); // Autorisations cachées à l'édition Si le type est catégorie ou url $fieldset_authorizations->add_field(new FormFieldFree('hide_authorizations', '', ' <script> <!-- jQuery(document).ready(function() { if (HTMLForms.getField("special_authorizations").getValue() && (HTMLForms.getField("type").getValue() == ' . ForumCategory::TYPE_CATEGORY . ' || HTMLForms.getField("type").getValue() == ' . ForumCategory::TYPE_URL . ')) { jQuery("#' . __CLASS__ . '_authorizations > div").eq(1).hide(); jQuery("#' . __CLASS__ . '_authorizations > div").eq(2).hide(); } }); --> </script>')); $auth_settings = $this->get_authorizations_settings(); $auth_setter = new FormFieldAuthorizationsSetter('authorizations', $auth_settings, array('hidden' => $this->get_category()->auth_is_equals($root_auth))); $auth_settings->build_from_auth_array($this->get_category()->get_authorizations()); $fieldset_authorizations->add_field($auth_setter); $fieldset->add_field(new FormFieldHidden('referrer', $request->get_url_referrer())); $this->submit_button = new FormButtonDefaultSubmit(); $form->add_button($this->submit_button); $form->add_button(new FormButtonReset()); $this->form = $form; }