public function __construct($id, $options = array())
 {
     if (!isset($options['css_class'])) {
         $options['css_class'] = 'fieldset-submit';
     }
     parent::__construct($id, '', $options);
 }
 private function create_tables(InstallationServices $service, $host, $port, $login, $password, $schema, $tables_prefix)
 {
     if (!$service->is_already_installed() || !$this->overwrite_field->is_disabled() && $this->overwrite_field->is_checked()) {
         PersistenceContext::close_db_connection();
         $service->create_phpboost_tables(DBFactory::MYSQL, $host, $port, $schema, $login, $password, $tables_prefix);
         AppContext::get_response()->redirect(InstallUrlBuilder::website());
     } else {
         $this->overwrite_fieldset->enable();
         $this->error = $this->lang['phpboost.alreadyInstalled.explanation'];
     }
 }
 private function build_contribution_fieldset($form)
 {
     if ($this->is_contributor_member()) {
         $fieldset = new FormFieldsetHTML('contribution', LangLoader::get_message('contribution', 'user-common'));
         $fieldset->set_description(MessageHelper::display($this->lang['download.form.contribution.explain'] . ' ' . LangLoader::get_message('contribution.explain', 'user-common'), MessageHelper::WARNING)->render());
         $form->add_fieldset($fieldset);
         $fieldset->add_field(new FormFieldRichTextEditor('contribution_description', LangLoader::get_message('contribution.description', 'user-common'), '', array('description' => LangLoader::get_message('contribution.description.explain', 'user-common'))));
     }
 }
 public static function get_advises(HTMLForm $html_form)
 {
     $lang = LangLoader::get('admin-server-common');
     $server_configuration = new ServerConfiguration();
     $maintenance_config = MaintenanceConfig::load();
     $general_config = GeneralConfig::load();
     $server_environment_config = ServerEnvironmentConfig::load();
     $security_config = SecurityConfig::load();
     $url_rewriting_available = false;
     try {
         $url_rewriting_available = $server_configuration->has_url_rewriting();
     } catch (UnsupportedOperationException $ex) {
     }
     $fieldset = new FormFieldsetHTML('advises', $lang['advises']);
     $fieldset->add_field(new FormFieldFree('modules_management', '', MessageHelper::display($lang['advises.modules_management'], MessageHelper::SUCCESS)->render()));
     if ($maintenance_config->is_under_maintenance()) {
         $fieldset->add_field(new FormFieldFree('check_modules_authorizations', '', MessageHelper::display($lang['advises.check_modules_authorizations'], MessageHelper::SUCCESS)->render()));
     }
     if (!strstr($general_config->get_site_url(), 'localhost') && !strstr($general_config->get_site_url(), '127.0.0.1') && !$maintenance_config->is_under_maintenance() && Debug::is_debug_mode_enabled()) {
         $fieldset->add_field(new FormFieldFree('disable_debug_mode', '', MessageHelper::display($lang['advises.disable_debug_mode'], MessageHelper::WARNING)->render()));
     }
     if ($url_rewriting_available && !$server_environment_config->is_url_rewriting_enabled()) {
         $fieldset->add_field(new FormFieldFree('enable_url_rewriting', '', MessageHelper::display($lang['advises.enable_url_rewriting'], MessageHelper::NOTICE)->render()));
     }
     if (function_exists('ob_gzhandler') && @extension_loaded('zlib') && !$server_environment_config->is_output_gziping_enabled()) {
         $fieldset->add_field(new FormFieldFree('enable_output_gz', '', MessageHelper::display($lang['advises.enable_output_gz'], MessageHelper::NOTICE)->render()));
     }
     if (DataStoreFactory::is_apc_available() && !DataStoreFactory::is_apc_enabled()) {
         $fieldset->add_field(new FormFieldFree('enable_apcu_cache', '', MessageHelper::display($lang['advises.enable_apcu_cache'], MessageHelper::NOTICE)->render()));
     }
     $fieldset->add_field(new FormFieldFree('save_database', '', MessageHelper::display($lang['advises.save_database'], MessageHelper::SUCCESS)->render()));
     if (!DatabaseConfig::load()->is_database_tables_optimization_enabled()) {
         $fieldset->add_field(new FormFieldFree('optimize_database_tables', '', MessageHelper::display($lang['advises.optimize_database_tables'], MessageHelper::SUCCESS)->render()));
     }
     if ($security_config->get_internal_password_min_length() == 6 && $security_config->get_internal_password_strength() == SecurityConfig::PASSWORD_STRENGTH_WEAK && !$security_config->are_login_and_email_forbidden_in_password()) {
         $fieldset->add_field(new FormFieldFree('password_security', '', MessageHelper::display($lang['advises.password_security'], MessageHelper::NOTICE)->render()));
     }
     if (ServerConfiguration::get_phpversion() < '5.6') {
         $fieldset->add_field(new FormFieldFree('upgrade_php_version', '', MessageHelper::display($lang['advises.upgrade_php_version'], MessageHelper::NOTICE)->render()));
     }
     if (count($fieldset->get_fields())) {
         $html_form->add_fieldset($fieldset);
     }
 }
 private function build_form()
 {
     $security_config = SecurityConfig::load();
     $form = new HTMLForm('sandboxForm');
     // FIELDSET
     $fieldset = new FormFieldsetHTML('fieldset_1', 'Fieldset');
     $form->add_fieldset($fieldset);
     $fieldset->set_description('Ceci est ma description');
     // SINGLE LINE TEXT
     $fieldset->add_field(new FormFieldTextEditor('text', 'Champ texte', 'toto', array('maxlength' => 25, 'description' => 'Contraintes lettres, chiffres et tiret bas'), array(new FormFieldConstraintRegex('`^[a-z0-9_ ]+$`i'))));
     $fieldset->add_field(new FormFieldTextEditor('textdisabled', 'Champ désactivé', '', array('maxlength' => 25, 'description' => 'désactivé', 'disabled' => true)));
     $fieldset->add_field(new FormFieldUrlEditor('siteweb', 'Site web', 'http://www.phpboost.com/index.php', array('description' => 'Url valide')));
     $fieldset->add_field(new FormFieldMailEditor('mail', 'Mail', '*****@*****.**', array('description' => 'Mail valide')));
     $fieldset->add_field(new FormFieldMailEditor('mail_multiple', 'Mail multiple', 'team.hein@phpboost.com, test@phpboost.com', array('description' => 'Mails valides, séparés par une virgule', 'multiple' => true)));
     $fieldset->add_field(new FormFieldTelEditor('tel', 'Numéro de téléphone', '0123456789', array('description' => 'Numéro de téléphone valide')));
     $fieldset->add_field(new FormFieldTextEditor('text2', 'Champ texte2', 'toto2', array('maxlength' => 25, 'description' => 'Champs requis rempli', 'required' => true)));
     $fieldset->add_field(new FormFieldTextEditor('text3', 'Champ requis', '', array('maxlength' => 25, 'description' => 'Champs requis vide', 'required' => true)));
     $fieldset->add_field(new FormFieldNumberEditor('number', 'Nombre requis', 20, array('min' => 0, 'max' => 1000, 'description' => 'Intervalle 0 à 1000', 'required' => true), array(new FormFieldConstraintIntegerRange(0, 1000))));
     $fieldset->add_field(new FormFieldNumberEditor('age', 'Age', 20, array('min' => 10, 'max' => 100, 'description' => 'Intervalle 10 à 100'), array(new FormFieldConstraintIntegerRange(10, 100))));
     $fieldset->add_field(new FormFieldDecimalNumberEditor('decimal', 'Nombre décimal', 5.5, array('min' => 0, 'step' => 0.1)));
     // RANGE
     $fieldset->add_field($password = new FormFieldRangeEditor('range', 'Longueur', 4, array('min' => 1, 'max' => 10, 'description' => 'Slider horizontal')));
     // PASSWORD
     $fieldset->add_field($password = new FormFieldPasswordEditor('password', 'Mot de passe', 'aaaaaa', array('description' => 'Minimum ' . $security_config->get_internal_password_min_length() . ' caractères'), array(new FormFieldConstraintLengthMin($security_config->get_internal_password_min_length()))));
     $fieldset->add_field($password_bis = new FormFieldPasswordEditor('password_bis', 'Confirmation du mot de passe', 'aaaaaa', array('description' => 'Minimum ' . $security_config->get_internal_password_min_length() . ' caractères'), array(new FormFieldConstraintLengthMin($security_config->get_internal_password_min_length()))));
     // SHORT MULTI LINE TEXT
     $fieldset->add_field(new FormFieldShortMultiLineTextEditor('short_multi_line_text', 'Champ texte multi lignes moyen', 'titi', array('rows' => 7, 'required' => true)));
     // MULTI LINE TEXT
     $fieldset->add_field(new FormFieldMultiLineTextEditor('multi_line_text', 'Champ texte multi lignes', 'toto', array('rows' => 6, 'cols' => 47, 'description' => 'Description', 'required' => true)));
     // RICH TEXT
     $fieldset->add_field(new FormFieldRichTextEditor('rich_text', 'Champ texte riche dans éditeur', 'toto <strong>tata</strong>', array('required' => true)));
     //Checkbox
     $fieldset->add_field(new FormFieldMultipleCheckbox('multiple_check_box', 'Plusieurs checkbox', array(), array(new FormFieldMultipleCheckboxOption('meet', 'la viande'), new FormFieldMultipleCheckboxOption('fish', 'le poisson')), array('required' => true)));
     // RADIO
     $default_option = new FormFieldRadioChoiceOption('Choix 1', '1');
     $fieldset->add_field(new FormFieldRadioChoice('radio', 'Choix énumération', '', array($default_option, new FormFieldRadioChoiceOption('Choix 2', '2')), array('required' => true)));
     // CHECKBOX
     $fieldset->add_field(new FormFieldCheckbox('checkbox', 'Case à cocher', FormFieldCheckbox::CHECKED));
     // SELECT
     $fieldset->add_field(new FormFieldSimpleSelectChoice('select', 'Liste déroulante', '', array(new FormFieldSelectChoiceOption('', ''), new FormFieldSelectChoiceOption('Choix 1', '1'), new FormFieldSelectChoiceOption('Choix 2', '2'), new FormFieldSelectChoiceOption('Choix 3', '3'), new FormFieldSelectChoiceGroupOption('Groupe 1', array(new FormFieldSelectChoiceOption('Choix 4', '4'), new FormFieldSelectChoiceOption('Choix 5', '5'))), new FormFieldSelectChoiceGroupOption('Groupe 2', array(new FormFieldSelectChoiceOption('Choix 6', '6'), new FormFieldSelectChoiceOption('Choix 7', '7')))), array('required' => true)));
     // SELECT MULTIPLE
     $fieldset->add_field(new FormFieldMultipleSelectChoice('multiple_select', 'Liste déroulante multiple', array('1', '2'), array(new FormFieldSelectChoiceOption('Choix 1', '1'), new FormFieldSelectChoiceOption('Choix 2', '2'), new FormFieldSelectChoiceOption('Choix 3', '3')), array('required' => true)));
     $fieldset->add_field(new FormFieldTimezone('timezone', 'TimeZone', 'UTC+0'));
     $fieldset->add_field(new FormFieldAjaxSearchUserAutoComplete('user_completition', 'Auto complétion utilisateurs', ''));
     $fieldset->add_element(new FormButtonButton('Envoyer'));
     $fieldset2 = new FormFieldsetHTML('fieldset2', 'Fieldset 2');
     $form->add_fieldset($fieldset2);
     // CAPTCHA
     $fieldset2->add_field(new FormFieldCaptcha('captcha'));
     // HIDDEN
     $fieldset2->add_field(new FormFieldHidden('hidden', 'hidden'));
     // FREE FIELD
     $fieldset2->add_field(new FormFieldFree('free', 'Champ libre', 'Valeur champ libre', array()));
     // DATE
     $fieldset2->add_field(new FormFieldDate('date', 'Date', null, array('required' => true)));
     // DATE TIME
     $fieldset2->add_field(new FormFieldDateTime('date_time', 'Heure', null, array('required' => true)));
     // COLOR PICKER
     $fieldset2->add_field(new FormFieldColorPicker('color', 'Couleur', '#CC99FF'));
     // SEARCH
     $fieldset2->add_field(new FormFieldSearch('search', 'Recherche', ''));
     // FILE PICKER
     $fieldset2->add_field(new FormFieldFilePicker('file', 'Fichier'));
     // MULTIPLE FILE PICKER
     $fieldset2->add_field(new FormFieldMultipleFilePicker('multiple_files', 'Plusieurs Fichiers'));
     // UPLOAD FILE
     $fieldset2->add_field(new FormFieldUploadFile('upload_file', 'Lien vers un fichier', '', array('required' => true)));
     // UPLOAD PICTURE FILE
     $fieldset2->add_field(new FormFieldUploadPictureFile('upload_picture_file', 'Lien vers une image', '', array('required' => true)));
     // AUTH
     $fieldset3 = new FormFieldsetHTML('fieldset3', 'Autorisations');
     $auth_settings = new AuthorizationsSettings(array(new ActionAuthorization('Action 1', 1, 'Autorisations pour l\'action 1'), new ActionAuthorization('Action 2', 2)));
     $auth_settings->build_from_auth_array(array('r1' => 3, 'r0' => 2, 'm1' => 1, '1' => 2));
     $auth_setter = new FormFieldAuthorizationsSetter('auth', $auth_settings);
     $fieldset3->add_field($auth_setter);
     $form->add_fieldset($fieldset3);
     // VERTICAL FIELDSET
     $vertical_fieldset = new FormFieldsetVertical('fieldset4');
     $vertical_fieldset->set_description('Ceci est ma description');
     $form->add_fieldset($vertical_fieldset);
     $vertical_fieldset->add_field(new FormFieldTextEditor('alone', 'Texte', 'fieldset séparé'));
     $vertical_fieldset->add_field(new FormFieldCheckbox('cbhor', 'A cocher', FormFieldCheckbox::UNCHECKED));
     // HORIZONTAL FIELDSET
     $horizontal_fieldset = new FormFieldsetHorizontal('fieldset5');
     $horizontal_fieldset->set_description('Ceci est ma description');
     $form->add_fieldset($horizontal_fieldset);
     $horizontal_fieldset->add_field(new FormFieldTextEditor('texthor', 'Texte', 'fieldset séparé', array('required' => true)));
     $horizontal_fieldset->add_field(new FormFieldCheckbox('cbvert', 'A cocher', FormFieldCheckbox::CHECKED));
     // BUTTONS
     $buttons_fieldset = new FormFieldsetSubmit('buttons');
     $buttons_fieldset->add_element(new FormButtonReset());
     $this->preview_button = new FormButtonSubmit('Prévisualiser', 'preview', 'alert("Voulez-vous vraiment prévisualiser ?")');
     $buttons_fieldset->add_element($this->preview_button);
     $this->submit_button = new FormButtonDefaultSubmit();
     $buttons_fieldset->add_element($this->submit_button);
     $buttons_fieldset->add_element(new FormButtonButton('Bouton', 'alert("coucou");'));
     $form->add_fieldset($buttons_fieldset);
     // FORM CONSTRAINTS
     $form->add_constraint(new FormConstraintFieldsEquality($password, $password_bis));
     return $form;
 }
    private function build_form()
    {
        $form = new HTMLForm(__CLASS__);
        $severities = $this->config->get_severities();
        $fieldset = new FormFieldsetHTML('config', LangLoader::get_message('configuration', 'admin-common'));
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldNumberEditor('items_per_page', LangLoader::get_message('config.items_number_per_page', 'admin-common'), (int) $this->config->get_items_per_page(), array('min' => 1, 'max' => 50, 'required' => true), array(new FormFieldConstraintIntegerRange(1, 50))));
        $fieldset->add_field(new FormFieldColorPicker('fixed_bug_color', $this->lang['config.fixed_bug_color_label'], $this->config->get_fixed_bug_color(), array(), array(new FormFieldConstraintRegex('`^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$`i'))));
        $fieldset->add_field(new FormFieldColorPicker('rejected_bug_color', $this->lang['config.rejected_bug_color_label'], $this->config->get_rejected_bug_color(), array(), array(new FormFieldConstraintRegex('`^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$`i'))));
        $fieldset->add_field(new FormFieldCheckbox('roadmap_enabled', $this->lang['config.enable_roadmap'], $this->config->is_roadmap_enabled(), array('description' => $this->lang['explain.roadmap'])));
        $fieldset = new FormFieldsetHTML('progress_bar', $this->lang['config.progress_bar']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldCheckbox('progress_bar_displayed', $this->lang['config.enable_progress_bar'], $this->config->is_progress_bar_displayed(), array('events' => array('click' => '
				if (HTMLForms.getField("progress_bar_displayed").getValue()) {
					HTMLForms.getField("' . Bug::NEW_BUG . '").enable();
					HTMLForms.getField("' . Bug::PENDING . '").enable();
					HTMLForms.getField("' . Bug::ASSIGNED . '").enable();
					HTMLForms.getField("' . Bug::IN_PROGRESS . '").enable();
					HTMLForms.getField("' . Bug::REJECTED . '").enable();
					HTMLForms.getField("' . Bug::REOPEN . '").enable();
					HTMLForms.getField("' . Bug::FIXED . '").enable();
				} else {
					HTMLForms.getField("' . Bug::NEW_BUG . '").disable();
					HTMLForms.getField("' . Bug::PENDING . '").disable();
					HTMLForms.getField("' . Bug::ASSIGNED . '").disable();
					HTMLForms.getField("' . Bug::IN_PROGRESS . '").disable();
					HTMLForms.getField("' . Bug::REJECTED . '").disable();
					HTMLForms.getField("' . Bug::REOPEN . '").disable();
					HTMLForms.getField("' . Bug::FIXED . '").disable();
				}'))));
        foreach ($this->config->get_status_list() as $key => $value) {
            $fieldset->add_field(new FormFieldNumberEditor($key, $this->lang['config.status.' . $key], $value, array('min' => 0, 'max' => 100, 'step' => 10, 'required' => true, 'hidden' => !$this->config->is_progress_bar_displayed()), array(new FormFieldConstraintIntegerRange(0, 100))));
        }
        $fieldset = new FormFieldsetHTML('admin_alerts', $this->lang['config.admin_alerts']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldCheckbox('admin_alerts_enabled', $this->lang['config.enable_admin_alerts'], $this->config->are_admin_alerts_enabled(), array('events' => array('click' => '
				if (HTMLForms.getField("admin_alerts_enabled").getValue()) {
					HTMLForms.getField("admin_alerts_fix_action").enable();
					HTMLForms.getField("admin_alerts_levels").enable();
				} else {
					HTMLForms.getField("admin_alerts_fix_action").disable();
					HTMLForms.getField("admin_alerts_levels").disable();
				}'))));
        $fieldset->add_field(new FormFieldMultipleCheckbox('admin_alerts_levels', $this->lang['config.admin_alerts_levels'], $this->config->get_admin_alerts_levels(), $this->build_admin_alerts_levels($severities), array('hidden' => !$this->config->are_admin_alerts_enabled())));
        $fieldset->add_field(new FormFieldSimpleSelectChoice('admin_alerts_fix_action', $this->lang['config.admin_alerts_fix_action'], $this->config->get_admin_alerts_fix_action(), array(new FormFieldSelectChoiceOption($this->lang['labels.alert_fix'], BugtrackerConfig::FIX), new FormFieldSelectChoiceOption($this->lang['labels.alert_delete'], BugtrackerConfig::DELETE)), array('hidden' => !$this->config->are_admin_alerts_enabled())));
        $fieldset = new FormFieldsetHTML('stats', $this->lang['titles.stats']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldCheckbox('stats_enabled', $this->lang['config.enable_stats'], $this->config->are_stats_enabled(), array('events' => array('click' => '
				if (HTMLForms.getField("stats_enabled").getValue()) {
					HTMLForms.getField("stats_top_posters_enabled").enable();
					HTMLForms.getField("stats_top_posters_number").enable();
				} else {
					HTMLForms.getField("stats_top_posters_enabled").disable();
					HTMLForms.getField("stats_top_posters_number").disable();
				}'))));
        $fieldset->add_field(new FormFieldCheckbox('stats_top_posters_enabled', $this->lang['config.enable_stats_top_posters'], $this->config->are_stats_top_posters_enabled(), array('hidden' => !$this->config->are_stats_enabled(), 'events' => array('click' => '
				if (HTMLForms.getField("stats_top_posters_enabled").getValue()) {
					HTMLForms.getField("stats_top_posters_number").enable();
				} else {
					HTMLForms.getField("stats_top_posters_number").disable();
				}'))));
        $fieldset->add_field(new FormFieldNumberEditor('stats_top_posters_number', $this->lang['config.stats_top_posters_number'], (int) $this->config->get_stats_top_posters_number(), array('min' => 1, 'required' => true, 'hidden' => !$this->config->are_stats_top_posters_enabled()), array(new FormFieldConstraintRegex('`^[0-9]+$`i'))));
        $fieldset = new FormFieldsetHTML('pm', $this->lang['config.pm']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldCheckbox('pm_enabled', $this->lang['config.enable_pm'], $this->config->are_pm_enabled() ? FormFieldCheckbox::CHECKED : FormFieldCheckbox::UNCHECKED, array('events' => array('click' => '
				if (HTMLForms.getField("pm_enabled").getValue()) {
					HTMLForms.getField("pm_edit_enabled").enable();
					HTMLForms.getField("pm_delete_enabled").enable();
					HTMLForms.getField("pm_comment_enabled").enable();
					HTMLForms.getField("pm_in_progress_enabled").enable();
					HTMLForms.getField("pm_pending_enabled").enable();
					HTMLForms.getField("pm_assign_enabled").enable();
					HTMLForms.getField("pm_fix_enabled").enable();
					HTMLForms.getField("pm_reject_enabled").enable();
					HTMLForms.getField("pm_reopen_enabled").enable();
				} else {
					HTMLForms.getField("pm_edit_enabled").disable();
					HTMLForms.getField("pm_delete_enabled").disable();
					HTMLForms.getField("pm_comment_enabled").disable();
					HTMLForms.getField("pm_in_progress_enabled").disable();
					HTMLForms.getField("pm_pending_enabled").disable();
					HTMLForms.getField("pm_assign_enabled").disable();
					HTMLForms.getField("pm_fix_enabled").disable();
					HTMLForms.getField("pm_reject_enabled").disable();
					HTMLForms.getField("pm_reopen_enabled").disable();
				}'))));
        $fieldset->add_field(new FormFieldCheckbox('pm_edit_enabled', $this->lang['config.enable_pm.edit'], $this->config->are_pm_edit_enabled(), array('hidden' => !$this->config->are_pm_enabled())));
        $fieldset->add_field(new FormFieldCheckbox('pm_delete_enabled', $this->lang['config.enable_pm.delete'], $this->config->are_pm_delete_enabled(), array('hidden' => !$this->config->are_pm_enabled())));
        $fieldset->add_field(new FormFieldCheckbox('pm_comment_enabled', $this->lang['config.enable_pm.comment'], $this->config->are_pm_comment_enabled(), array('hidden' => !$this->config->are_pm_enabled())));
        $fieldset->add_field(new FormFieldCheckbox('pm_in_progress_enabled', $this->lang['config.enable_pm.in_progress'], $this->config->are_pm_in_progress_enabled(), array('hidden' => !$this->config->are_pm_enabled())));
        $fieldset->add_field(new FormFieldCheckbox('pm_pending_enabled', $this->lang['config.enable_pm.pending'], $this->config->are_pm_pending_enabled(), array('hidden' => !$this->config->are_pm_enabled())));
        $fieldset->add_field(new FormFieldCheckbox('pm_assign_enabled', $this->lang['config.enable_pm.assign'], $this->config->are_pm_assign_enabled(), array('hidden' => !$this->config->are_pm_enabled())));
        $fieldset->add_field(new FormFieldCheckbox('pm_fix_enabled', $this->lang['config.enable_pm.fix'], $this->config->are_pm_fix_enabled(), array('hidden' => !$this->config->are_pm_enabled())));
        $fieldset->add_field(new FormFieldCheckbox('pm_reject_enabled', $this->lang['config.enable_pm.reject'], $this->config->are_pm_reject_enabled(), array('hidden' => !$this->config->are_pm_enabled())));
        $fieldset->add_field(new FormFieldCheckbox('pm_reopen_enabled', $this->lang['config.enable_pm.reopen'], $this->config->are_pm_reopen_enabled(), array('hidden' => !$this->config->are_pm_enabled())));
        $fieldset = new FormFieldsetHTML('contents-value', $this->lang['titles.contents_value_title']);
        $fieldset->set_description($this->lang['explain.contents_value']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldRichTextEditor('contents_value', $this->lang['titles.contents_value'], $this->config->get_contents_value(), array('rows' => 8, 'cols' => 47)));
        $fieldset = new FormFieldsetHTML('types-fieldset', $this->lang['titles.types']);
        $fieldset->set_description($this->lang['explain.type'] . '<br /><br />' . $this->lang['explain.remarks']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldCheckbox('type_mandatory', $this->lang['labels.type_mandatory'], $this->config->is_type_mandatory()));
        $fieldset->add_field(new FormFieldCheckbox('display_type_column', $this->lang['config.display_type_column'], $this->config->is_type_column_displayed()));
        $fieldset->add_field(new FormFieldHTML('types_table', $this->build_types_table()->render()));
        $fieldset = new FormFieldsetHTML('categories-fieldset', $this->lang['titles.categories']);
        $fieldset->set_description($this->lang['explain.category'] . '<br /><br />' . $this->lang['explain.remarks']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldCheckbox('category_mandatory', $this->lang['labels.category_mandatory'], $this->config->is_category_mandatory()));
        $fieldset->add_field(new FormFieldCheckbox('display_category_column', $this->lang['config.display_category_column'], $this->config->is_category_column_displayed()));
        $fieldset->add_field(new FormFieldHTML('categories_table', $this->build_categories_table()->render()));
        $fieldset = new FormFieldsetHTML('severities-fieldset', $this->lang['titles.severities']);
        $fieldset->set_description($this->lang['explain.severity'] . '<br /><br />' . $this->lang['explain.remarks']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldCheckbox('severity_mandatory', $this->lang['labels.severity_mandatory'], $this->config->is_severity_mandatory()));
        $fieldset->add_field(new FormFieldHTML('severities_table', $this->build_severities_table()->render()));
        $fieldset = new FormFieldsetHTML('priorities-fieldset', $this->lang['titles.priorities']);
        $fieldset->set_description($this->lang['explain.priority'] . '<br /><br />' . $this->lang['explain.remarks']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldCheckbox('priority_mandatory', $this->lang['labels.priority_mandatory'], $this->config->is_priority_mandatory()));
        $fieldset->add_field(new FormFieldCheckbox('display_priority_column', $this->lang['config.display_priority_column'], $this->config->is_priority_column_displayed()));
        $fieldset->add_field(new FormFieldHTML('priorities_table', $this->build_priorities_table()->render()));
        $fieldset = new FormFieldsetHTML('versions-fieldset', $this->lang['titles.versions']);
        $fieldset->set_description($this->lang['explain.version'] . '<br /><br />' . $this->lang['explain.remarks']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldCheckbox('detected_in_version_mandatory', $this->lang['labels.detected_in_mandatory'], $this->config->is_detected_in_version_mandatory()));
        $fieldset->add_field(new FormFieldCheckbox('display_detected_in_column', $this->lang['config.display_detected_in_column'], $this->config->is_detected_in_column_displayed()));
        $fieldset->add_field(new FormFieldHTML('versions_table', $this->build_versions_table()->render()));
        $this->submit_button = new FormButtonDefaultSubmit();
        $form->add_button($this->submit_button);
        $form->add_button(new FormButtonReset());
        $this->form = $form;
    }
 private function build_form()
 {
     $form = new HTMLForm(__CLASS__);
     $fieldset = new FormFieldsetHTML('delete_' . $this->parameter, $this->lang['config.delete_parameter.' . $this->parameter]);
     $fieldset->set_description($this->lang['config.delete_parameter.description.' . $this->parameter]);
     $form->add_fieldset($fieldset);
     $fieldset->add_field(new FormFieldCheckbox('delete_parameter_and_content', $this->lang['config.delete_parameter.parameter_and_content.' . $this->parameter], FormFieldCheckbox::UNCHECKED));
     $fieldset->add_field(new FormFieldSimpleSelectChoice('move_into_another', $this->lang['config.delete_parameter.move_into_another'], '', $this->get_move_into_another_options()));
     $this->submit_button = new FormButtonDefaultSubmit();
     $form->add_button($this->submit_button);
     $form->add_button(new FormButtonReset());
     $this->form = $form;
 }
    private function build_form()
    {
        $form = new HTMLForm(__CLASS__);
        $fieldset = new FormFieldsetHTML('delete_category', $this->get_title());
        $fieldset->set_description($this->get_description());
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldCheckbox('delete_category_and_content', $this->lang['delete.category_and_content'], FormFieldCheckbox::UNCHECKED, array('events' => array('click' => '
		if (HTMLForms.getField("delete_category_and_content").getValue()) {
			HTMLForms.getField("move_in_other_cat").disable();
		} else { 
			HTMLForms.getField("move_in_other_cat").enable();
		}'))));
        $options = new SearchCategoryChildrensOptions();
        $options->add_category_in_excluded_categories($this->get_category()->get_id());
        $fieldset->add_field($this->get_categories_manager()->get_select_categories_form_field('move_in_other_cat', $this->lang['delete.move_in_other_cat'], $this->get_category()->get_id_parent(), $options));
        $this->submit_button = new FormButtonDefaultSubmit();
        $form->add_button($this->submit_button);
        $form->add_button(new FormButtonReset());
        $this->form = $form;
    }
    private function build_form()
    {
        $form = new HTMLForm(__CLASS__);
        $fieldset = new FormFieldsetHTML('members_config', $this->lang['members.config-members']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldCheckbox('members_activation', $this->lang['members.config.registration-activation'], $this->user_account_config->is_registration_enabled(), array('events' => array('change' => '
				if (HTMLForms.getField("members_activation").getValue()) {
					HTMLForms.getField("type_activation_members").enable();
					if (HTMLForms.getField("type_activation_members").getValue() != ' . UserAccountsConfig::ADMINISTRATOR_USER_ACCOUNTS_VALIDATION . ') {
						HTMLForms.getField("unactivated_accounts_timeout").enable();
					}
				} else { 
					HTMLForms.getField("type_activation_members").disable();
					HTMLForms.getField("unactivated_accounts_timeout").disable();
				}'))));
        $fieldset->add_field(new FormFieldSimpleSelectChoice('type_activation_members', $this->lang['members.config.type-activation'], (string) $this->user_account_config->get_member_accounts_validation_method(), array(new FormFieldSelectChoiceOption($this->lang['members.config.type-activation.auto'], UserAccountsConfig::AUTOMATIC_USER_ACCOUNTS_VALIDATION), new FormFieldSelectChoiceOption($this->lang['members.config.type-activation.mail'], UserAccountsConfig::MAIL_USER_ACCOUNTS_VALIDATION), new FormFieldSelectChoiceOption($this->lang['members.config.type-activation.admin'], UserAccountsConfig::ADMINISTRATOR_USER_ACCOUNTS_VALIDATION)), array('hidden' => !$this->user_account_config->is_registration_enabled(), 'events' => array('change' => '
				if (HTMLForms.getField("type_activation_members").getValue() != ' . UserAccountsConfig::ADMINISTRATOR_USER_ACCOUNTS_VALIDATION . ') {
					HTMLForms.getField("unactivated_accounts_timeout").enable();
				} else { 
					HTMLForms.getField("unactivated_accounts_timeout").disable();
				}'))));
        $fieldset->add_field(new FormFieldNumberEditor('unactivated_accounts_timeout', $this->lang['members.config.unactivated-accounts-timeout'], (int) $this->user_account_config->get_unactivated_accounts_timeout(), array('min' => 1, 'max' => 365, 'description' => $this->lang['members.config.unactivated-accounts-timeout-explain'], 'hidden' => !$this->user_account_config->is_registration_enabled() || $this->user_account_config->get_member_accounts_validation_method() == UserAccountsConfig::ADMINISTRATOR_USER_ACCOUNTS_VALIDATION), array(new FormFieldConstraintRegex('`^[0-9]+$`i'))));
        $fieldset = new FormFieldsetHTML('security_config', $this->lang['members.config-security']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldNumberEditor('internal_password_min_length', $this->lang['security.config.internal-password-min-length'], $this->security_config->get_internal_password_min_length(), array('min' => 6, 'max' => 30), array(new FormFieldConstraintRegex('`^[0-9]+$`i'), new FormFieldConstraintIntegerRange(6, 30))));
        $fieldset->add_field(new FormFieldSimpleSelectChoice('internal_password_strength', $this->lang['security.config.internal-password-strength'], $this->security_config->get_internal_password_strength(), array(new FormFieldSelectChoiceOption($this->lang['security.config.internal-password-strength.weak'], SecurityConfig::PASSWORD_STRENGTH_WEAK), new FormFieldSelectChoiceOption($this->lang['security.config.internal-password-strength.medium'], SecurityConfig::PASSWORD_STRENGTH_MEDIUM), new FormFieldSelectChoiceOption($this->lang['security.config.internal-password-strength.strong'], SecurityConfig::PASSWORD_STRENGTH_STRONG))));
        $fieldset->add_field(new FormFieldCheckbox('login_and_email_forbidden_in_password', $this->lang['security.config.login-and-email-forbidden-in-password'], $this->security_config->are_login_and_email_forbidden_in_password()));
        $fieldset = new FormFieldsetHTML('authentication_config', $this->lang['members.config-authentication']);
        $form->add_fieldset($fieldset);
        if ($this->server_configuration->has_curl_library()) {
            $fieldset->add_field(new FormFieldCheckbox('fb_auth_enabled', $this->lang['authentication.config.fb-auth-enabled'], $this->authentication_config->is_fb_auth_enabled(), array('description' => $this->lang['authentication.config.fb-auth-enabled-explain'], 'events' => array('click' => '
					if (HTMLForms.getField("fb_auth_enabled").getValue()) { 
						HTMLForms.getField("fb_app_id").enable(); 
						HTMLForms.getField("fb_app_key").enable(); 
					} else { 
						HTMLForms.getField("fb_app_id").disable(); 
						HTMLForms.getField("fb_app_key").disable(); 
					}'))));
            $fieldset->add_field(new FormFieldTextEditor('fb_app_id', $this->lang['authentication.config.fb-app-id'], $this->authentication_config->get_fb_app_id(), array('required' => true, 'hidden' => !$this->authentication_config->is_fb_auth_enabled())));
            $fieldset->add_field(new FormFieldPasswordEditor('fb_app_key', $this->lang['authentication.config.fb-app-key'], $this->authentication_config->get_fb_app_key(), array('required' => true, 'hidden' => !$this->authentication_config->is_fb_auth_enabled())));
            $fieldset->add_field(new FormFieldCheckbox('google_auth_enabled', $this->lang['authentication.config.google-auth-enabled'], $this->authentication_config->is_google_auth_enabled(), array('description' => $this->lang['authentication.config.google-auth-enabled-explain'], 'events' => array('click' => '
					if (HTMLForms.getField("google_auth_enabled").getValue()) { 
						HTMLForms.getField("google_client_id").enable(); 
						HTMLForms.getField("google_client_secret").enable(); 
					} else { 
						HTMLForms.getField("google_client_id").disable(); 
						HTMLForms.getField("google_client_secret").disable(); 
					}'))));
            $fieldset->add_field(new FormFieldTextEditor('google_client_id', $this->lang['authentication.config.google-client-id'], $this->authentication_config->get_google_client_id(), array('required' => true, 'hidden' => !$this->authentication_config->is_google_auth_enabled())));
            $fieldset->add_field(new FormFieldPasswordEditor('google_client_secret', $this->lang['authentication.config.google-client-secret'], $this->authentication_config->get_google_client_secret(), array('required' => true, 'hidden' => !$this->authentication_config->is_google_auth_enabled())));
        } else {
            $fieldset->add_field(new FormFieldFree('', '', MessageHelper::display($this->lang['authentication.config.curl_extension_disabled'], MessageHelper::WARNING)->render()));
        }
        $fieldset = new FormFieldsetHTML('avatar_management', $this->lang['members.config.avatars-management']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldCheckbox('upload_avatar_server', $this->lang['members.config.upload-avatar-server-authorization'], $this->user_account_config->is_avatar_upload_enabled()));
        $fieldset->add_field(new FormFieldCheckbox('activation_resize_avatar', $this->lang['members.config.activation-resize-avatar'], $this->user_account_config->is_avatar_auto_resizing_enabled(), array('description' => $this->lang['members.activation-resize-avatar-explain'])));
        $fieldset->add_field(new FormFieldNumberEditor('maximal_width_avatar', $this->lang['members.config.maximal-width-avatar'], $this->user_account_config->get_max_avatar_width(), array('description' => $this->lang['members.config.maximal-width-avatar-explain']), array(new FormFieldConstraintRegex('`^[0-9]+$`i'))));
        $fieldset->add_field(new FormFieldNumberEditor('maximal_height_avatar', $this->lang['members.config.maximal-height-avatar'], $this->user_account_config->get_max_avatar_height(), array('description' => $this->lang['members.config.maximal-height-avatar-explain']), array(new FormFieldConstraintRegex('`^[0-9]+$`i'))));
        $fieldset->add_field(new FormFieldNumberEditor('maximal_weight_avatar', $this->lang['members.config.maximal-weight-avatar'], $this->user_account_config->get_max_avatar_weight(), array('description' => $this->lang['members.config.maximal-weight-avatar-explain']), array(new FormFieldConstraintRegex('`^[0-9]+$`i'))));
        $fieldset->add_field(new FormFieldCheckbox('default_avatar_activation', $this->lang['members.config.default-avatar-activation'], $this->user_account_config->is_default_avatar_enabled(), array('description' => $this->lang['members.config.default-avatar-activation-explain'])));
        $default_avatar_link = $this->user_account_config->get_default_avatar_name();
        $fieldset->add_field(new FormFieldTextEditor('default_avatar_link', $this->lang['members.config.default-avatar-link'], $default_avatar_link, array('description' => $this->lang['members.default-avatar-link-explain'], 'events' => array('change' => 'jQuery("#img_avatar").attr("src", "' . TPL_PATH_TO_ROOT . '/templates/' . AppContext::get_current_user()->get_theme() . '/images/" + HTMLForms.getField("default_avatar_link").getValue())'))));
        $fieldset->add_field(new FormFieldFree('preview', LangLoader::get_message('preview', 'main'), '<img id="img_avatar" src="' . Url::to_rel('/templates/' . AppContext::get_current_user()->get_theme() . '/images/' . $default_avatar_link) . '" alt="' . LangLoader::get_message('preview', 'main') . '" title="' . LangLoader::get_message('preview', 'main') . '" />'));
        $fieldset = new FormFieldsetHTML('authorization', $this->lang['members.config.authorization']);
        $form->add_fieldset($fieldset);
        $auth_settings = new AuthorizationsSettings(array(new ActionAuthorization($this->lang['members.config.authorization-read-member-profile'], UserAccountsConfig::AUTH_READ_MEMBERS_BIT)));
        $auth_settings->build_from_auth_array($this->user_account_config->get_auth_read_members());
        $auth_setter = new FormFieldAuthorizationsSetter('authorizations', $auth_settings);
        $fieldset->add_field($auth_setter);
        $fieldset = new FormFieldsetHTML('welcome_message', $this->lang['members.config.welcome-message']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldRichTextEditor('welcome_message_contents', $this->lang['members.config.welcome-message-content'], $this->user_account_config->get_welcome_message(), array('rows' => 8, 'cols' => 47)));
        $fieldset = new FormFieldsetHTML('members_rules', $this->lang['members.rules']);
        $fieldset->set_description($this->lang['members.rules.registration-agreement-description']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldRichTextEditor('registration_agreement', $this->lang['members.rules.registration-agreement'], UserAccountsConfig::load()->get_registration_agreement(), array('rows' => 8, 'cols' => 47)));
        $this->submit_button = new FormButtonDefaultSubmit();
        $form->add_button($this->submit_button);
        $form->add_button(new FormButtonReset());
        $this->form = $form;
    }
Example #10
0
 private function add_catpcha_protection()
 {
     $captcha_protection_fieldset = new FormFieldsetHTML('captcha_fieldset');
     $captcha_protection_fieldset->add_field(new FormFieldCaptcha());
     $this->add_fieldset($captcha_protection_fieldset);
 }