function cimy_registration_form($errors = null, $show_type = 0)
{
    global $wpdb, $start_cimy_uef_comment, $end_cimy_uef_comment, $rule_maxlen_needed, $fields_name_prefix, $wp_fields_name_prefix, $cuef_plugin_dir, $cimy_uef_file_types, $cimy_uef_textarea_types, $user_level, $cimy_uef_domain, $cimy_uef_file_images_types, $cimy_uef_text_types;
    if (cimy_is_at_least_wordpress35()) {
        cimy_switch_to_blog();
    }
    $my_user_level = $user_level;
    // -1 == anonymous
    if (!is_user_logged_in()) {
        $my_user_level = -1;
    }
    $extra_fields = get_cimyFields(false, true);
    $wp_fields = get_cimyFields(true);
    if (is_multisite()) {
        $input_class = "cimy_uef_input_mu";
    } else {
        $input_class = "cimy_uef_input_27";
    }
    $options = cimy_get_options();
    $tabindex = 21;
    echo $start_cimy_uef_comment;
    // needed to apply default values only first time and not in case of errors
    echo "\t<input type=\"hidden\" name=\"cimy_post\" value=\"1\" />\n";
    if ($options['confirm_form']) {
        if ($show_type == 0) {
            echo "\t<input type=\"hidden\" name=\"register_confirmation\" value=\"1\" />\n";
        } else {
            if ($show_type == 2) {
                echo "\t<input type=\"hidden\" name=\"register_confirmation\" value=\"2\" />\n";
            }
        }
    }
    $radio_checked = array();
    $i = 1;
    // confirmation page, all fields are plain text + hidden fields to carry over values
    if ($show_type == 2) {
        $user_email = $_POST["user_email"];
        if (in_array("username", $options["wp_hidden_fields"])) {
            $username = $_POST["user_login"];
            ?>
			<p id="user_login_p">
				<label for="user_login"><?php 
            _e("Username");
            ?>
 </label><?php 
            echo esc_html($username);
            ?>
			</p>
<?php 
        } else {
            $username = $user_email;
        }
        $upload_dir = cimy_uef_get_dir_or_filename("");
        $dirs = glob($upload_dir . ".cimytemp_*.tmp");
        if (is_array($dirs)) {
            foreach ($dirs as $dir) {
                $diff = current_time('timestamp', true) - filemtime($dir);
                // If older than two days delete!
                if ($diff > 172800) {
                    cimy_rfr($dir . "/", "*");
                    if (is_dir($dir)) {
                        rmdir($dir);
                    }
                }
            }
        }
        $temp_user_login = "******" . sanitize_user($username) . '_' . rand() . '.tmp';
        ?>
		<input type="hidden" name="temp_user_login" value="<?php 
        echo esc_attr($temp_user_login);
        ?>
" />
		<input type="hidden" name="user_login" id="user_login" value="<?php 
        echo esc_attr($username);
        ?>
" />
		<p id="user_email_p">
			<label for="user_email"><?php 
        _e("E-mail");
        ?>
 </label><input type="hidden" name="user_email" id="user_email" value="<?php 
        echo esc_attr($user_email);
        ?>
" /><?php 
        echo esc_html($user_email);
        ?>
		</p>
		<br />
<?php 
    }
    // do first the WP fields then the EXTRA fields
    while ($i <= 2) {
        if ($i == 1) {
            $fields = $wp_fields;
            $prefix = $wp_fields_name_prefix;
        } else {
            $fields = $extra_fields;
            $prefix = $fields_name_prefix;
            $current_fieldset = -1;
            if (!empty($options['fieldset_title'])) {
                $fieldset_titles = explode(',', $options['fieldset_title']);
            } else {
                $fieldset_titles = array();
            }
        }
        $tiny_mce_objects = "";
        foreach ($fields as $thisField) {
            $field_id = $thisField['ID'];
            $name = $thisField['NAME'];
            $rules = $thisField['RULES'];
            $type = $thisField['TYPE'];
            $old_type = $type;
            $label = cimy_wpml_translate_string($name . "_label", $thisField["LABEL"]);
            $description = cimy_uef_sanitize_content(cimy_wpml_translate_string($name . "_desc", $thisField["DESCRIPTION"]));
            $fieldset = empty($thisField['FIELDSET']) ? 0 : $thisField['FIELDSET'];
            $maxlen = 0;
            $unique_id = $prefix . $field_id;
            $input_name = $prefix . esc_attr($name);
            $field_id_data = $input_name . "_" . $field_id . "_data";
            $advanced_options = cimy_uef_parse_advanced_options($rules["advanced_options"]);
            // do not dupe username
            if ($i == 1 && $name == "USERNAME") {
                continue;
            }
            // showing the search then there is no need for upload buttons
            if ($show_type == 1) {
                if ($type == "password") {
                    continue;
                }
                if (in_array($type, $cimy_uef_file_types)) {
                    $type = "text";
                }
            } else {
                if ($show_type == 2) {
                    $type = "hidden";
                }
            }
            // if the current user LOGGED IN has not enough permissions to see the field, skip it
            if ($rules['show_level'] == 'view_cimy_extra_fields') {
                if (!current_user_can($rules['show_level'])) {
                    continue;
                }
            } else {
                if ($my_user_level < $rules['show_level']) {
                    continue;
                }
            }
            // if show_level == anonymous then do NOT ovverride other show_xyz rules
            if ($rules['show_level'] == -1) {
                if ($show_type == 0 || $show_type == 2) {
                    // if flag to show the field in the registration is NOT activated, skip it
                    if (!$rules['show_in_reg']) {
                        continue;
                    }
                } else {
                    if ($show_type == 1) {
                        // if flag to show the field in the blog is NOT activated, skip it
                        if (!$rules['show_in_search']) {
                            continue;
                        }
                    }
                }
            }
            // uploading a file is not supported when confirmation email is enabled (on MS is turned on by default yes)
            if ((is_multisite() || $options["confirm_email"]) && in_array($type, $cimy_uef_file_types)) {
                continue;
            }
            if (isset($_POST[$input_name])) {
                if ($type == "dropdown-multi" || $old_type == "dropdown-multi") {
                    $value = stripslashes(implode(",", $_POST[$input_name]));
                } else {
                    $value = stripslashes($_POST[$input_name]);
                }
            } else {
                if (isset($_GET[$name])) {
                    if ($type == "dropdown-multi" || $old_type == "dropdown-multi") {
                        $value = stripslashes(implode(",", $_GET[$name]));
                    } else {
                        $value = stripslashes($_GET[$name]);
                    }
                } else {
                    if (!isset($_POST["cimy_post"])) {
                        $value = $thisField['VALUE'];
                        switch ($type) {
                            case "radio":
                                if ($value == "YES") {
                                    $value = $field_id;
                                } else {
                                    $value = "";
                                }
                                break;
                            case "checkbox":
                                if ($value == "YES") {
                                    $value = "1";
                                } else {
                                    $value = "";
                                }
                                break;
                        }
                    } else {
                        $value = "";
                    }
                }
            }
            if ($i != 1 && $fieldset > $current_fieldset && isset($fieldset_titles[$fieldset])) {
                $current_fieldset = $fieldset;
                if (isset($fieldset_titles[$current_fieldset])) {
                    echo "\n\t<h2>" . esc_html(cimy_wpml_translate_string("a_opt_fieldset_title_" . $current_fieldset, $fieldset_titles[$current_fieldset])) . "</h2>\n";
                }
            }
            if (!empty($description) && $type != "registration-date") {
                echo "\t";
                echo '<p id="' . $prefix . 'p_desc_' . $field_id . '" class="description"><br />' . $description . '</p>';
                echo "\n";
            }
            echo "\t";
            echo '<p id="' . $prefix . 'p_field_' . $field_id . '">';
            echo "\n\t";
            $obj_class = "";
            switch ($type) {
                case "date":
                    $obj_class = " datepicker";
                case "picture-url":
                case "password":
                case "text":
                    $obj_label = '<label for="' . $unique_id . '">' . cimy_uef_sanitize_content($label) . '</label>';
                    $obj_class = ' class="' . $input_class . $obj_class . '"';
                    $obj_name = ' name="' . $input_name . '"';
                    if (in_array($type, $cimy_uef_text_types)) {
                        $obj_type = ' type="text"';
                    } else {
                        $obj_type = ' type="' . $type . '"';
                    }
                    $obj_value = ' value="' . esc_attr($value) . '"';
                    $obj_value2 = "";
                    $obj_checked = "";
                    $obj_tag = "input";
                    $obj_closing_tag = false;
                    break;
                case "dropdown":
                case "dropdown-multi":
                    // cimy_dropDownOptions uses cimy_uef_sanitize_content and esc_attr by itself
                    $ret = cimy_dropDownOptions($label, $value);
                    $label = $ret['label'];
                    $html = $ret['html'];
                    if ($type == "dropdown-multi") {
                        $obj_name = ' name="' . $input_name . '[]" multiple="multiple" size="6"';
                    } else {
                        $obj_name = ' name="' . $input_name . '"';
                    }
                    $obj_label = '<label for="' . $unique_id . '">' . $label . '</label>';
                    $obj_class = ' class="' . $input_class . '"';
                    $obj_type = '';
                    $obj_value = '';
                    $obj_value2 = $html;
                    $obj_checked = "";
                    $obj_tag = "select";
                    $obj_closing_tag = true;
                    break;
                case "textarea":
                    $obj_label = '<label for="' . $unique_id . '">' . cimy_uef_sanitize_content($label) . '</label>';
                    $obj_class = ' class="' . $input_class . '"';
                    $obj_name = ' name="' . $input_name . '"';
                    $obj_type = "";
                    $obj_value = "";
                    $obj_value2 = esc_html($value);
                    $obj_checked = "";
                    $obj_tag = "textarea";
                    $obj_closing_tag = true;
                    break;
                case "textarea-rich":
                    if (empty($tiny_mce_objects)) {
                        $tiny_mce_objects = $fields_name_prefix . $field_id;
                    } else {
                        $tiny_mce_objects .= "," . $fields_name_prefix . $field_id;
                    }
                    $obj_label = '<label for="' . $unique_id . '">' . cimy_uef_sanitize_content($label) . '</label>';
                    $obj_class = ' class="' . $input_class . '"';
                    $obj_name = ' name="' . $input_name . '"';
                    $obj_type = "";
                    $obj_value = "";
                    $obj_value2 = esc_html($value);
                    $obj_checked = "";
                    $obj_tag = "textarea";
                    $obj_closing_tag = true;
                    break;
                case "checkbox":
                    $obj_label = '<label class="cimy_uef_label_checkbox" for="' . $unique_id . '"> ' . cimy_uef_sanitize_content($label) . '</label><br />';
                    $obj_class = ' class="cimy_uef_checkbox"';
                    $obj_name = ' name="' . $input_name . '"';
                    $obj_type = ' type="' . $type . '"';
                    $obj_value = ' value="1"';
                    $obj_value2 = "";
                    $value == "1" ? $obj_checked = ' checked="checked"' : ($obj_checked = '');
                    $obj_tag = "input";
                    $obj_closing_tag = false;
                    break;
                case "radio":
                    $obj_label = '<label class="cimy_uef_label_radio" for="' . $unique_id . '"> ' . cimy_uef_sanitize_content($label) . '</label>';
                    $obj_class = ' class="cimy_uef_radio"';
                    $obj_name = ' name="' . $input_name . '"';
                    $obj_type = ' type="' . $type . '"';
                    $obj_value = ' value="' . $field_id . '"';
                    $obj_value2 = "";
                    $obj_tag = "input";
                    $obj_closing_tag = false;
                    // do not check if another check was done
                    if (intval($value) == intval($field_id) && !in_array($name, $radio_checked)) {
                        $obj_checked = ' checked="checked"';
                        $radio_checked += array($name => true);
                    } else {
                        $obj_checked = '';
                    }
                    break;
                case "avatar":
                case "picture":
                case "file":
                    $allowed_exts = '';
                    if (isset($rules['equal_to'])) {
                        if ($rules['equal_to'] != "") {
                            $allowed_exts = "'" . implode("', '", explode(",", $rules['equal_to'])) . "'";
                        }
                    }
                    if ($type == "file") {
                        // if we do not escape then some translations can break
                        $warning_msg = esc_js(__("Please upload a file with one of the following extensions", $cimy_uef_domain));
                        $obj_checked = ' onchange="uploadFile(\'registerform\', \'' . $unique_id . '\', \'' . $warning_msg . '\', Array(' . $allowed_exts . '));"';
                    } else {
                        // if we do not escape then some translations can break
                        $warning_msg = esc_js(__("Please upload an image with one of the following extensions", $cimy_uef_domain));
                        $allowed_exts = "'" . implode("','", cimy_uef_get_allowed_image_extensions()) . "'";
                        $obj_checked = ' onchange="uploadFile(\'registerform\', \'' . $unique_id . '\', \'' . $warning_msg . '\', Array(' . $allowed_exts . '));"';
                    }
                    $obj_label = '<label for="' . $unique_id . '">' . cimy_uef_sanitize_content($label) . ' </label>';
                    $obj_class = ' class="cimy_uef_picture"';
                    $obj_name = ' name="' . $input_name . '"';
                    $obj_type = ' type="file"';
                    $obj_value = ' value="' . esc_attr($value) . '"';
                    $obj_value2 = "";
                    $obj_tag = "input";
                    $obj_closing_tag = false;
                    break;
                case "hidden":
                    $obj_label = "";
                    $obj_value2 = "";
                    switch ($old_type) {
                        case 'checkbox':
                            $value == 1 ? $obj_value2 = __("YES", $cimy_uef_domain) : ($obj_value2 = __("NO", $cimy_uef_domain));
                            break;
                        case 'radio':
                            intval($value) == intval($field_id) ? $obj_value2 = __("YES", $cimy_uef_domain) : ($obj_value2 = __("NO", $cimy_uef_domain));
                            break;
                        case 'dropdown':
                        case 'dropdown-multi':
                            $ret = cimy_dropDownOptions($label, $value);
                            $label = $ret['label'];
                            break;
                        case 'picture':
                        case 'avatar':
                        case 'file':
                            if ($old_type == "avatar") {
                                // since avatars are drawn max to 512px then we can save bandwith resizing, do it!
                                $rules['equal_to'] = 512;
                            }
                            $value = cimy_manage_upload($input_name, $temp_user_login, $rules, false, false, $old_type, !empty($advanced_options["filename"]) ? $advanced_options["filename"] : "");
                            $file_on_server = cimy_uef_get_dir_or_filename($temp_user_login, $value, false);
                            $file_thumb = cimy_uef_get_dir_or_filename($temp_user_login, $value, true);
                            if (!empty($advanced_options["no-thumb"]) && is_file($file_thumb)) {
                                rename($file_thumb, $file_on_server);
                            }
                            // yea little trick
                            empty($value) ? $obj_value2 = "&nbsp;" : ($obj_value2 = esc_html(basename($value)));
                            break;
                    }
                    if ($old_type != "password") {
                        $obj_label = '<label for="' . $unique_id . '">' . cimy_uef_sanitize_content($label) . ' </label>';
                        if (empty($obj_value2)) {
                            $obj_value2 = cimy_uef_sanitize_content($value);
                        }
                    }
                    $obj_class = '';
                    $obj_name = ' name="' . $input_name . '"';
                    $obj_type = ' type="hidden"';
                    $obj_value = ' value="' . esc_attr($value) . '"';
                    $obj_checked = "";
                    $obj_tag = "input";
                    $obj_closing_tag = false;
                    break;
                case "registration-date":
                    $obj_label = '';
                    $obj_class = '';
                    $obj_name = ' name="' . $input_name . '"';
                    $obj_type = ' type="hidden"';
                    $obj_value = ' value="' . esc_attr($value) . '"';
                    $obj_value2 = "";
                    $obj_checked = "";
                    $obj_tag = "input";
                    $obj_closing_tag = false;
                    break;
            }
            $obj_id = ' id="' . $unique_id . '"';
            // tabindex not used in MU, WordPress 3.5+ and Theme My Login dropping...
            if (is_multisite() || cimy_is_at_least_wordpress35() || cimy_uef_is_theme_my_login_register_page()) {
                $obj_tabindex = "";
            } else {
                $obj_tabindex = ' tabindex="' . strval($tabindex) . '"';
                $tabindex++;
            }
            $obj_maxlen = "";
            if (in_array($type, $rule_maxlen_needed) && !in_array($type, $cimy_uef_file_types)) {
                if (isset($rules['max_length'])) {
                    $obj_maxlen = ' maxlength="' . $rules['max_length'] . '"';
                } else {
                    if (isset($rules['exact_length'])) {
                        $obj_maxlen = ' maxlength="' . $rules['exact_length'] . '"';
                    }
                }
            }
            if (in_array($type, $cimy_uef_textarea_types)) {
                $obj_rowscols = ' rows="3" cols="25"';
            } else {
                $obj_rowscols = '';
            }
            echo "\t";
            $form_object = '<' . $obj_tag . $obj_type . $obj_name . $obj_id . $obj_class . $obj_value . $obj_checked . $obj_maxlen . $obj_rowscols . $obj_tabindex;
            if ($obj_closing_tag) {
                $form_object .= ">" . $obj_value2 . "</" . $obj_tag . ">";
            } else {
                if ($type == "hidden") {
                    $form_object .= " />" . $obj_value2;
                    if (in_array($old_type, $cimy_uef_file_types)) {
                        $f_size = empty($_FILES[$input_name]['size']) ? 0 : $_FILES[$input_name]['size'];
                        $f_type = empty($_FILES[$input_name]['type']) ? "" : $_FILES[$input_name]['type'];
                        echo "<input type=\"hidden\" name=\"" . esc_attr($field_id_data) . "_size\" id=\"" . esc_attr($field_id_data) . "_size\" value=\"" . esc_attr(strval($f_size / 1024)) . "\" />";
                        echo "<input type=\"hidden\" name=\"" . esc_attr($field_id_data) . "_type\" id=\"" . esc_attr($field_id_data) . "_type\" value=\"" . esc_attr(strval($f_type)) . "\" />";
                    }
                    if (in_array($old_type, $cimy_uef_file_images_types) && is_file($file_on_server)) {
                        echo '<img id="' . esc_attr($field_id_data) . '" src="' . esc_attr($value) . '" alt="picture" /><br />';
                        echo "<input type=\"hidden\" name=\"" . esc_attr($field_id_data) . "_button\" id=\"" . esc_attr($field_id_data) . "_button\" value=\"1\" />";
                        echo "<input type=\"hidden\" name=\"" . esc_attr($field_id_data) . "_x1\" id=\"" . esc_attr($field_id_data) . "_x1\" value=\"\" />";
                        echo "<input type=\"hidden\" name=\"" . esc_attr($field_id_data) . "_y1\" id=\"" . esc_attr($field_id_data) . "_y1\" value=\"\" />";
                        echo "<input type=\"hidden\" name=\"" . esc_attr($field_id_data) . "_x2\" id=\"" . esc_attr($field_id_data) . "_x2\" value=\"\" />";
                        echo "<input type=\"hidden\" name=\"" . esc_attr($field_id_data) . "_y2\" id=\"" . esc_attr($field_id_data) . "_y2\" value=\"\" />";
                        echo "<input type=\"hidden\" name=\"" . esc_attr($field_id_data) . "_w\" id=\"" . esc_attr($field_id_data) . "_w\" value=\"\" />";
                        echo "<input type=\"hidden\" name=\"" . esc_attr($field_id_data) . "_h\" id=\"" . esc_attr($field_id_data) . "_h\" value=\"\" />";
                        $imgarea_options = "handles: true, fadeSpeed: 200, onSelectChange: preview";
                        if (isset($advanced_options["crop_x1"]) && isset($advanced_options["crop_y1"]) && isset($advanced_options["crop_x2"]) && isset($advanced_options["crop_y2"])) {
                            $imgarea_options .= ", x1: " . intval($advanced_options["crop_x1"]);
                            $imgarea_options .= ", y1: " . intval($advanced_options["crop_y1"]);
                            $imgarea_options .= ", x2: " . intval($advanced_options["crop_x2"]);
                            $imgarea_options .= ", y2: " . intval($advanced_options["crop_y2"]);
                        }
                        if (!empty($advanced_options["crop_ratio"])) {
                            $imgarea_options .= ", aspectRatio: '" . esc_js($advanced_options["crop_ratio"]) . "'";
                        } else {
                            if ($type == "avatar") {
                                $imgarea_options .= ", aspectRatio: '1:1'";
                            }
                        }
                        echo "<script type='text/javascript'>jQuery(document).ready(function () { jQuery('#" . esc_js($field_id_data) . "').imgAreaSelect({ " . $imgarea_options . " }); });</script>";
                    }
                } else {
                    $form_object .= " />";
                }
            }
            if ($type != "radio" && $type != "checkbox") {
                echo $obj_label;
            }
            if (is_multisite() && is_wp_error($errors)) {
                if ($errmsg = $errors->get_error_message($unique_id)) {
                    echo '<p class="error">' . $errmsg . '</p>';
                }
            }
            // TinceMCE needed and we have WordPress >= 3.3 yummy!
            if ($type == "textarea-rich" && function_exists("wp_editor")) {
                ?>
				<script type='text/javascript'>
					var login_div = document.getElementById("login");
					login_div.style.width = "535px";
				</script>
		<?php 
                $quicktags_settings = array('buttons' => 'strong,em,link,block,del,ins,img,ul,ol,li,code,spell,close');
                $editor_settings = array('textarea_name' => $input_name, 'teeny' => false, 'textarea_rows' => '10', 'dfw' => false, 'media_buttons' => true, 'tinymce' => true, 'quicktags' => $quicktags_settings);
                if (!empty($obj_tabindex)) {
                    $editor_settings['tabindex'] = $tabindex;
                }
                wp_editor($value, $unique_id, $editor_settings);
            } else {
                echo $form_object;
            }
            if ($type == "date") {
                echo cimy_uef_date_picker_options($unique_id, $rules);
            }
            if ($show_type == 0 && $i == 1 && $options['password_meter']) {
                if ($input_name == $prefix . "PASSWORD") {
                    $pass1_id = $unique_id;
                }
                if ($input_name == $prefix . "PASSWORD2") {
                    echo "\n\t\t<div id=\"pass-strength-result\" class=\"hide-if-no-js\" aria-live=\"polite\">" . __('Strength indicator') . "</div>";
                    echo "\n\t\t<p class=\"description indicator-hint\">" . __('Hint: The password should be at least seven characters long. To make it stronger, use upper and lower case letters, numbers and symbols like ! " ? $ % ^ &amp; ).') . "</p><br />";
                    $pass2_id = $unique_id;
                }
            }
            if (!($type != "radio" && $type != "checkbox")) {
                echo $obj_label;
            }
            echo "\n\t</p>\n";
            if ($type == "textarea-rich" || in_array($type, $cimy_uef_file_types)) {
                echo "\t<br />\n";
            }
        }
        $i++;
    }
    echo "\t<br />";
    if ($show_type != 2 && $options['captcha'] == "securimage") {
        global $cuef_securimage_webpath;
        if (is_multisite()) {
            if (is_wp_error($errors) && ($errmsg = $errors->get_error_message("securimage_code"))) {
                echo '<p class="error">' . $errmsg . '</p>';
            }
        }
        require_once $cuef_plugin_dir . '/securimage/securimage.php';
        $captcha_options = array();
        $captcha_options['image_id'] = 'captcha';
        $captcha_options['input_name'] = 'securimage_response_field';
        $captcha_options['input_text'] = __("Insert the code:", $cimy_uef_domain);
        $captcha_options['refresh_alt_text'] = __("Change image", $cimy_uef_domain);
        $captcha_options['refresh_title_text'] = __("Change image", $cimy_uef_domain);
        $captcha_options['show_audio_button'] = true;
        $captcha_options['show_refresh_button'] = true;
        echo Securimage::getCaptchaHtml($captcha_options);
    }
    if ($show_type != 2) {
        if (is_multisite() && is_wp_error($errors) && ($errmsg = $errors->get_error_message("recaptcha_code"))) {
            echo '<p class="error">' . $errmsg . '</p>';
        }
        if ($options['captcha'] == "recaptcha2" && !empty($options['recaptcha2_site_key']) && !empty($options['recaptcha2_secret_key'])) {
            ?>
			<div class="g-recaptcha" 
				data-sitekey="<?php 
            echo esc_attr($options['recaptcha2_site_key']);
            ?>
" 
				<?php 
            if (!empty($obj_tabindex)) {
                echo "data-tabindex=" . $tabindex;
            }
            $tabindex++;
            ?>
				data-size="compact"
				>
			</div>
<?php 
        }
        if ($options['captcha'] == "recaptcha" && !empty($options['recaptcha_public_key']) && !empty($options['recaptcha_private_key'])) {
            require_once $cuef_plugin_dir . '/recaptcha/recaptchalib.php';
            ?>
			<script type='text/javascript'>
				var RecaptchaOptions = {
					lang: '<?php 
            echo substr(get_locale(), 0, 2);
            ?>
'
					<?php 
            if (!empty($obj_tabindex)) {
                echo ", tabindex: " . $tabindex;
            }
            $tabindex++;
            ?>
				};
			</script>
<?php 
            // no need if Tiny MCE is present already
            if (empty($tiny_mce_objects)) {
                ?>
			<script type='text/javascript'>
				var login_div = document.getElementById("login");
				login_div.style.width = "375px";
			</script>
<?php 
            }
            echo recaptcha_get_html($options['recaptcha_public_key'], null, is_ssl());
        }
    }
    cimy_switch_current_blog(true);
    echo $end_cimy_uef_comment;
}
Exemplo n.º 2
0
function cimy_update_ExtraFields_new_me()
{
    global $wpdb, $wpdb_data_table, $user_ID, $max_length_value, $fields_name_prefix, $cimy_uef_file_types, $user_level, $cimy_uef_domain;
    include_once ABSPATH . '/wp-admin/includes/user.php';
    // if updating meta-data from registration post then exit
    if (isset($_POST['cimy_post'])) {
        return;
    }
    if (isset($_POST['user_id'])) {
        $get_user_id = $_POST['user_id'];
        if (!current_user_can('edit_user', $get_user_id)) {
            return;
        }
    } else {
        return;
    }
    //echo "asd";
    if (!function_exists('get_cimyFields')) {
        return;
    }
    $get_user_id = intval($get_user_id);
    $profileuser = get_user_to_edit($get_user_id);
    $user_login = $profileuser->user_login;
    $user_displayname = $profileuser->display_name;
    $extra_fields = get_cimyFields(false, true);
    $query = "UPDATE " . $wpdb_data_table . " SET VALUE=CASE FIELD_ID";
    $i = 0;
    $field_ids = "";
    $mail_changes = "";
    foreach ($extra_fields as $thisField) {
        $field_id = $thisField["ID"];
        $name = $thisField["NAME"];
        $type = $thisField["TYPE"];
        $label = $thisField["LABEL"];
        $rules = $thisField["RULES"];
        $unique_id = $fields_name_prefix . $field_id;
        $input_name = $fields_name_prefix . esc_attr($name);
        $field_id_data = $input_name . "_" . $field_id . "_data";
        $advanced_options = cimy_uef_parse_advanced_options($rules["advanced_options"]);
        cimy_insert_ExtraFields_if_not_exist($get_user_id, $field_id);
        // if the current user LOGGED IN has not enough permissions to see the field, skip it
        // apply only for EXTRA FIELDS
        if ($rules['show_level'] == 'view_cimy_extra_fields') {
            if (!current_user_can($rules['show_level'])) {
                continue;
            }
        } else {
            if ($user_level < $rules['show_level']) {
                continue;
            }
        }
        // if show_level == anonymous then do NOT ovverride other show_xyz rules
        if ($rules['show_level'] == -1) {
            // if flag to show the field in the profile is NOT activated, skip it
            if (!$rules['show_in_profile']) {
                continue;
            }
        }
        $prev_value = $wpdb->escape(stripslashes($_POST[$input_name . "_" . $field_id . "_prev_value"]));
        if (cimy_uef_is_field_disabled($type, $rules['edit'], $prev_value)) {
            continue;
        }
        if (isset($_POST[$input_name]) && !in_array($type, $cimy_uef_file_types)) {
            if ($type == "dropdown-multi") {
                $field_value = stripslashes(implode(",", $_POST[$input_name]));
            } else {
                $field_value = stripslashes($_POST[$input_name]);
            }
            if ($type == "picture-url") {
                $field_value = str_replace('../', '', $field_value);
            }
            if (isset($rules['max_length'])) {
                $field_value = substr($field_value, 0, $rules['max_length']);
            } else {
                $field_value = substr($field_value, 0, $max_length_value);
            }
            $field_value = $wpdb->escape($field_value);
            if ($i > 0) {
                $field_ids .= ", ";
            } else {
                $i = 1;
            }
            $field_ids .= $field_id;
            $query .= " WHEN " . $field_id . " THEN ";
            switch ($type) {
                case 'dropdown':
                case 'dropdown-multi':
                    $ret = cimy_dropDownOptions($label, $field_value);
                    $label = $ret['label'];
                case 'picture-url':
                case 'textarea':
                case 'textarea-rich':
                case 'password':
                case 'text':
                    $value = "'" . $field_value . "'";
                    $prev_value = "'" . $prev_value . "'";
                    break;
                case 'checkbox':
                    $value = $field_value == '1' ? "'YES'" : "'NO'";
                    $prev_value = $prev_value == "YES" ? "'YES'" : "'NO'";
                    break;
                case 'radio':
                    $value = $field_value == $field_id ? "'selected'" : "''";
                    $prev_value = "'" . $prev_value . "'";
                    break;
            }
            $query .= $value;
        } else {
            $rules = $thisField['RULES'];
            if (in_array($type, $cimy_uef_file_types)) {
                if ($type == "avatar") {
                    // since avatars are drawn max to 512px then we can save bandwith resizing, do it!
                    $rules['equal_to'] = 512;
                }
                if (isset($_POST[$input_name . '_del'])) {
                    $delete_file = true;
                } else {
                    $delete_file = false;
                }
                if (isset($_POST[$input_name . "_" . $field_id . "_prev_value"])) {
                    $old_file = stripslashes($_POST[$input_name . "_" . $field_id . "_prev_value"]);
                } else {
                    $old_file = false;
                }
                $field_value = cimy_manage_upload($input_name, $user_login, $rules, $old_file, $delete_file, $type, !empty($advanced_options["filename"]) ? $advanced_options["filename"] : "");
                if (!empty($field_value) || $delete_file) {
                    if ($i > 0) {
                        $field_ids .= ", ";
                    } else {
                        $i = 1;
                    }
                    $field_ids .= $field_id;
                    $value = "'" . $field_value . "'";
                    $prev_value = "'" . $prev_value . "'";
                    $query .= " WHEN " . $field_id . " THEN ";
                    $query .= $value;
                } else {
                    $prev_value = $value;
                    $file_on_server = cimy_uef_get_dir_or_filename($user_login, $old_file, false);
                    if ($type == "picture" || $type == "avatar") {
                        cimy_uef_crop_image($file_on_server, $field_id_data);
                    }
                }
            }
            if ($type == 'checkbox') {
                // if can be editable then write NO
                // there is no way to understand if was YES or NO previously
                // without adding other hidden inputs so write always
                if ($i > 0) {
                    $field_ids .= ", ";
                } else {
                    $i = 1;
                }
                $field_ids .= $field_id;
                $field_value = "NO";
                $value = "'" . $field_value . "'";
                $prev_value = $prev_value == "YES" ? "'YES'" : "'NO'";
                $query .= " WHEN " . $field_id . " THEN ";
                $query .= $value;
            }
            if ($type == 'dropdown-multi') {
                // if can be editable then write ''
                // there is no way to understand if was YES or NO previously
                // without adding other hidden inputs so write always
                if ($i > 0) {
                    $field_ids .= ", ";
                } else {
                    $i = 1;
                }
                $field_ids .= $field_id;
                $field_value = '';
                $value = "'" . $field_value . "'";
                $prev_value = "'" . $prev_value . "'";
                $ret = cimy_dropDownOptions($label, $field_value);
                $label = $ret['label'];
                $query .= " WHEN " . $field_id . " THEN ";
                $query .= $value;
            }
        }
        if ($rules["email_admin"] && $value != $prev_value && $type != "registration-date") {
            $mail_changes .= sprintf(__("%s previous value: %s new value: %s", $cimy_uef_domain), $label, stripslashes($prev_value), stripslashes($value));
            $mail_changes .= "\r\n";
        }
    }
    if ($i > 0) {
        $query .= " ELSE FIELD_ID END WHERE FIELD_ID IN(" . $field_ids . ") AND USER_ID = " . $get_user_id;
        // $query WILL BE: UPDATE <table> SET VALUE=CASE FIELD_ID WHEN <field_id1> THEN <value1> [WHEN ... THEN ...] ELSE FIELD_ID END WHERE FIELD_ID IN(<field_id1>, [<field_id2>...]) AND USER_ID=<user_id>
        $wpdb->query($query);
    }
    // mail only if set and if there is something to mail
    if (!empty($mail_changes)) {
        $admin_email = get_option('admin_email');
        $mail_subject = sprintf(__("%s (%s) has changed one or more fields", $cimy_uef_domain), $user_displayname, $user_login);
        wp_mail($admin_email, $mail_subject, $mail_changes);
    }
}
function cimy_change_radio_labels($field_data, $user_id)
{
    $i = 0;
    while ($i < count($field_data)) {
        if ($field_data[$i]['TYPE'] == "radio") {
            $field_data[$i]['VALUE'] = $field_data[$i]['LABEL'];
        } else {
            if ($field_data[$i]['TYPE'] == "dropdown" || $field_data[$i]['TYPE'] == "dropdown-multi") {
                $ret = cimy_dropDownOptions($field_data[$i]['LABEL'], false);
                $field_data[$i]['LABEL'] = $ret['label'];
            } else {
                if ($field_data[$i]['TYPE'] == "registration-date") {
                    if (isset($field_data[$i]['user_id'])) {
                        $field_data[$i]['VALUE'] = cimy_get_registration_date($field_data[$i]['user_id'], $field_data[$i]['VALUE']);
                    } else {
                        $field_data[$i]['VALUE'] = cimy_get_registration_date($user_id, $field_data[$i]['VALUE']);
                    }
                }
            }
        }
        $i++;
    }
    return $field_data;
}
Exemplo n.º 4
0
function cimy_uef_mail_fields($user = false, $activation_data = false)
{
    global $wp_hidden_fields, $cimy_uef_domain, $fields_name_prefix, $wp_fields_name_prefix;
    $message = "";
    $meta = false;
    if (empty($user) && empty($activation_data)) {
        return $message;
    }
    if (empty($user)) {
        $user_login = $activation_data["user_login"];
        // 		$user_email = $activation_data["user_email"];
        if (!is_array($activation_data["meta"])) {
            $meta = unserialize($activation_data["meta"]);
        } else {
            $meta = $activation_data["meta"];
        }
        // neet to do it here, otherwise I pick up main options instead of blog's ones
        if (is_multisite()) {
            cimy_switch_to_blog($meta);
        }
        $options = cimy_get_options();
        if (is_multisite()) {
            restore_current_blog();
        }
        if (!$options["mail_include_fields"]) {
            return $message;
        }
        $user = new WP_User($user_login);
    }
    if (empty($meta)) {
        // normal fields
        foreach ($wp_hidden_fields as $field) {
            if (!empty($user->{$field["userdata_name"]}) && $field["type"] != "password") {
                $label = $field["label"];
                if ($field["type"] == "dropdown" || $field["type"] == "dropdown-multi") {
                    $ret = cimy_dropDownOptions($label, "");
                    $label = $ret['label'];
                }
                $message .= sprintf(__('%s: %s', $cimy_uef_domain), $label, $user->{$field["userdata_name"]}) . "\r\n";
            }
        }
    } else {
        $fields = get_cimyFields(true);
        foreach ($fields as $field) {
            if (!empty($meta[$wp_fields_name_prefix . $field["NAME"]]) && $field["TYPE"] != "password") {
                $label = $field["LABEL"];
                if ($field["TYPE"] == "dropdown" || $field["TYPE"] == "dropdown-multi") {
                    $ret = cimy_dropDownOptions($label, "");
                    $label = $ret['label'];
                }
                $message .= sprintf(__('%s: %s', $cimy_uef_domain), $label, $meta[$wp_fields_name_prefix . $field["NAME"]]) . "\r\n";
            }
        }
    }
    $message .= "\r\n";
    // extra fields;
    if (empty($meta)) {
        $ef_data = get_cimyFieldValue($user->ID, false);
        foreach ($ef_data as $field) {
            if (!empty($field["VALUE"])) {
                $message .= sprintf(__('%s: %s', $cimy_uef_domain), $field["LABEL"], $field["VALUE"]) . "\r\n";
            }
        }
    } else {
        $extra_fields = get_cimyFields(false, true);
        foreach ($extra_fields as $field) {
            if (!empty($meta[$fields_name_prefix . $field["NAME"]])) {
                $message .= sprintf(__('%s: %s', $cimy_uef_domain), $field["LABEL"], $meta[$fields_name_prefix . $field["NAME"]]) . "\r\n";
            }
        }
    }
    return $message;
}
Exemplo n.º 5
0
function cimy_change_radio_labels($field_data)
{
    $i = 0;
    while ($i < count($field_data)) {
        if ($field_data[$i]['TYPE'] == "radio") {
            $field_data[$i]['VALUE'] = $field_data[$i]['LABEL'];
        } else {
            if ($field_data[$i]['TYPE'] == "dropdown" || $field_data[$i]['TYPE'] == "dropdown-multi") {
                $ret = cimy_dropDownOptions($field_data[$i]['LABEL'], false);
                $field_data[$i]['LABEL'] = $ret['label'];
            }
        }
        $i++;
    }
    return $field_data;
}
Exemplo n.º 6
0
     } else {
         $search_value = esc_attr(stripslashes($_POST["ef_search"][$name]));
     }
 }
 $thead_str .= "<th scope=\"col\" class=\"manage-column\" style=\"\">";
 $tfoot_str .= "<th scope=\"col\" class=\"manage-column\" style=\"\">";
 switch ($type) {
     case "dropdown":
         $ret = cimy_dropDownOptions($label, $search_value);
         $ret2 = str_ireplace(' selected="selected"', '', $ret['html']);
         $label = $ret['label'];
         $search_input = '<select name="ef_search[' . $name . ']"><option>' . $dropdown_first_item . '</option>' . $ret['html'] . '</select>';
         $write_input[$i] = '<td>' . $label . '</td><td><select name="ef_write[' . $name . ']"><option>' . $dropdown_first_item . '</option>' . $ret2 . '</select>';
         break;
     case "dropdown-multi":
         $ret = cimy_dropDownOptions($label, $search_value);
         $ret2 = str_ireplace(' selected="selected"', '', $ret['html']);
         $label = $ret['label'];
         $search_input = '<select name="ef_search[' . $name . '][]" multiple="multiple" style="height: 6em;"><option>' . $dropdown_first_item . '</option>' . $ret['html'] . '</select>';
         $write_input[$i] = '<td>' . $label . '</td><td><select name="ef_write[' . $name . '][]" multiple="multiple" style="height: 6em;"><option>' . $dropdown_first_item . '</option>' . $ret2 . '</select>';
         break;
     case "text":
     case "textarea":
     case "textarea-rich":
     case "picture-url":
         $search_input = '<input type="text" name="ef_search[' . $name . ']" value="' . $search_value . '" size="6" />';
         $write_input[$i] = '<td>' . $label . '</td><td><input type="text" name="ef_write[' . $name . ']" value="" size="40" />';
         break;
     case "picture":
     case "file":
         $search_input = '<input type="text" name="ef_search[' . $name . ']" value="' . $search_value . '" size="6" />';
Exemplo n.º 7
0
function cimy_registration_form($errors = null, $show_type = 0)
{
    global $wpdb, $start_cimy_uef_comment, $end_cimy_uef_comment, $rule_maxlen_needed, $fields_name_prefix, $wp_fields_name_prefix, $cuef_plugin_dir, $cimy_uef_file_types, $cimy_uef_textarea_types, $user_level, $cimy_uef_domain;
    // 	cimy_switch_to_blog();
    // if not set, set to -1 == anonymous
    if (!isset($user_level)) {
        $user_level = -1;
    }
    // needed by cimy_uef_init_mce.php
    $cimy_uef_register_page = true;
    $extra_fields = get_cimyFields(false, true);
    $wp_fields = get_cimyFields(true);
    if (is_multisite()) {
        $input_class = "cimy_uef_input_mu";
    } else {
        $input_class = "cimy_uef_input_27";
    }
    $options = cimy_get_options();
    $tabindex = 21;
    echo $start_cimy_uef_comment;
    echo "\t";
    // needed to apply default values only first time and not in case of errors
    echo '<input type="hidden" name="cimy_post" value="1" />';
    echo "\n";
    $radio_checked = array();
    $i = 1;
    $upload_image_function = false;
    // do first the WP fields then the EXTRA fields
    while ($i <= 2) {
        if ($i == 1) {
            $fields = $wp_fields;
            $prefix = $wp_fields_name_prefix;
        } else {
            $fields = $extra_fields;
            $prefix = $fields_name_prefix;
            $current_fieldset = -1;
            if ($options['fieldset_title'] != "") {
                $fieldset_titles = explode(',', $options['fieldset_title']);
            } else {
                $fieldset_titles = array();
            }
        }
        $tiny_mce_objects = "";
        foreach ($fields as $thisField) {
            $field_id = $thisField['ID'];
            $name = $thisField['NAME'];
            $rules = $thisField['RULES'];
            $type = $thisField['TYPE'];
            $label = $thisField['LABEL'];
            $description = $thisField['DESCRIPTION'];
            $fieldset = $thisField['FIELDSET'];
            $input_name = $prefix . esc_attr($name);
            $post_input_name = $prefix . $wpdb->escape($name);
            $maxlen = 0;
            $unique_id = $prefix . $field_id;
            // showing the search then there is no need to upload buttons
            if ($show_type == 1) {
                if ($type == "password") {
                    continue;
                }
                if ($type == "avatar" || $type == "picture" || $type == "file") {
                    $type = "text";
                }
            }
            // if the current user LOGGED IN has not enough permissions to see the field, skip it
            // apply only for EXTRA FIELDS
            if ($user_level < $rules['show_level'] && $i == 2) {
                continue;
            }
            // if show_level == anonymous then do NOT ovverride other show_xyz rules
            if ($rules['show_level'] == -1) {
                if ($show_type == 0) {
                    // if flag to show the field in the registration is NOT activated, skip it
                    if (!$rules['show_in_reg']) {
                        continue;
                    }
                } else {
                    if ($show_type == 1) {
                        // if flag to show the field in the blog is NOT activated, skip it
                        if (!$rules['show_in_search']) {
                            continue;
                        }
                    }
                }
            }
            // uploading a file is not supported when confirmation email is enabled (on MS is turned on by default yes)
            if ((is_multisite() || $options["confirm_email"]) && in_array($type, $cimy_uef_file_types)) {
                continue;
            }
            if (isset($_POST[$post_input_name])) {
                if ($type == "dropdown-multi") {
                    $value = stripslashes(implode(",", $_POST[$post_input_name]));
                } else {
                    $value = stripslashes($_POST[$post_input_name]);
                }
            } else {
                if (isset($_GET[$name])) {
                    if ($type == "dropdown-multi") {
                        $value = stripslashes(implode(",", $_GET[$name]));
                    } else {
                        $value = stripslashes($_GET[$name]);
                    }
                } else {
                    if (!isset($_POST["cimy_post"])) {
                        $value = $thisField['VALUE'];
                        switch ($type) {
                            case "radio":
                                if ($value == "YES") {
                                    $value = $field_id;
                                } else {
                                    $value = "";
                                }
                                break;
                            case "checkbox":
                                if ($value == "YES") {
                                    $value = "1";
                                } else {
                                    $value = "";
                                }
                                break;
                        }
                    } else {
                        $value = "";
                    }
                }
            }
            $value = esc_attr($value);
            if ($fieldset > $current_fieldset && isset($fieldset_titles[$fieldset]) && $i != 1) {
                $current_fieldset = $fieldset;
                if (isset($fieldset_titles[$current_fieldset])) {
                    echo "\n\t<h2>" . $fieldset_titles[$current_fieldset] . "</h2>\n";
                }
            }
            if ($description != "" && $type != "registration-date") {
                echo "\t";
                echo '<p id="' . $prefix . 'p_desc_' . $field_id . '" class="desc"><br />' . $description . '</p>';
                echo "\n";
            }
            echo "\t";
            echo '<p id="' . $prefix . 'p_field_' . $field_id . '">';
            echo "\n\t";
            switch ($type) {
                case "picture-url":
                case "password":
                case "text":
                    $obj_label = '<label for="' . $unique_id . '">' . $label . '</label>';
                    $obj_class = ' class="' . $input_class . '"';
                    $obj_name = ' name="' . $input_name . '"';
                    if ($type == "picture-url") {
                        $obj_type = ' type="text"';
                    } else {
                        $obj_type = ' type="' . $type . '"';
                    }
                    $obj_value = ' value="' . $value . '"';
                    $obj_value2 = "";
                    $obj_checked = "";
                    $obj_tag = "input";
                    $obj_closing_tag = false;
                    break;
                case "dropdown":
                case "dropdown-multi":
                    $ret = cimy_dropDownOptions($label, $value);
                    $label = $ret['label'];
                    $html = $ret['html'];
                    if ($type == "dropdown-multi") {
                        $obj_name = ' name="' . $input_name . '[]" multiple="multiple" size="6"';
                    } else {
                        $obj_name = ' name="' . $input_name . '"';
                    }
                    $obj_label = '<label for="' . $unique_id . '">' . $label . '</label>';
                    $obj_class = ' class="' . $input_class . '"';
                    $obj_type = '';
                    $obj_value = '';
                    $obj_value2 = $html;
                    $obj_checked = "";
                    $obj_tag = "select";
                    $obj_closing_tag = true;
                    break;
                case "textarea":
                    $obj_label = '<label for="' . $unique_id . '">' . $label . '</label>';
                    $obj_class = ' class="' . $input_class . '"';
                    $obj_name = ' name="' . $input_name . '"';
                    $obj_type = "";
                    $obj_value = "";
                    $obj_value2 = $value;
                    $obj_checked = "";
                    $obj_tag = "textarea";
                    $obj_closing_tag = true;
                    break;
                case "textarea-rich":
                    if ($tiny_mce_objects == "") {
                        $tiny_mce_objects = $fields_name_prefix . $field_id;
                    } else {
                        $tiny_mce_objects .= "," . $fields_name_prefix . $field_id;
                    }
                    $obj_label = '<label for="' . $unique_id . '">' . $label . '</label>';
                    $obj_class = ' class="' . $input_class . '"';
                    $obj_name = ' name="' . $input_name . '"';
                    $obj_type = "";
                    $obj_value = "";
                    $obj_value2 = $value;
                    $obj_checked = "";
                    $obj_tag = "textarea";
                    $obj_closing_tag = true;
                    break;
                case "checkbox":
                    $obj_label = '<label class="cimy_uef_label_checkbox" for="' . $unique_id . '"> ' . $label . '</label><br />';
                    $obj_class = ' class="cimy_uef_checkbox"';
                    $obj_name = ' name="' . $input_name . '"';
                    $obj_type = ' type="' . $type . '"';
                    $obj_value = ' value="1"';
                    $obj_value2 = "";
                    $value == "1" ? $obj_checked = ' checked="checked"' : ($obj_checked = '');
                    $obj_tag = "input";
                    $obj_closing_tag = false;
                    break;
                case "radio":
                    $obj_label = '<label class="cimy_uef_label_radio" for="' . $unique_id . '"> ' . $label . '</label>';
                    $obj_class = ' class="cimy_uef_radio"';
                    $obj_name = ' name="' . $input_name . '"';
                    $obj_type = ' type="' . $type . '"';
                    $obj_value = ' value="' . $field_id . '"';
                    $obj_value2 = "";
                    $obj_tag = "input";
                    $obj_closing_tag = false;
                    // do not check if another check was done
                    if (intval($value) == intval($field_id) && !in_array($name, $radio_checked)) {
                        $obj_checked = ' checked="checked"';
                        $radio_checked += array($name => true);
                    } else {
                        $obj_checked = '';
                    }
                    break;
                case "avatar":
                case "picture":
                case "file":
                    $allowed_exts = '';
                    if (isset($rules['equal_to'])) {
                        if ($rules['equal_to'] != "") {
                            $allowed_exts = "'" . implode("', '", explode(",", $rules['equal_to'])) . "'";
                        }
                    }
                    if ($type == "file") {
                        // if we do not escape then some translations can break
                        $warning_msg = $wpdb->escape(__("Please upload a file with one of the following extensions", $cimy_uef_domain));
                        $obj_checked = ' onchange="uploadFile(\'registerform\', \'' . $unique_id . '\', \'' . $warning_msg . '\', Array(' . $allowed_exts . '));"';
                    } else {
                        // if we do not escape then some translations can break
                        $warning_msg = $wpdb->escape(__("Please upload an image with one of the following extensions", $cimy_uef_domain));
                        $obj_checked = ' onchange="uploadFile(\'registerform\', \'' . $unique_id . '\', \'' . $warning_msg . '\', Array(\'gif\', \'png\', \'jpg\', \'jpeg\', \'tiff\'));"';
                    }
                    // javascript will be added later
                    $upload_file_function = true;
                    $obj_label = '<label for="' . $unique_id . '">' . $label . ' </label>';
                    $obj_class = ' class="cimy_uef_picture"';
                    $obj_name = ' name="' . $input_name . '"';
                    $obj_type = ' type="file"';
                    $obj_value = ' value="' . $value . '"';
                    $obj_value2 = "";
                    $obj_tag = "input";
                    $obj_closing_tag = false;
                    break;
                case "registration-date":
                    $obj_label = '';
                    $obj_class = '';
                    $obj_name = ' name="' . $input_name . '"';
                    $obj_type = ' type="hidden"';
                    $obj_value = ' value="' . $value . '"';
                    $obj_value2 = "";
                    $obj_checked = "";
                    $obj_tag = "input";
                    $obj_closing_tag = false;
                    break;
            }
            $obj_id = ' id="' . $unique_id . '"';
            // tabindex not used in MU, dropping...
            if (is_multisite()) {
                $obj_tabindex = "";
            } else {
                $obj_tabindex = ' tabindex="' . strval($tabindex) . '"';
                $tabindex++;
            }
            $obj_maxlen = "";
            if (in_array($type, $rule_maxlen_needed) && !in_array($type, $cimy_uef_file_types)) {
                if (isset($rules['max_length'])) {
                    $obj_maxlen = ' maxlength="' . $rules['max_length'] . '"';
                } else {
                    if (isset($rules['exact_length'])) {
                        $obj_maxlen = ' maxlength="' . $rules['exact_length'] . '"';
                    }
                }
            }
            if (in_array($type, $cimy_uef_textarea_types)) {
                $obj_rowscols = ' rows="3" cols="25"';
            } else {
                $obj_rowscols = '';
            }
            echo "\t";
            $form_object = '<' . $obj_tag . $obj_type . $obj_name . $obj_id . $obj_class . $obj_value . $obj_checked . $obj_maxlen . $obj_rowscols . $obj_tabindex;
            if ($obj_closing_tag) {
                $form_object .= ">" . $obj_value2 . "</" . $obj_tag . ">";
            } else {
                $form_object .= " />";
            }
            if ($type != "radio" && $type != "checkbox") {
                echo $obj_label;
            }
            if (is_multisite()) {
                if ($errmsg = $errors->get_error_message($unique_id)) {
                    echo '<p class="error">' . $errmsg . '</p>';
                }
            }
            // write to the html the form object built
            echo $form_object;
            if ($i == 1 && $options['password_meter']) {
                if ($input_name == $prefix . "PASSWORD") {
                    $pass1_id = $unique_id;
                }
                if ($input_name == $prefix . "PASSWORD2") {
                    echo "\n\t\t<div id=\"pass-strength-result\">" . __('Strength indicator') . "</div>";
                    echo "\n\t\t<p class=\"description indicator-hint\">" . __('Hint: The password should be at least seven characters long. To make it stronger, use upper and lower case letters, numbers and symbols like ! \\" ? $ % ^ &amp; ).') . "</p><br />";
                    $pass2_id = $unique_id;
                }
            }
            if (!($type != "radio" && $type != "checkbox")) {
                echo $obj_label;
            }
            echo "\n\t</p>\n";
            if ($type == "textarea-rich" || in_array($type, $cimy_uef_file_types)) {
                echo "\t<br />\n";
            }
        }
        $i++;
    }
    if ($tiny_mce_objects != "") {
        $mce_skin = "";
        require_once $cuef_plugin_dir . '/cimy_uef_init_mce.php';
    }
    if ($options['password_meter']) {
        ?>
		<script type='text/javascript' src='<?php 
        trailingslashit(get_option('siteurl'));
        ?>
wp-includes/js/jquery/jquery.js?ver=1.2.3'></script>
	<?php 
        require_once $cuef_plugin_dir . '/cimy_uef_init_strength_meter.php';
    }
    if ($options['captcha'] == "securimage") {
        global $cuef_securimage_webpath;
        ?>
		<div style="width: 278px; float: left; height: 80px; vertical-align: text-top;">
			<img id="captcha" align="left" style="padding-right: 5px; border: 0" src="<?php 
        echo $cuef_securimage_webpath;
        ?>
securimage_show_captcha.php" alt="CAPTCHA Image" />
			<object type="application/x-shockwave-flash" data="<?php 
        echo $cuef_securimage_webpath;
        ?>
securimage_play.swf?audio=<?php 
        echo $cuef_securimage_webpath;
        ?>
securimage_play.php&#038;bgColor1=#fff&#038;bgColor2=#fff&#038;iconColor=#777&#038;borderWidth=1&#038;borderColor=#000" height="19" width="19"><param name="movie" value="<?php 
        echo $cuef_securimage_webpath;
        ?>
securimage_play.swf?audio=<?php 
        echo $cuef_securimage_webpath;
        ?>
securimage_play.php&#038;bgColor1=#fff&#038;bgColor2=#fff&#038;iconColor=#777&#038;borderWidth=1&#038;borderColor=#000" /></object>
			<br /><br /><br /><br />
			<a align="right" tabindex="<?php 
        echo $tabindex;
        $tabindex++;
        ?>
" style="border-style: none" href="#" onclick="document.getElementById('captcha').src = '<?php 
        echo $cuef_securimage_webpath;
        ?>
securimage_show_captcha.php?' + Math.random(); return false"><img src="<?php 
        echo $cuef_securimage_webpath;
        ?>
/images/refresh.gif" alt="<?php 
        _e("Change image", $cimy_uef_domain);
        ?>
" border="0" onclick="this.blur()" align="bottom" /></a>
		</div>
		<div style="width: 278px; float: left; height: 50px; vertical-align: bottom; padding: 5px;">
			<?php 
        _e("Insert the code:", $cimy_uef_domain);
        ?>
&nbsp;<input type="text" name="securimage_response_field" size="10" maxlength="6" tabindex="<?php 
        echo $tabindex;
        $tabindex++;
        ?>
" />
		</div>
<?php 
    }
    if ($options['captcha'] == "recaptcha" && !empty($options['recaptcha_public_key']) && !empty($options['recaptcha_private_key'])) {
        require_once $cuef_plugin_dir . '/recaptcha/recaptchalib.php';
        ?>
			<script type='text/javascript'>
				var RecaptchaOptions = {
					lang: '<?php 
        echo substr(get_locale(), 0, 2);
        ?>
',
					tabindex : <?php 
        echo strval($tabindex);
        $tabindex++;
        ?>
				};
			</script>
	<?php 
        // no need if Tiny MCE is present already
        if ($tiny_mce_objects == "") {
            ?>
			<script type='text/javascript'>
				var login_div = document.getElementById("login");
				login_div.style.width = "375px";
			</script>
	<?php 
        }
        echo recaptcha_get_html($options['recaptcha_public_key']);
    }
    if ($upload_file_function) {
        wp_print_scripts("cimy_uef_upload_file");
    }
    cimy_switch_current_blog(true);
    echo $end_cimy_uef_comment;
}
Exemplo n.º 8
0
function cimy_extract_ExtraFields()
{
    global $wpdb, $user_ID, $wpdb_data_table, $start_cimy_uef_comment, $end_cimy_uef_comment, $rule_profile_value, $cimy_uef_options, $rule_maxlen_needed, $fields_name_prefix, $cuef_upload_path, $cimy_uef_domain, $cuef_plugin_dir, $cimy_uef_file_types, $cimy_uef_textarea_types, $user_level;
    // if editing a different user (only admin)
    if (isset($_GET['user_id'])) {
        $get_user_id = $_GET['user_id'];
        if (!current_user_can('edit_user', $get_user_id)) {
            return;
        }
    } else {
        if (isset($_POST['user_id'])) {
            $get_user_id = $_POST['user_id'];
            if (!current_user_can('edit_user', $get_user_id)) {
                return;
            }
        } else {
            if (!isset($user_ID)) {
                return;
            }
            $get_user_id = $user_ID;
        }
    }
    $get_user_id = intval($get_user_id);
    $options = cimy_get_options();
    $extra_fields = get_cimyFields(false, true);
    if (!empty($extra_fields)) {
        $upload_image_function = false;
        echo $start_cimy_uef_comment;
        if ($options['extra_fields_title'] != "") {
            echo "<br clear=\"all\" />\n";
            echo "<h2>" . $options['extra_fields_title'] . "</h2>\n";
        }
        foreach ($extra_fields as $thisField) {
            $field_id = $thisField['ID'];
            cimy_insert_ExtraFields_if_not_exist($get_user_id, $field_id);
        }
        // 		$ef_db = $wpdb->get_results("SELECT FIELD_ID, VALUE FROM ".$wpdb_data_table." WHERE USER_ID = ".$get_user_id, ARRAY_A);
        $radio_checked = array();
        $current_fieldset = -1;
        $tiny_mce_objects = "";
        if ($options['fieldset_title'] != "") {
            $fieldset_titles = explode(',', $options['fieldset_title']);
        } else {
            $fieldset_titles = array();
        }
        $close_table = false;
        echo '<table class="form-table">';
        echo "\n";
        foreach ($extra_fields as $thisField) {
            $value = "";
            $old_value = "";
            $field_id = $thisField['ID'];
            $name = $thisField['NAME'];
            $rules = $thisField['RULES'];
            $type = $thisField['TYPE'];
            $label = $thisField['LABEL'];
            $description = $thisField['DESCRIPTION'];
            $fieldset = $thisField['FIELDSET'];
            $input_name = $fields_name_prefix . esc_attr($name);
            // if the current user LOGGED IN has not enough permissions to see the field, skip it
            // apply only for EXTRA FIELDS
            if ($user_level < $rules['show_level']) {
                continue;
            }
            // if show_level == anonymous then do NOT ovverride other show_xyz rules
            if ($rules['show_level'] == -1) {
                // if flag to show the field in the profile is NOT activated, skip it
                if (!$rules['show_in_profile']) {
                    continue;
                }
            }
            // 			foreach ($ef_db as $d_field) {
            // 				if ($d_field['FIELD_ID'] == $field_id)
            // 					$value = $d_field['VALUE'];
            // 			}
            $value = $wpdb->get_var($wpdb->prepare("SELECT VALUE FROM " . $wpdb_data_table . " WHERE USER_ID=" . $get_user_id . " AND FIELD_ID=" . $field_id));
            $old_value = $value;
            // if nothing is inserted and field admin default value then assign it
            if (in_array($type, $rule_profile_value)) {
                if ($value == "") {
                    $value = $thisField['VALUE'];
                }
            }
            if ($fieldset > $current_fieldset && isset($fieldset_titles[$fieldset])) {
                $current_fieldset = $fieldset;
                // do not close the table if it is the first iteration
                if ($close_table) {
                    echo "</table>\n";
                } else {
                    $close_table = true;
                }
                if (isset($fieldset_titles[$current_fieldset])) {
                    echo "\n\t<h3>" . $fieldset_titles[$current_fieldset] . "</h3>\n";
                }
                echo '<table class="form-table">';
                echo "\n";
            }
            echo "\t";
            echo "<tr>";
            echo "\n\t";
            $value = esc_attr($value);
            switch ($type) {
                case "picture-url":
                case "password":
                case "text":
                    $obj_label = '<label for="' . $fields_name_prefix . $field_id . '">' . $label . '</label>';
                    $obj_name = ' name="' . $input_name . '"';
                    if ($type == "picture-url") {
                        $obj_type = ' type="text"';
                    } else {
                        $obj_type = ' type="' . $type . '"';
                    }
                    $obj_value = ' value="' . $value . '"';
                    $obj_value2 = "";
                    $obj_checked = "";
                    $obj_tag = "input";
                    $obj_closing_tag = false;
                    $obj_style = ' class="regular-text"';
                    if ($old_value != "" && $rules['edit'] == 'edit_only_if_empty' || $old_value != "" && !current_user_can('edit_users') && $rules['edit'] == 'edit_only_by_admin_or_if_empty' || $rules['edit'] == 'no_edit' || $rules['edit'] == 'edit_only_by_admin' && !current_user_can('edit_users')) {
                        $obj_disabled = ' disabled="disabled"';
                    } else {
                        $obj_disabled = "";
                    }
                    break;
                case "textarea":
                    $obj_label = '<label for="' . $fields_name_prefix . $field_id . '">' . $label . '</label>';
                    $obj_name = ' name="' . $input_name . '"';
                    $obj_type = "";
                    $obj_value = "";
                    $obj_value2 = $value;
                    $obj_checked = "";
                    $obj_tag = "textarea";
                    $obj_closing_tag = true;
                    $obj_style = "";
                    if ($old_value != "" && $rules['edit'] == 'edit_only_if_empty' || $old_value != "" && !current_user_can('edit_users') && $rules['edit'] == 'edit_only_by_admin_or_if_empty' || $rules['edit'] == 'no_edit' || $rules['edit'] == 'edit_only_by_admin' && !current_user_can('edit_users')) {
                        $obj_disabled = ' disabled="disabled"';
                    } else {
                        $obj_disabled = "";
                    }
                    break;
                case "textarea-rich":
                    if ($tiny_mce_objects == "") {
                        $tiny_mce_objects = $fields_name_prefix . $field_id;
                    } else {
                        $tiny_mce_objects .= "," . $fields_name_prefix . $field_id;
                    }
                    $obj_label = '<label for="' . $fields_name_prefix . $field_id . '">' . $label . '</label>';
                    $obj_name = ' name="' . $input_name . '"';
                    $obj_type = "";
                    $obj_value = "";
                    $obj_value2 = $value;
                    $obj_checked = "";
                    $obj_tag = "textarea";
                    $obj_closing_tag = true;
                    $obj_style = "";
                    if ($old_value != "" && $rules['edit'] == 'edit_only_if_empty' || $old_value != "" && !current_user_can('edit_users') && $rules['edit'] == 'edit_only_by_admin_or_if_empty' || $rules['edit'] == 'no_edit' || $rules['edit'] == 'edit_only_by_admin' && !current_user_can('edit_users')) {
                        $obj_disabled = ' disabled="disabled"';
                    } else {
                        $obj_disabled = "";
                    }
                    break;
                case "dropdown-multi":
                case "dropdown":
                    $ret = cimy_dropDownOptions($label, $value);
                    $label = $ret['label'];
                    $html = $ret['html'];
                    $obj_label = '<label for="' . $fields_name_prefix . $field_id . '">' . $label . '</label>';
                    if ($type == "dropdown-multi") {
                        $obj_name = ' name="' . $input_name . '[]" multiple="multiple" size="5"';
                        $obj_style = ' style="height: 11em;"';
                    } else {
                        $obj_name = ' name="' . $input_name . '"';
                        $obj_style = '';
                    }
                    $obj_type = '';
                    $obj_value = '';
                    $obj_value2 = $html;
                    $obj_checked = "";
                    $obj_tag = "select";
                    $obj_closing_tag = true;
                    if ($old_value != "" && $rules['edit'] == 'edit_only_if_empty' || $old_value != "" && !current_user_can('edit_users') && $rules['edit'] == 'edit_only_by_admin_or_if_empty' || $rules['edit'] == 'no_edit' || $rules['edit'] == 'edit_only_by_admin' && !current_user_can('edit_users')) {
                        $obj_disabled = ' disabled="disabled"';
                    } else {
                        $obj_disabled = "";
                    }
                    break;
                case "checkbox":
                    $obj_label = '<label for="' . $fields_name_prefix . $field_id . '">' . $label . '</label>';
                    $obj_name = ' name="' . $input_name . '"';
                    $obj_type = ' type="' . $type . '"';
                    $obj_value = ' value="1"';
                    $obj_value2 = "";
                    $value == "YES" ? $obj_checked = ' checked="checked"' : ($obj_checked = '');
                    $obj_tag = "input";
                    $obj_closing_tag = false;
                    $obj_style = ' style="width:auto; border:0; background:white;"';
                    if ($rules['edit'] == 'no_edit' || ($rules['edit'] == 'edit_only_by_admin' || $rules['edit'] == 'edit_only_by_admin_or_if_empty') && !current_user_can('edit_users')) {
                        $obj_disabled = ' disabled="disabled"';
                    } else {
                        $obj_disabled = "";
                    }
                    break;
                case "radio":
                    $obj_label = '<label for="' . $fields_name_prefix . $field_id . '"> ' . $label . '</label>';
                    $obj_name = ' name="' . $input_name . '"';
                    $obj_type = ' type="' . $type . '"';
                    $obj_value = ' value="' . $field_id . '"';
                    $obj_value2 = "";
                    $obj_tag = "input";
                    $obj_closing_tag = false;
                    $obj_style = ' style="width:auto; border:0; background:white;"';
                    if ($rules['edit'] == 'no_edit' || ($rules['edit'] == 'edit_only_by_admin' || $rules['edit'] == 'edit_only_by_admin_or_if_empty') && !current_user_can('edit_users')) {
                        $obj_disabled = ' disabled="disabled"';
                    } else {
                        $obj_disabled = "";
                    }
                    if ($value == "") {
                        $obj_checked = '';
                    } else {
                        $obj_checked .= ' checked="checked"';
                    }
                    break;
                case "avatar":
                case "picture":
                case "file":
                    $allowed_exts = '';
                    if (isset($rules['equal_to'])) {
                        if ($rules['equal_to'] != "") {
                            $allowed_exts = "'" . implode("', '", explode(",", $rules['equal_to'])) . "'";
                        }
                    }
                    // javascript will be added later
                    $upload_file_function = true;
                    $obj_label = '<label for="' . $fields_name_prefix . $field_id . '">' . $label . '</label>';
                    $obj_class = '';
                    $obj_name = ' name="' . $input_name . '"';
                    $obj_type = ' type="file"';
                    $obj_value = ' value=""';
                    $obj_value2 = '';
                    $obj_checked = "";
                    $obj_tag = "input";
                    $obj_closing_tag = false;
                    if ($type == "file") {
                        // if we do not escape then some translations can break
                        $warning_msg = $wpdb->escape(__("Please upload a file with one of the following extensions", $cimy_uef_domain));
                        $obj_style = ' onchange="uploadFile(\'your-profile\', \'' . $fields_name_prefix . $field_id . '\', \'' . $warning_msg . '\', Array(' . $allowed_exts . '));"';
                    } else {
                        // if we do not escape then some translations can break
                        $warning_msg = $wpdb->escape(__("Please upload an image with one of the following extensions", $cimy_uef_domain));
                        $obj_style = ' onchange="uploadFile(\'your-profile\', \'' . $fields_name_prefix . $field_id . '\', \'' . $warning_msg . '\', Array(\'gif\', \'png\', \'jpg\', \'jpeg\', \'tiff\'));"';
                    }
                    if ($old_value != "" && $rules['edit'] == 'edit_only_if_empty' || $old_value != "" && !current_user_can('edit_users') && $rules['edit'] == 'edit_only_by_admin_or_if_empty' || $rules['edit'] == 'no_edit' || $rules['edit'] == 'edit_only_by_admin' && !current_user_can('edit_users')) {
                        $obj_disabled = ' disabled="disabled"';
                    } else {
                        $obj_disabled = "";
                    }
                    break;
                case "registration-date":
                    if (isset($rules['equal_to'])) {
                        $obj_value = cimy_get_formatted_date($value, $rules['equal_to']);
                    } else {
                        $obj_value = cimy_get_formatted_date($value);
                    }
                    $obj_label = '<label>' . $label . '</label>';
                    break;
            }
            $obj_id = ' id="' . $fields_name_prefix . $field_id . '"';
            $obj_class = '';
            $obj_maxlen = "";
            if (in_array($type, $rule_maxlen_needed) && !in_array($type, $cimy_uef_file_types)) {
                if (isset($rules['max_length'])) {
                    $obj_maxlen = ' maxlength="' . $rules['max_length'] . '"';
                } else {
                    if (isset($rules['exact_length'])) {
                        $obj_maxlen = ' maxlength="' . $rules['exact_length'] . '"';
                    }
                }
            }
            if (in_array($type, $cimy_uef_textarea_types)) {
                $obj_rowscols = ' rows="3" cols="25"';
            } else {
                $obj_rowscols = '';
            }
            echo "\t";
            $form_object = '<' . $obj_tag . $obj_id . $obj_class . $obj_name . $obj_type . $obj_value . $obj_checked . $obj_maxlen . $obj_rowscols . $obj_style . $obj_disabled;
            if ($obj_closing_tag) {
                $form_object .= ">" . $obj_value2 . "</" . $obj_tag . ">";
            } else {
                $form_object .= " />";
            }
            echo "<th>";
            echo $obj_label;
            echo "</th>\n";
            echo "\t\t<td>";
            if ($description != "" && ($type == "picture" || $type == "picture-url")) {
                echo $description . "<br />";
            }
            if (in_array($type, $cimy_uef_file_types)) {
                $profileuser = get_user_to_edit($get_user_id);
            }
            if ($type == "avatar") {
                $user_email = $profileuser->user_email;
                echo '<div id="profpic">' . get_avatar($user_email, $size = '128') . "</div>\n\t\t";
            }
            if (in_array($type, $cimy_uef_file_types) && $value != "") {
                global $cimy_uef_plugins_dir;
                $blog_path = $cuef_upload_path;
                if ($cimy_uef_plugins_dir == "plugins" && is_multisite()) {
                    global $blog_id;
                    $blog_path .= $blog_id . "/";
                }
                $user_login = $profileuser->user_login;
                if ($type == "picture") {
                    $value_thumb = cimy_get_thumb_path($value);
                    $file_thumb = $blog_path . $user_login . "/" . cimy_get_thumb_path(basename($value));
                    $file_on_server = $blog_path . $user_login . "/" . basename($value);
                    echo "\n\t\t";
                    if (is_file($file_thumb)) {
                        echo '<a target="_blank" href="' . $value . '"><img src="' . $value_thumb . '" alt="picture" /></a><br />';
                        echo "\n\t\t";
                    } else {
                        if (is_file($file_on_server)) {
                            echo '<img src="' . $value . '" alt="picture" /><br />';
                            echo "\n\t\t";
                        }
                    }
                }
                if ($type == "file") {
                    echo '<a target="_blank" href="' . $value . '">';
                    echo basename($value);
                    echo '</a><br />';
                    echo "\n\t\t";
                }
                // if there is no image or there is the default one then disable delete button
                if ($old_value == "") {
                    $dis_delete_img = ' disabled="disabled"';
                } else {
                    // take the "can be modified" rule just set before
                    $dis_delete_img = $obj_disabled;
                    echo '<input type="hidden" name="' . $input_name . '_oldfile" value="' . basename($value) . '" />';
                    echo "\n\t\t";
                }
                echo '<input type="checkbox" name="' . $input_name . '_del" value="1" style="width:auto; border:0; background:white;"' . $dis_delete_img . ' />';
                if ($type == "file") {
                    echo " " . __("Delete the file", $cimy_uef_domain) . "<br /><br />";
                    echo "\n\t\t" . __("Update the file", $cimy_uef_domain) . "<br />";
                } else {
                    echo " " . __("Delete the picture", $cimy_uef_domain) . "<br /><br />";
                    echo "\n\t\t" . __("Update the picture", $cimy_uef_domain) . "<br />";
                }
                echo "\n\t\t";
            }
            if ($type == "picture-url") {
                if ($value != "") {
                    if (intval($rules['equal_to'])) {
                        echo '<a target="_blank" href="' . $value . '">';
                        echo '<img src="' . $value . '" alt="picture"' . $size . ' width="' . intval($rules['equal_to']) . '" height="*" />';
                        echo "</a>";
                    } else {
                        echo '<img src="' . $value . '" alt="picture" />';
                    }
                    echo "<br />";
                    echo "\n\t\t";
                }
                echo "<br />" . __("Picture URL:", $cimy_uef_domain) . "<br />\n\t\t";
            }
            // write to the html the form object built
            if ($type != "registration-date") {
                echo $form_object;
            } else {
                echo $obj_value;
            }
            if ($description != "" && $type != "picture" && $type != "picture-url") {
                if ($type == "textarea" || $type == "textarea-rich") {
                    echo "<br />";
                } else {
                    echo " ";
                }
                echo $description;
            }
            echo "</td>";
            echo "\n\t</tr>\n";
        }
        echo "</table>";
        if ($tiny_mce_objects != "") {
            $mce_skin = 'skin : "wp_theme",';
            require_once $cuef_plugin_dir . '/cimy_uef_init_mce.php';
        }
        if ($upload_file_function) {
            wp_print_scripts("cimy_uef_upload_file");
        }
        echo $end_cimy_uef_comment;
    }
}
function cimy_registration_form($errors = null, $show_type = 0)
{
    global $wpdb, $start_cimy_uef_comment, $end_cimy_uef_comment, $rule_maxlen_needed, $fields_name_prefix, $wp_fields_name_prefix, $cuef_plugin_dir, $cimy_uef_file_types, $cimy_uef_textarea_types, $user_level, $cimy_uef_domain;
    // 	cimy_switch_to_blog();
    $my_user_level = $user_level;
    // -1 == anonymous
    if (!is_user_logged_in()) {
        $my_user_level = -1;
    }
    // needed by cimy_uef_init_mce.php
    $cimy_uef_register_page = true;
    $extra_fields = get_cimyFields(false, true);
    $wp_fields = get_cimyFields(true);
    if (is_multisite()) {
        $input_class = "cimy_uef_input_mu";
    } else {
        $input_class = "cimy_uef_input_27";
    }
    $options = cimy_get_options();
    $tabindex = 21;
    echo $start_cimy_uef_comment;
    // needed to apply default values only first time and not in case of errors
    echo "\t<input type=\"hidden\" name=\"cimy_post\" value=\"1\" />\n";
    if ($options['confirm_form']) {
        if ($show_type == 0) {
            echo "\t<input type=\"hidden\" name=\"register_confirmation\" value=\"1\" />\n";
        } else {
            if ($show_type == 2) {
                echo "\t<input type=\"hidden\" name=\"register_confirmation\" value=\"2\" />\n";
            }
        }
    }
    $radio_checked = array();
    $i = 1;
    $upload_file_function = false;
    $is_jquery_added = false;
    $crop_image_function = false;
    // confirmation page, all fields are plain text + hidden fields to carry over values
    if ($show_type == 2) {
        $upload_dir = cimy_uef_get_dir_or_filename("");
        $dirs = glob($upload_dir . ".cimytemp_*.tmp");
        if (is_array($dirs)) {
            foreach ($dirs as $dir) {
                $diff = current_time('timestamp', true) - filemtime($dir);
                // If older than two days delete!
                if ($diff > 172800) {
                    cimy_rfr($dir . "/", "*");
                    if (is_dir($dir)) {
                        rmdir($dir);
                    }
                }
            }
        }
        $temp_user_login = "******" . sanitize_user($_POST['user_login']) . '_' . rand() . '.tmp';
        ?>
	<input type="hidden" name="temp_user_login" value="<?php 
        echo esc_attr($temp_user_login);
        ?>
" />
	<p id="user_login_p">
		<label for="user_login"><?php 
        _e("Username");
        ?>
 </label><input type="hidden" name="user_login" id="user_login" value="<?php 
        echo esc_attr($_POST["user_login"]);
        ?>
" /><?php 
        echo esc_html($_POST["user_login"]);
        ?>
	</p>
	<p id="user_email_p">
		<label for="user_email"><?php 
        _e("E-mail");
        ?>
 </label><input type="hidden" name="user_email" id="user_email" value="<?php 
        echo esc_attr($_POST["user_email"]);
        ?>
" /><?php 
        echo esc_html($_POST["user_email"]);
        ?>
	</p>
	<br />
<?php 
    }
    // do first the WP fields then the EXTRA fields
    while ($i <= 2) {
        if ($i == 1) {
            $fields = $wp_fields;
            $prefix = $wp_fields_name_prefix;
        } else {
            $fields = $extra_fields;
            $prefix = $fields_name_prefix;
            $current_fieldset = -1;
            if (!empty($options['fieldset_title'])) {
                $fieldset_titles = explode(',', $options['fieldset_title']);
            } else {
                $fieldset_titles = array();
            }
        }
        $tiny_mce_objects = "";
        foreach ($fields as $thisField) {
            $field_id = $thisField['ID'];
            $name = $thisField['NAME'];
            $rules = $thisField['RULES'];
            $type = $thisField['TYPE'];
            $old_type = $type;
            $label = $thisField['LABEL'];
            $description = cimy_uef_sanitize_content($thisField['DESCRIPTION']);
            $fieldset = empty($thisField['FIELDSET']) ? 0 : $thisField['FIELDSET'];
            $input_name = $prefix . esc_attr($name);
            $post_input_name = $prefix . $wpdb->escape($name);
            $maxlen = 0;
            $unique_id = $prefix . $field_id;
            $field_id_data = $input_name . "_" . $field_id . "_data";
            $advanced_options = cimy_uef_parse_advanced_options($rules["advanced_options"]);
            // showing the search then there is no need to upload buttons
            if ($show_type == 1) {
                if ($type == "password") {
                    continue;
                }
                if ($type == "avatar" || $type == "picture" || $type == "file") {
                    $type = "text";
                }
            } else {
                if ($show_type == 2) {
                    $type = "hidden";
                }
            }
            // if the current user LOGGED IN has not enough permissions to see the field, skip it
            if ($rules['show_level'] == 'view_cimy_extra_fields') {
                if (!current_user_can($rules['show_level'])) {
                    continue;
                }
            } else {
                if ($my_user_level < $rules['show_level']) {
                    continue;
                }
            }
            // if show_level == anonymous then do NOT ovverride other show_xyz rules
            if ($rules['show_level'] == -1) {
                if ($show_type == 0) {
                    // if flag to show the field in the registration is NOT activated, skip it
                    if (!$rules['show_in_reg']) {
                        continue;
                    }
                } else {
                    if ($show_type == 1) {
                        // if flag to show the field in the blog is NOT activated, skip it
                        if (!$rules['show_in_search']) {
                            continue;
                        }
                    }
                }
            }
            // uploading a file is not supported when confirmation email is enabled (on MS is turned on by default yes)
            if ((is_multisite() || $options["confirm_email"]) && in_array($type, $cimy_uef_file_types)) {
                continue;
            }
            if (isset($_POST[$post_input_name])) {
                if ($type == "dropdown-multi" || $old_type == "dropdown-multi") {
                    $value = stripslashes(implode(",", $_POST[$post_input_name]));
                } else {
                    $value = stripslashes($_POST[$post_input_name]);
                }
            } else {
                if (isset($_GET[$name])) {
                    if ($type == "dropdown-multi" || $old_type == "dropdown-multi") {
                        $value = stripslashes(implode(",", $_GET[$name]));
                    } else {
                        $value = stripslashes($_GET[$name]);
                    }
                } else {
                    if (!isset($_POST["cimy_post"])) {
                        $value = $thisField['VALUE'];
                        switch ($type) {
                            case "radio":
                                if ($value == "YES") {
                                    $value = $field_id;
                                } else {
                                    $value = "";
                                }
                                break;
                            case "checkbox":
                                if ($value == "YES") {
                                    $value = "1";
                                } else {
                                    $value = "";
                                }
                                break;
                        }
                    } else {
                        $value = "";
                    }
                }
            }
            if ($i != 1 && $fieldset > $current_fieldset && isset($fieldset_titles[$fieldset])) {
                $current_fieldset = $fieldset;
                if (isset($fieldset_titles[$current_fieldset])) {
                    echo "\n\t<h2>" . esc_html($fieldset_titles[$current_fieldset]) . "</h2>\n";
                }
            }
            if (!empty($description) && $type != "registration-date") {
                echo "\t";
                echo '<p id="' . $prefix . 'p_desc_' . $field_id . '" class="desc"><br />' . $description . '</p>';
                echo "\n";
            }
            echo "\t";
            echo '<p id="' . $prefix . 'p_field_' . $field_id . '">';
            echo "\n\t";
            switch ($type) {
                case "picture-url":
                case "password":
                case "text":
                    $obj_label = '<label for="' . $unique_id . '">' . cimy_uef_sanitize_content($label) . '</label>';
                    $obj_class = ' class="' . $input_class . '"';
                    $obj_name = ' name="' . $input_name . '"';
                    if ($type == "picture-url") {
                        $obj_type = ' type="text"';
                    } else {
                        $obj_type = ' type="' . $type . '"';
                    }
                    $obj_value = ' value="' . esc_attr($value) . '"';
                    $obj_value2 = "";
                    $obj_checked = "";
                    $obj_tag = "input";
                    $obj_closing_tag = false;
                    break;
                case "dropdown":
                case "dropdown-multi":
                    // cimy_dropDownOptions uses cimy_uef_sanitize_content and esc_attr by itself
                    $ret = cimy_dropDownOptions($label, $value);
                    $label = $ret['label'];
                    $html = $ret['html'];
                    if ($type == "dropdown-multi") {
                        $obj_name = ' name="' . $input_name . '[]" multiple="multiple" size="6"';
                    } else {
                        $obj_name = ' name="' . $input_name . '"';
                    }
                    $obj_label = '<label for="' . $unique_id . '">' . $label . '</label>';
                    $obj_class = ' class="' . $input_class . '"';
                    $obj_type = '';
                    $obj_value = '';
                    $obj_value2 = $html;
                    $obj_checked = "";
                    $obj_tag = "select";
                    $obj_closing_tag = true;
                    break;
                case "textarea":
                    $obj_label = '<label for="' . $unique_id . '">' . cimy_uef_sanitize_content($label) . '</label>';
                    $obj_class = ' class="' . $input_class . '"';
                    $obj_name = ' name="' . $input_name . '"';
                    $obj_type = "";
                    $obj_value = "";
                    $obj_value2 = esc_html($value);
                    $obj_checked = "";
                    $obj_tag = "textarea";
                    $obj_closing_tag = true;
                    break;
                case "textarea-rich":
                    if ($tiny_mce_objects == "") {
                        $tiny_mce_objects = $fields_name_prefix . $field_id;
                    } else {
                        $tiny_mce_objects .= "," . $fields_name_prefix . $field_id;
                    }
                    $obj_label = '<label for="' . $unique_id . '">' . cimy_uef_sanitize_content($label) . '</label>';
                    $obj_class = ' class="' . $input_class . '"';
                    $obj_name = ' name="' . $input_name . '"';
                    $obj_type = "";
                    $obj_value = "";
                    $obj_value2 = esc_html($value);
                    $obj_checked = "";
                    $obj_tag = "textarea";
                    $obj_closing_tag = true;
                    break;
                case "checkbox":
                    $obj_label = '<label class="cimy_uef_label_checkbox" for="' . $unique_id . '"> ' . cimy_uef_sanitize_content($label) . '</label><br />';
                    $obj_class = ' class="cimy_uef_checkbox"';
                    $obj_name = ' name="' . $input_name . '"';
                    $obj_type = ' type="' . $type . '"';
                    $obj_value = ' value="1"';
                    $obj_value2 = "";
                    $value == "1" ? $obj_checked = ' checked="checked"' : ($obj_checked = '');
                    $obj_tag = "input";
                    $obj_closing_tag = false;
                    break;
                case "radio":
                    $obj_label = '<label class="cimy_uef_label_radio" for="' . $unique_id . '"> ' . cimy_uef_sanitize_content($label) . '</label>';
                    $obj_class = ' class="cimy_uef_radio"';
                    $obj_name = ' name="' . $input_name . '"';
                    $obj_type = ' type="' . $type . '"';
                    $obj_value = ' value="' . $field_id . '"';
                    $obj_value2 = "";
                    $obj_tag = "input";
                    $obj_closing_tag = false;
                    // do not check if another check was done
                    if (intval($value) == intval($field_id) && !in_array($name, $radio_checked)) {
                        $obj_checked = ' checked="checked"';
                        $radio_checked += array($name => true);
                    } else {
                        $obj_checked = '';
                    }
                    break;
                case "avatar":
                case "picture":
                case "file":
                    $allowed_exts = '';
                    if (isset($rules['equal_to'])) {
                        if ($rules['equal_to'] != "") {
                            $allowed_exts = "'" . implode("', '", explode(",", $rules['equal_to'])) . "'";
                        }
                    }
                    if ($type == "file") {
                        // if we do not escape then some translations can break
                        $warning_msg = $wpdb->escape(__("Please upload a file with one of the following extensions", $cimy_uef_domain));
                        $obj_checked = ' onchange="uploadFile(\'registerform\', \'' . $unique_id . '\', \'' . $warning_msg . '\', Array(' . $allowed_exts . '));"';
                    } else {
                        // if we do not escape then some translations can break
                        $warning_msg = $wpdb->escape(__("Please upload an image with one of the following extensions", $cimy_uef_domain));
                        $obj_checked = ' onchange="uploadFile(\'registerform\', \'' . $unique_id . '\', \'' . $warning_msg . '\', Array(\'gif\', \'png\', \'jpg\', \'jpeg\', \'tiff\'));"';
                    }
                    // javascript will be added later
                    $upload_file_function = true;
                    $obj_label = '<label for="' . $unique_id . '">' . cimy_uef_sanitize_content($label) . ' </label>';
                    $obj_class = ' class="cimy_uef_picture"';
                    $obj_name = ' name="' . $input_name . '"';
                    $obj_type = ' type="file"';
                    $obj_value = ' value="' . esc_attr($value) . '"';
                    $obj_value2 = "";
                    $obj_tag = "input";
                    $obj_closing_tag = false;
                    break;
                case "hidden":
                    $obj_label = "";
                    $obj_value2 = "";
                    switch ($old_type) {
                        case 'checkbox':
                            $value == 1 ? $obj_value2 = __("YES", $cimy_uef_domain) : ($obj_value2 = __("NO", $cimy_uef_domain));
                            break;
                        case 'radio':
                            intval($value) == intval($field_id) ? $obj_value2 = __("YES", $cimy_uef_domain) : ($obj_value2 = __("NO", $cimy_uef_domain));
                            break;
                        case 'dropdown':
                        case 'dropdown-multi':
                            $ret = cimy_dropDownOptions($label, $value);
                            $label = $ret['label'];
                            break;
                        case 'picture':
                        case 'avatar':
                        case 'file':
                            $value = cimy_manage_upload($input_name, $temp_user_login, $rules, false, false, $type, !empty($advanced_options["filename"]) ? $advanced_options["filename"] : "");
                            $file_on_server = cimy_uef_get_dir_or_filename($temp_user_login, $value, false);
                            $file_thumb = cimy_uef_get_dir_or_filename($temp_user_login, $value, true);
                            if ($advanced_options["no-thumb"] && is_file($file_thumb)) {
                                rename($file_thumb, $file_on_server);
                            }
                            // yea little trick
                            $obj_value2 = "&nbsp;";
                            break;
                    }
                    if ($old_type != "password") {
                        $obj_label = '<label for="' . $unique_id . '">' . cimy_uef_sanitize_content($label) . ' </label>';
                        if (empty($obj_value2)) {
                            $obj_value2 = cimy_uef_sanitize_content($value);
                        }
                    }
                    $obj_class = '';
                    $obj_name = ' name="' . $input_name . '"';
                    $obj_type = ' type="hidden"';
                    $obj_value = ' value="' . esc_attr($value) . '"';
                    $obj_checked = "";
                    $obj_tag = "input";
                    $obj_closing_tag = false;
                    break;
                case "registration-date":
                    $obj_label = '';
                    $obj_class = '';
                    $obj_name = ' name="' . $input_name . '"';
                    $obj_type = ' type="hidden"';
                    $obj_value = ' value="' . esc_attr($value) . '"';
                    $obj_value2 = "";
                    $obj_checked = "";
                    $obj_tag = "input";
                    $obj_closing_tag = false;
                    break;
            }
            $obj_id = ' id="' . $unique_id . '"';
            // tabindex not used in MU, dropping...
            if (is_multisite()) {
                $obj_tabindex = "";
            } else {
                $obj_tabindex = ' tabindex="' . strval($tabindex) . '"';
                $tabindex++;
            }
            $obj_maxlen = "";
            if (in_array($type, $rule_maxlen_needed) && !in_array($type, $cimy_uef_file_types)) {
                if (isset($rules['max_length'])) {
                    $obj_maxlen = ' maxlength="' . $rules['max_length'] . '"';
                } else {
                    if (isset($rules['exact_length'])) {
                        $obj_maxlen = ' maxlength="' . $rules['exact_length'] . '"';
                    }
                }
            }
            if (in_array($type, $cimy_uef_textarea_types)) {
                $obj_rowscols = ' rows="3" cols="25"';
            } else {
                $obj_rowscols = '';
            }
            echo "\t";
            $form_object = '<' . $obj_tag . $obj_type . $obj_name . $obj_id . $obj_class . $obj_value . $obj_checked . $obj_maxlen . $obj_rowscols . $obj_tabindex;
            if ($obj_closing_tag) {
                $form_object .= ">" . $obj_value2 . "</" . $obj_tag . ">";
            } else {
                if ($type == "hidden") {
                    $form_object .= " />" . $obj_value2;
                    if (in_array($old_type, $cimy_uef_file_types)) {
                        echo "<input type=\"hidden\" name=\"" . esc_attr($field_id_data) . "_size\" id=\"" . esc_attr($field_id_data) . "_size\" value=\"" . strval($_FILES[$input_name]['size'] / 1024) . "\" />";
                        echo "<input type=\"hidden\" name=\"" . esc_attr($field_id_data) . "_type\" id=\"" . esc_attr($field_id_data) . "_type\" value=\"" . strval($_FILES[$input_name]['type']) . "\" />";
                    }
                    if (($old_type == "picture" || $old_type == "avatar") && is_file($file_on_server)) {
                        if (!$is_jquery_added) {
                            wp_print_scripts("jquery");
                            $is_jquery_added = true;
                        }
                        $crop_image_function = true;
                        echo '<img id="' . esc_attr($field_id_data) . '" src="' . esc_attr($value) . '" alt="picture" /><br />';
                        echo "<input type=\"hidden\" name=\"" . esc_attr($field_id_data) . "_button\" id=\"" . esc_attr($field_id_data) . "_button\" value=\"1\" />";
                        echo "<input type=\"hidden\" name=\"" . esc_attr($field_id_data) . "_x1\" id=\"" . esc_attr($field_id_data) . "_x1\" value=\"\" />";
                        echo "<input type=\"hidden\" name=\"" . esc_attr($field_id_data) . "_y1\" id=\"" . esc_attr($field_id_data) . "_y1\" value=\"\" />";
                        echo "<input type=\"hidden\" name=\"" . esc_attr($field_id_data) . "_x2\" id=\"" . esc_attr($field_id_data) . "_x2\" value=\"\" />";
                        echo "<input type=\"hidden\" name=\"" . esc_attr($field_id_data) . "_y2\" id=\"" . esc_attr($field_id_data) . "_y2\" value=\"\" />";
                        echo "<input type=\"hidden\" name=\"" . esc_attr($field_id_data) . "_w\" id=\"" . esc_attr($field_id_data) . "_w\" value=\"\" />";
                        echo "<input type=\"hidden\" name=\"" . esc_attr($field_id_data) . "_h\" id=\"" . esc_attr($field_id_data) . "_h\" value=\"\" />";
                        $imgarea_options = "handles: true, fadeSpeed: 200, onSelectChange: preview";
                        if (isset($advanced_options["crop_x1"]) && isset($advanced_options["crop_y1"]) && isset($advanced_options["crop_x2"]) && isset($advanced_options["crop_y2"])) {
                            $imgarea_options .= ", x1: " . intval($advanced_options["crop_x1"]);
                            $imgarea_options .= ", y1: " . intval($advanced_options["crop_y1"]);
                            $imgarea_options .= ", x2: " . intval($advanced_options["crop_x2"]);
                            $imgarea_options .= ", y2: " . intval($advanced_options["crop_y2"]);
                        }
                        if (!empty($advanced_options["crop_ratio"])) {
                            $imgarea_options .= ", aspectRatio: '" . esc_js($advanced_options["crop_ratio"]) . "'";
                        } else {
                            if ($type == "avatar") {
                                $imgarea_options .= ", aspectRatio: '1:1'";
                            }
                        }
                        echo "<script type='text/javascript'>jQuery(document).ready(function () { jQuery('#" . esc_js($field_id_data) . "').imgAreaSelect({ " . $imgarea_options . " }); });</script>";
                    }
                } else {
                    $form_object .= " />";
                }
            }
            if ($type != "radio" && $type != "checkbox") {
                echo $obj_label;
            }
            if (is_multisite()) {
                if ($errmsg = $errors->get_error_message($unique_id)) {
                    echo '<p class="error">' . $errmsg . '</p>';
                }
            }
            // write to the html the form object built
            echo $form_object;
            if ($show_type == 0 && $i == 1 && $options['password_meter']) {
                if ($input_name == $prefix . "PASSWORD") {
                    $pass1_id = $unique_id;
                }
                if ($input_name == $prefix . "PASSWORD2") {
                    echo "\n\t\t<div id=\"pass-strength-result\">" . __('Strength indicator') . "</div>";
                    echo "\n\t\t<p class=\"description indicator-hint\">" . __('Hint: The password should be at least seven characters long. To make it stronger, use upper and lower case letters, numbers and symbols like ! " ? $ % ^ &amp; ).') . "</p><br />";
                    $pass2_id = $unique_id;
                }
            }
            if (!($type != "radio" && $type != "checkbox")) {
                echo $obj_label;
            }
            echo "\n\t</p>\n";
            if ($type == "textarea-rich" || in_array($type, $cimy_uef_file_types)) {
                echo "\t<br />\n";
            }
        }
        $i++;
    }
    echo "\t<br />";
    if ($show_type == 0) {
        if (!empty($tiny_mce_objects)) {
            require_once $cuef_plugin_dir . '/cimy_uef_init_mce.php';
        }
        if ($options['password_meter']) {
            if (!$is_jquery_added) {
                wp_print_scripts("jquery");
                $is_jquery_added = true;
            }
            require_once $cuef_plugin_dir . '/cimy_uef_init_strength_meter.php';
        }
    }
    if ($crop_image_function) {
        wp_print_scripts('imgareaselect');
        wp_print_styles('imgareaselect');
        wp_print_scripts('cimy_uef_img_selection');
    }
    if ($show_type != 2 && $options['captcha'] == "securimage") {
        global $cuef_securimage_webpath;
        ?>
		<div style="width: 278px; float: left; height: 80px; vertical-align: text-top;">
			<img id="captcha" align="left" style="padding-right: 5px; border: 0" src="<?php 
        echo $cuef_securimage_webpath;
        ?>
/securimage_show_captcha.php" alt="CAPTCHA Image" />
			<object type="application/x-shockwave-flash" data="<?php 
        echo $cuef_securimage_webpath;
        ?>
/securimage_play.swf?audio=<?php 
        echo $cuef_securimage_webpath;
        ?>
/securimage_play.php&#038;bgColor1=#fff&#038;bgColor2=#fff&#038;iconColor=#777&#038;borderWidth=1&#038;borderColor=#000" height="19" width="19"><param name="movie" value="<?php 
        echo $cuef_securimage_webpath;
        ?>
/securimage_play.swf?audio=<?php 
        echo $cuef_securimage_webpath;
        ?>
/securimage_play.php&#038;bgColor1=#fff&#038;bgColor2=#fff&#038;iconColor=#777&#038;borderWidth=1&#038;borderColor=#000" /></object>
			<br /><br /><br /><br />
			<a align="right" tabindex="<?php 
        echo $tabindex;
        $tabindex++;
        ?>
" style="border-style: none" href="#" onclick="document.getElementById('captcha').src = '<?php 
        echo $cuef_securimage_webpath;
        ?>
/securimage_show_captcha.php?' + Math.random(); return false"><img src="<?php 
        echo $cuef_securimage_webpath;
        ?>
/images/refresh.gif" alt="<?php 
        _e("Change image", $cimy_uef_domain);
        ?>
" border="0" onclick="this.blur()" align="bottom" /></a>
		</div>
		<div style="width: 278px; float: left; height: 50px; vertical-align: bottom; padding: 5px;">
			<?php 
        _e("Insert the code:", $cimy_uef_domain);
        ?>
&nbsp;<input type="text" name="securimage_response_field" size="10" maxlength="6" tabindex="<?php 
        echo $tabindex;
        $tabindex++;
        ?>
" />
		</div>
<?php 
    }
    if ($show_type != 2 && $options['captcha'] == "recaptcha" && !empty($options['recaptcha_public_key']) && !empty($options['recaptcha_private_key'])) {
        require_once $cuef_plugin_dir . '/recaptcha/recaptchalib.php';
        ?>
			<script type='text/javascript'>
				var RecaptchaOptions = {
					lang: '<?php 
        echo substr(get_locale(), 0, 2);
        ?>
',
					tabindex : <?php 
        echo strval($tabindex);
        $tabindex++;
        ?>
				};
			</script>
	<?php 
        // no need if Tiny MCE is present already
        if ($tiny_mce_objects == "") {
            ?>
			<script type='text/javascript'>
				var login_div = document.getElementById("login");
				login_div.style.width = "375px";
			</script>
	<?php 
        }
        echo recaptcha_get_html($options['recaptcha_public_key']);
    }
    if ($upload_file_function) {
        wp_print_scripts("cimy_uef_upload_file");
    }
    cimy_switch_current_blog(true);
    echo $end_cimy_uef_comment;
}