Esempio n. 1
0
/**
 * @param array $fields
 * @param array $values
 * @param DefaultFormContainer $form_container
 * @param DefaultForm $form
 * @param bool $search
 */
function output_custom_profile_fields($fields, $values, &$form_container, &$form, $search = false)
{
    global $lang;
    if (!is_array($fields)) {
        return;
    }
    foreach ($fields as $profile_field) {
        $profile_field['name'] = htmlspecialchars_uni($profile_field['name']);
        $profile_field['description'] = htmlspecialchars_uni($profile_field['description']);
        $profile_field['type'] = htmlspecialchars_uni($profile_field['type']);
        list($type, $options) = explode("\n", $profile_field['type'], 2);
        $type = trim($type);
        $field_name = "fid{$profile_field['fid']}";
        switch ($type) {
            case "multiselect":
                if (!is_array($values[$field_name])) {
                    $user_options = explode("\n", $values[$field_name]);
                } else {
                    $user_options = $values[$field_name];
                }
                $selected_options = array();
                foreach ($user_options as $val) {
                    $selected_options[$val] = $val;
                }
                $select_options = explode("\n", $options);
                $options = array();
                if ($search == true) {
                    $select_options[''] = $lang->na;
                }
                foreach ($select_options as $val) {
                    $val = trim($val);
                    $options[$val] = $val;
                }
                if (!$profile_field['length']) {
                    $profile_field['length'] = 3;
                }
                $code = $form->generate_select_box("profile_fields[{$field_name}][]", $options, $selected_options, array('id' => "profile_field_{$field_name}", 'multiple' => true, 'size' => $profile_field['length']));
                break;
            case "select":
                $select_options = array();
                if ($search == true) {
                    $select_options[''] = $lang->na;
                }
                $select_options += explode("\n", $options);
                $options = array();
                foreach ($select_options as $val) {
                    $val = trim($val);
                    $options[$val] = $val;
                }
                if (!$profile_field['length']) {
                    $profile_field['length'] = 1;
                }
                if ($search == true) {
                    $code = $form->generate_select_box("profile_fields[{$field_name}][{$field_name}]", $options, $values[$field_name], array('id' => "profile_field_{$field_name}", 'size' => $profile_field['length']));
                } else {
                    $code = $form->generate_select_box("profile_fields[{$field_name}]", $options, $values[$field_name], array('id' => "profile_field_{$field_name}", 'size' => $profile_field['length']));
                }
                break;
            case "radio":
                $radio_options = array();
                if ($search == true) {
                    $radio_options[''] = $lang->na;
                }
                $radio_options += explode("\n", $options);
                $code = '';
                foreach ($radio_options as $val) {
                    $val = trim($val);
                    $code .= $form->generate_radio_button("profile_fields[{$field_name}]", $val, $val, array('id' => "profile_field_{$field_name}", 'checked' => $val == $values[$field_name] ? true : false)) . "<br />";
                }
                break;
            case "checkbox":
                if (!is_array($values[$field_name])) {
                    $user_options = explode("\n", $values[$field_name]);
                } else {
                    $user_options = $values[$field_name];
                }
                foreach ($user_options as $val) {
                    $selected_options[$val] = $val;
                }
                $select_options = array();
                if ($search == true) {
                    $select_options[''] = $lang->na;
                }
                $select_options += explode("\n", $options);
                $code = '';
                foreach ($select_options as $val) {
                    $val = trim($val);
                    $code .= $form->generate_check_box("profile_fields[{$field_name}][]", $val, $val, array('id' => "profile_field_{$field_name}", 'checked' => $val == $selected_options[$val] ? true : false)) . "<br />";
                }
                break;
            case "textarea":
                $extra = '';
                if (isset($mybb->input['action']) && $mybb->input['action'] == "search") {
                    $extra = " {$lang->or} " . $form->generate_check_box("profile_fields[{$field_name}_blank]", 1, $lang->is_not_blank, array('id' => "{$field_name}_blank", 'checked' => $values[$field_name . '_blank']));
                }
                $code = $form->generate_text_area("profile_fields[{$field_name}]", $values[$field_name], array('id' => "profile_field_{$field_name}", 'rows' => 6, 'cols' => 50)) . $extra;
                break;
            default:
                $extra = '';
                if (isset($mybb->input['action']) && $mybb->input['action'] == "search") {
                    $extra = " {$lang->or} " . $form->generate_check_box("profile_fields[{$field_name}_blank]", 1, $lang->is_not_blank, array('id' => "{$field_name}_blank", 'checked' => $values[$field_name . '_blank']));
                }
                $code = $form->generate_text_box("profile_fields[{$field_name}]", $values[$field_name], array('id' => "profile_field_{$field_name}", 'maxlength' => $profile_field['maxlength'], 'length' => $profile_field['length'])) . $extra;
                break;
        }
        $form_container->output_row($profile_field['name'], $profile_field['description'], $code, "", array('id' => "profile_field_{$field_name}"));
        $code = $user_options = $selected_options = $radio_options = $val = $options = '';
    }
}
Esempio n. 2
0
    } else {
        // Usergroup query because no All option
        $usergroups['-1'] = "All";
        $usergroupquery = $db->simple_select("usergroups", "gid,title");
        while ($group = $db->fetch_array($usergroupquery)) {
            $usergroups[$group['gid']] = $group['title'];
        }
        $form = new DefaultForm("index.php?module=style-theme_vars&amp;action=create", "post");
        $form_container = new FormContainer("Create");
        $form_container->output_row("Unique Name <em>*</em>", "Enter a unique name for the variable.", $form->generate_text_box("unique_name", $mybb->get_input("unique_name")), "unique_name");
        $form_container->output_row("Name <em>*</em>", "Enter the readable name of the variable.", $form->generate_text_box("name", $mybb->get_input("name")), "name");
        $form_container->output_row("Theme ", "Which theme the variable belongs to.", $form->generate_select_box("tid", $themearray, $mybb->get_input("tid")), "tid");
        $form_container->output_row("Active", "If no, this variable will not be replaced.", $form->generate_select_box("active", array("1" => "Yes", "0" => "No"), $mybb->get_input("active")), "active");
        $form_container->output_row("Forums", "Select which forums this variable will work in.", $form->generate_forum_select("forums[]", -1, array("main_option" => "All", "multiple" => "multiple")), "forums");
        $form_container->output_row("Usergroups", "Select which usergroups will see the content.", $form->generate_select_box("usergroups[]", $usergroups, -1, array("multiple" => "multiple")), "usergroups");
        $form_container->output_row("Content <em>*</em>", "This is the content users will see.", $form->generate_text_area("content", ""), "content");
        $form_container->end();
        $form->output_submit_wrapper(array($form->generate_submit_button("Create Variable")));
        $form->end();
    }
}
if ($mybb->input['action'] == "copy" && $mybb->input['vid']) {
    $vid = (int) $mybb->get_input("vid");
    $variablequery = $db->simple_select("theme_variables", "*", "vid={$vid}");
    $info = $db->fetch_array($variablequery);
    if (!$info['vid']) {
        flash_message("Invalid variable.", "error");
        admin_redirect("index.php?module=style-theme_vars");
    }
    $page->add_breadcrumb_item("Copy Variable");
    $page->output_header("Theme Variable Manager");