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["post_name"]}) && $field["type"] != "password") { $message .= sprintf(__('%s: %s', $cimy_uef_domain), $field["label"], $user->{$field["post_name"]}) . "\r\n"; } } } else { $fields = get_cimyFields(true); foreach ($fields as $field) { if (!empty($meta[$wp_fields_name_prefix . $field["NAME"]]) && $field["TYPE"] != "password") { $message .= sprintf(__('%s: %s', $cimy_uef_domain), $field["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; }
function cimy_um_export_data() { global $wpdb, $wpdb_data_table, $wpdb_fields_table, $cimy_um_domain, $cum_upload_path; global $userid_code, $useremail_code, $username_code, $firstname_code, $lastname_code, $nickname_code, $website_code, $aim_code, $yahoo_code, $jabber_code, $password_code, $role_code, $desc_code, $registered_code, $displayname_code, $usernicename_code, $cimy_uef_name; $results = array(); if (!current_user_can('list_users')) { return; } set_time_limit(0); $field_separator = stripslashes($_POST["db_field_separator"]); $text_separator = stripslashes($_POST["db_text_separator"]); // fputcsv has been introduced with PHP v5.1.0 and works when delimiters are 1 character long $use_fput_csv = strlen($field_separator) == 1 && strlen($text_separator) == 1 && version_compare(PHP_VERSION, "5.1.0", '>=') ? true : false; if (isset($_POST["db_extra_fields"]) && isset($cimy_uef_name)) { global $wpdb_data_table; $extra_fields = get_cimyFields(); $all_radio_fields = array(); } else { $extra_fields = false; } if (isset($_POST['db_date_format'])) { $db_date_format = $_POST['db_date_format']; } else { $db_date_format = ""; } $tmpfile = $cum_upload_path . "cimy_um_exported_users-" . date("Ymd-His") . ".csv"; $fd_tmp_file = fopen($tmpfile, "w"); if ($use_fput_csv && !empty($_POST['db_excel_compatibility'])) { // http://www.skoumal.net/en/making-utf-8-csv-excel // add BOM to fix UTF-8 in Excel fputs($fd_tmp_file, chr(0xef) . chr(0xbb) . chr(0xbf)); } if ($use_fput_csv) { $header_array = array($userid_code, $username_code, $role_code, $firstname_code, $lastname_code, $nickname_code, $displayname_code, $usernicename_code, $useremail_code, $website_code, $aim_code, $yahoo_code, $jabber_code, $desc_code, $registered_code); } else { $line = $text_separator . $userid_code . $text_separator . $field_separator . $text_separator . $username_code . $text_separator . $field_separator . $text_separator . $role_code . $text_separator . $field_separator . $text_separator . $firstname_code . $text_separator . $field_separator . $text_separator . $lastname_code . $text_separator . $field_separator . $text_separator . $nickname_code . $text_separator . $field_separator . $text_separator . $displayname_code . $text_separator . $field_separator . $text_separator . $usernicename_code . $text_separator . $field_separator . $text_separator . $useremail_code . $text_separator . $field_separator . $text_separator . $website_code . $text_separator . $field_separator . $text_separator . $aim_code . $text_separator . $field_separator . $text_separator . $yahoo_code . $text_separator . $field_separator . $text_separator . $jabber_code . $text_separator . $field_separator . $text_separator . $desc_code . $text_separator . $field_separator . $text_separator . $registered_code . $text_separator; } if ($extra_fields) { foreach ($extra_fields as $field) { // avoid radio fields duplicates if ($field["TYPE"] == "radio") { if (in_array($field["NAME"], $all_radio_fields)) { continue; } else { $all_radio_fields[] = $field["NAME"]; } } else { if ($field["TYPE"] == "registration-date") { continue; } } if ($use_fput_csv) { $header_array[] = $field["NAME"]; } else { $line .= $field_separator . $text_separator . $field["NAME"] . $text_separator; } } } if ($use_fput_csv) { fputcsv($fd_tmp_file, $header_array, $field_separator, $text_separator); } else { $line = str_replace(array("\r\n\r\n", "\r\n", "\n\r", "\r", "\n"), " ", $line); $line .= "\r"; // UTF-16LE is needed to open and use the csv-file in Excel (thanks to Jean-Pierre) // http://www.php.net/manual/en/function.iconv.php#104287 // http://www.php.net/manual/en/function.fwrite.php#69566 if (!empty($_POST['db_excel_compatibility'])) { $line = mb_convert_encoding($line, 'UTF-16LE', 'UTF-8'); } fwrite($fd_tmp_file, $line); } $results["exported"] = array(); $offset = 0; // max number of users to be retrieved at once // bigger number increases speed, but also memory usage, be reasonable $limit = 250; $args = array('blog_id' => $GLOBALS['blog_id'], 'role' => '', 'meta_key' => '', 'meta_value' => '', 'meta_compare' => '', 'include' => array(), 'exclude' => array(), 'orderby' => $_POST['db_sort_by'], 'order' => 'ASC', 'offset' => $offset, 'search' => '', 'number' => $limit, 'count_total' => true, 'fields' => 'all_with_meta', 'who' => ''); // needed otherwise does not export everything if (is_network_admin()) { $args['blog_id'] = 0; } $all_users = get_users($args); $tot_users = count($all_users); while ($tot_users > 0) { foreach ($all_users as $current_user) { $results["exported"][] = $current_user->user_login; if ($use_fput_csv) { $field_array = array($current_user->ID, $current_user->user_login, $current_user->roles[0], $current_user->first_name, $current_user->last_name, $current_user->nickname, $current_user->display_name, $current_user->user_nicename, $current_user->user_email, $current_user->user_url, $current_user->aim, $current_user->yim, $current_user->jabber, $current_user->user_description, $current_user->user_registered); } else { $line = $text_separator . $current_user->ID . $text_separator . $field_separator . $text_separator . $current_user->user_login . $text_separator . $field_separator . $text_separator . $current_user->roles[0] . $text_separator . $field_separator . $text_separator . $current_user->first_name . $text_separator . $field_separator . $text_separator . $current_user->last_name . $text_separator . $field_separator . $text_separator . $current_user->nickname . $text_separator . $field_separator . $text_separator . $current_user->display_name . $text_separator . $field_separator . $text_separator . $current_user->user_nicename . $text_separator . $field_separator . $text_separator . $current_user->user_email . $text_separator . $field_separator . $text_separator . $current_user->user_url . $text_separator . $field_separator . $text_separator . $current_user->aim . $text_separator . $field_separator . $text_separator . $current_user->yim . $text_separator . $field_separator . $text_separator . $current_user->jabber . $text_separator . $field_separator . $text_separator . $current_user->user_description . $text_separator . $field_separator . $text_separator . $current_user->user_registered . $text_separator; } if ($extra_fields) { $all_radio_fields = array(); $ef_db = get_cimyFieldValue($current_user->ID, false); $i = 0; foreach ($extra_fields as $field) { $db_name = ""; $db_value = ""; // avoid radio fields duplicates if ($field["TYPE"] == "radio") { if (in_array($field["NAME"], $all_radio_fields)) { continue; } else { $all_radio_fields[] = $field["NAME"]; } } if (isset($ef_db[$i])) { $db_name = $ef_db[$i]['NAME']; } // can happen if the field's data has not been written in the DB yet // this issue has been introduced with the get_cimyFieldValue calls optimization in v1.1.0 if ($field["NAME"] == $db_name) { if (isset($ef_db[$i])) { $db_value = $ef_db[$i]['VALUE']; } $i++; if ($field["TYPE"] == "registration-date") { continue; } // $db_value = cimy_get_formatted_date($db_value, $db_date_format); } if ($use_fput_csv) { $field_array[] = $db_value; } else { $line .= $field_separator . $text_separator . $db_value . $text_separator; } } } if ($use_fput_csv) { fputcsv($fd_tmp_file, $field_array, $field_separator, $text_separator); } else { $line = str_replace(array("\r\n\r\n", "\r\n", "\n\r", "\r", "\n"), " ", $line); $line .= "\r"; // UTF-16LE is needed to open and use the csv-file in Excel (thanks to Jean-Pierre) // http://www.php.net/manual/en/function.iconv.php#104287 // http://www.php.net/manual/en/function.fwrite.php#69566 if (!empty($_POST['db_excel_compatibility'])) { $line = mb_convert_encoding($line, 'UTF-16LE', 'UTF-8'); } fwrite($fd_tmp_file, $line); } } // get next round of users (if any) $offset += $tot_users; $args["offset"] = $offset; $all_users = get_users($args); $tot_users = count($all_users); } fclose($fd_tmp_file); $results["tmp_file"] = $tmpfile; return $results; }
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_save_options() { global $wpdb, $cimy_uef_version, $wpdb_wp_fields_table, $max_length_fieldset_value, $cimy_uef_domain, $wp_hidden_fields, $max_length_extra_fields_title; if (!cimy_check_admin('manage_options')) { return; } if (isset($_POST['force_activation'])) { cimy_plugin_install(); return; } if (!check_admin_referer('cimy_uef_options', 'cimy_uef_optionsnonce')) { return; } $results = array(); $do_not_save_options = false; $options = cimy_get_options(); $old_wp_hidden_fields = $options['wp_hidden_fields']; $options['aue_hidden_fields'] = array(); $options['wp_hidden_fields'] = array(); $options['welcome_email'] = stripslashes($_POST['welcome_email']); $options['extra_fields_title'] = stripslashes($_POST['extra_fields_title']); $options['extra_fields_title'] = substr($options['extra_fields_title'], 0, $max_length_extra_fields_title); $options['fieldset_title'] = stripslashes($_POST['fieldset_title']); $options['fieldset_title'] = substr($options['fieldset_title'], 0, $max_length_fieldset_value); $old_reg_log = $options['registration-logo']; $registration_logo = cimy_manage_upload("registration_logo", "", array(), empty($old_reg_log) ? false : basename($old_reg_log), isset($_POST['registration_logo_del']), "registration-logo"); if (!empty($registration_logo) || isset($_POST['registration_logo_del'])) { $options['registration-logo'] = $registration_logo; } if (isset($_POST['db_wp_fields_check'])) { switch ($_POST['db_wp_fields']) { case 'empty': cimy_manage_db('empty_wp_fields'); $results['empty_wp_fields'] = __("WordPress Fields table emptied", $cimy_uef_domain); break; case 'delete': cimy_manage_db('drop_wp_fields'); $results['empty_wp_fields'] = __("WordPress Fields table deleted", $cimy_uef_domain); break; } } if (isset($_POST['db_extra_fields_check'])) { switch ($_POST['db_extra_fields']) { case 'empty': cimy_manage_db('empty_extra_fields'); $results['empty_extra_fields'] = __("Extra Fields table emptied", $cimy_uef_domain); break; case 'delete': cimy_manage_db('drop_extra_fields'); $results['empty_extra_fields'] = __("Extra Fields table deleted", $cimy_uef_domain); break; } } if (isset($_POST['db_data_check'])) { switch ($_POST['db_data']) { case 'empty': cimy_manage_db('empty_data'); $results['empty_data'] = __("Users Data table emptied", $cimy_uef_domain); break; case 'delete': cimy_manage_db('drop_data'); $results['empty_data'] = __("Users Data table deleted", $cimy_uef_domain); break; } } if (isset($_POST['db_options_check'])) { switch ($_POST['db_options']) { case 'default': cimy_manage_db('default_options'); $do_not_save_options = true; $results['results'] = __("Options set to default values", $cimy_uef_domain); break; case 'delete': cimy_manage_db('drop_options'); $do_not_save_options = true; $results['results'] = __("Options deleted", $cimy_uef_domain); break; } } if (isset($_POST['do_not_save_options'])) { $do_not_save_options = true; } if (isset($_POST['hide_username'])) { array_push($options['aue_hidden_fields'], 'username'); } if (isset($_POST['hide_name'])) { array_push($options['aue_hidden_fields'], 'name'); } if (isset($_POST['hide_posts'])) { array_push($options['aue_hidden_fields'], 'posts'); } if (isset($_POST['hide_email'])) { array_push($options['aue_hidden_fields'], 'email'); } if (isset($_POST['hide_website'])) { array_push($options['aue_hidden_fields'], 'website'); } if (isset($_POST['hide_role'])) { array_push($options['aue_hidden_fields'], 'role'); } $tot_wp_hidden_fields = count($old_wp_hidden_fields); $action = "add"; isset($_POST['confirm_email']) ? $options['confirm_email'] = true : ($options['confirm_email'] = false); isset($_POST['confirm_form']) ? $options['confirm_form'] = true : ($options['confirm_form'] = false); if ($options['confirm_email']) { cimy_force_signup_table_creation(); } isset($_POST['redirect_to']) ? $options['redirect_to'] = $_POST['redirect_to'] : ($options['redirect_to'] = ""); isset($_POST['mail_include_fields']) ? $options['mail_include_fields'] = true : ($options['mail_include_fields'] = false); if (isset($_POST['captcha'])) { $options['captcha'] = $_POST['captcha']; } if (isset($_POST['recaptcha_public_key'])) { $options['recaptcha_public_key'] = trim($_POST['recaptcha_public_key']); } if (isset($_POST['recaptcha_private_key'])) { $options['recaptcha_private_key'] = trim($_POST['recaptcha_private_key']); } if (!isset($results['empty_wp_fields'])) { if (isset($_POST['show_wp_password'])) { array_push($options['wp_hidden_fields'], 'password'); if (!in_array("password", $old_wp_hidden_fields)) { $data = $wp_hidden_fields['password']; $data['num_fields'] = $tot_wp_hidden_fields; $tot_wp_hidden_fields++; cimy_save_field($action, $wpdb_wp_fields_table, $data); } if (isset($_POST['show_wp_password2'])) { array_push($options['wp_hidden_fields'], 'password2'); if (!in_array("password2", $old_wp_hidden_fields)) { $data = $wp_hidden_fields['password2']; $data['num_fields'] = $tot_wp_hidden_fields; $tot_wp_hidden_fields++; cimy_save_field($action, $wpdb_wp_fields_table, $data); } } isset($_POST['show_wp_password_meter']) ? $options['password_meter'] = true : ($options['password_meter'] = false); } else { $options['password_meter'] = false; } $db_wp_fields_independent = array("firstname", "lastname", "nickname", "website", "aim", "yahoo", "jgt", "bio-info"); foreach ($db_wp_fields_independent as $wp_field_independent) { if (isset($_POST['show_wp_' . $wp_field_independent])) { array_push($options['wp_hidden_fields'], $wp_field_independent); if (!in_array($wp_field_independent, $old_wp_hidden_fields)) { $data = $wp_hidden_fields[$wp_field_independent]; $data['num_fields'] = $tot_wp_hidden_fields; $tot_wp_hidden_fields++; cimy_save_field($action, $wpdb_wp_fields_table, $data); } } } } $all_wp_fields = get_cimyFields(true); $sql = "DELETE FROM " . $wpdb_wp_fields_table . " WHERE "; $k = -1; $j = -1; $msg = ""; $not_del_old = ""; $not_del_sql = ""; foreach ($all_wp_fields as $wp_field) { $f_name = strtolower($wp_field['NAME']); $f_order = intval($wp_field['F_ORDER']); if (!in_array($f_name, $options['wp_hidden_fields'])) { if (in_array($f_name, $old_wp_hidden_fields)) { if ($k > -1) { $sql .= " OR "; $msg .= ", "; } else { $k = $f_order; $j = $f_order; } $sql .= "F_ORDER=" . $f_order; $msg .= $f_order; } } else { if ($j > -1) { if ($not_del_old != "") { $not_del_old .= ", "; } $not_del_sql .= " WHEN " . $f_order . " THEN " . $j . " "; $not_del_old .= $f_order; $j++; } } } // if at least one field was selected if ($k > -1) { // $sql WILL BE: DELETE FROM <table> WHERE F_ORDER=<value1> [OR F_ORDER=<value2> ...] $wpdb->query($sql); if ($not_del_sql != "") { $not_del_sql = "UPDATE " . $wpdb_wp_fields_table . " SET F_ORDER=CASE F_ORDER" . $not_del_sql . "ELSE F_ORDER END WHERE F_ORDER IN(" . $not_del_old . ")"; // $not_del_sql WILL BE: UPDATE <table> SET F_ORDER=CASE F_ORDER WHEN <oldvalue1> THEN <newvalue1> [WHEN ... THEN ...] ELSE F_ORDER END WHERE F_ORDER IN(<oldvalue1> [, <oldvalue2>...]) $wpdb->query($not_del_sql); } } if (!$do_not_save_options) { cimy_set_options($options); $results['results'] = __("Options changed", $cimy_uef_domain); } return $results; }
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 = " " : ($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 ! " ? $ % ^ & ).') . "</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; }
function cimy_admin_users_list_page() { global $wpdb, $wp_roles, $wpdb_data_table, $cimy_uef_options, $cuef_upload_path, $cimy_uef_domain; if (!cimy_check_admin('edit_users')) { return; } $options = cimy_get_options(); if (isset($_POST["cimy_uef_users_per_page"])) { $users_per_page = $_POST["cimy_uef_users_per_page"]; $options["users_per_page"] = $users_per_page; cimy_set_options($options); } else { $users_per_page = $options["users_per_page"]; } $dropdown_first_item = '--- ' . __("select", $cimy_uef_domain) . ' ---'; $extra_fields = get_cimyFields(); if (isset($_POST["submit_new_values"])) { foreach ($_POST["users"] as $user_id) { foreach ($_POST["ef_write_type"] as $ef_name => $ef_type) { if (!isset($_POST["ef_write_sel"][$ef_name])) { continue; } if (isset($_POST["ef_write"][$ef_name])) { $ef_value = $_POST["ef_write"][$ef_name]; // if it is selected the "--- select ---" item then skip this check if (($ef_type == "dropdown" || $ef_type == "dropdown-multi") && $ef_value == $dropdown_first_item) { continue; } set_cimyFieldValue($user_id, $ef_name, $ef_value); } else { if ($ef_type == "checkbox") { $ef_value = "NO"; set_cimyFieldValue($user_id, $ef_name, ""); } } } } } // yes stupid WP_User_Search doesn't support custom $users_per_page support, lets add it! class Cimy_User_Search extends WP_User_Search { function Cimy_User_Search($search_term = '', $page = '', $role = '', $users_per_page = 50) { $this->search_term = $search_term; $this->raw_page = '' == $page ? false : (int) $page; $this->page = (int) ('' == $page) ? 1 : $page; $this->role = $role; $this->users_per_page = intval($users_per_page); $this->prepare_query(); $this->query(); $this->prepare_vars_for_template_usage(); // paging will be done after Cimy search has filtered out items //$this->do_paging(); } function page_links() { echo str_replace("?", "?page=au_extended&", $this->paging_text); } } // Query the users $wp_user_search = new Cimy_User_Search($_POST['usersearch'], $_GET['userspage'], $_GET['role'], $users_per_page); $search_result = $wp_user_search->get_results(); // search into extra field engine $i = 0; foreach ($search_result as $userid) { foreach ($extra_fields as $ef) { $ef_id = $ef["ID"]; $ef_type = $ef["TYPE"]; $ef_name = $ef["NAME"]; $ef_search = ""; if (isset($_POST["ef_search"][$ef_name])) { $ef_search = $_POST["ef_search"][$ef_name]; } if ($ef_search != "") { $remove = false; $ef_value = $wpdb->get_var("SELECT VALUE FROM " . $wpdb_data_table . " WHERE USER_ID=" . $userid . " AND FIELD_ID=" . $ef_id); if ($ef_type == "text" || $ef_type == "textarea" || $ef_type == "textarea-rich" || $ef_type == "picture" || $ef_type == "picture-url" || $ef_type == "file") { if (stristr($ef_value, $ef_search) === FALSE) { $remove = true; } } else { if ($ef_type == "checkbox") { if ($ef_search == "1" and $ef_value != "YES") { $remove = true; } } else { if ($ef_type == "radio") { if ($ef_search == $ef_id and $ef_value != "selected") { $remove = true; } } else { if ($ef_type == "dropdown") { // if it is selected the "--- select ---" item then skip this check if ($ef_search == $dropdown_first_item) { continue; } if ($ef_search != $ef_value) { $remove = true; } } else { if ($ef_type == "dropdown-multi") { // if it is selected the "--- select ---" item then remove it if ($ef_search[0] == $dropdown_first_item) { unset($ef_search[0]); } if (count(array_diff($ef_search, explode(",", $ef_value))) != 0) { $remove = true; } } } } } } if ($remove) { unset($wp_user_search->results[$i]); $wp_user_search->total_users_for_query--; break; } } } $i++; } $wp_user_search->paging_text = ""; // oh yeah baby, now it's time for paging! $wp_user_search->do_paging(); ?> <div class="wrap"> <?php if (function_exists("screen_icon")) { screen_icon("users"); } ?> <?php if ($wp_user_search->is_search()) { ?> <h2><?php printf(__('Users Matching "%s"'), wp_specialchars($wp_user_search->search_term)); ?> </h2> <?php } else { ?> <h2><?php if (is_multisite()) { _e("Users Extended List", $cimy_uef_domain); } else { _e("Authors & Users Extended List", $cimy_uef_domain); } ?> </h2> <?php } ?> <form id="posts-filter" action="" method="post"> <ul class="subsubsub"> <?php $role_links = array(); $avail_roles = array(); $users_of_blog = get_users_of_blog(); $total_users = count($users_of_blog); //var_dump($users_of_blog); foreach ((array) $users_of_blog as $b_user) { $b_roles = unserialize($b_user->meta_value); foreach ((array) $b_roles as $b_role => $val) { if (!isset($avail_roles[$b_role])) { $avail_roles[$b_role] = 0; } $avail_roles[$b_role]++; } } unset($users_of_blog); $current_role = false; $class = empty($_GET['role']) ? ' class="current"' : ''; $role_links[] = "<li><a href='users.php?page=au_extended'{$class}>" . sprintf(_nx('All <span class="count">(%s)</span>', 'All <span class="count">(%s)</span>', $total_users, 'users'), number_format_i18n($total_users)) . '</a>'; foreach ($wp_roles->get_names() as $this_role => $name) { if (!isset($avail_roles[$this_role])) { continue; } $class = ''; if ($this_role == $_GET['role']) { $current_role = $_GET['role']; $class = ' class="current"'; } $name = translate_user_role($name); $name = sprintf(__('%1$s <span class="count">(%2$s)</span>'), $name, $avail_roles[$this_role]); $tmp_link = esc_url(add_query_arg('role', $this_role)); $role_links[] = "<li><a href=\"{$tmp_link}\"{$class}>" . $name . '</a>'; } echo implode(' |</li>', $role_links) . '</li>'; unset($role_links); ?> </ul> <p id="post-search" class="search-box"> <input type="text" class="search-input" id="post-search-input" name="usersearch" value="<?php echo esc_attr($wp_user_search->search_term); ?> " /> <input type="submit" value="<?php _e('Search Users'); ?> " class="button" /> </p> <div class="tablenav"> <?php if ($wp_user_search->results_are_paged()) { ?> <div class="tablenav-pages"><?php $wp_user_search->page_links(); ?> </div> <?php } ?> <br class="clear" /> <br class="clear" /> <?php if (is_wp_error($wp_user_search->search_errors)) { ?> <div class="error"> <ul> <?php foreach ($wp_user_search->search_errors->get_error_messages() as $message) { echo "<li>{$message}</li>"; } ?> </ul> </div> <?php } ?> <?php if ($wp_user_search->get_results()) { ?> <?php if ($wp_user_search->is_search()) { ?> <p><a href="users.php?page=au_extended"><?php _e('« Back to All Users'); ?> </a></p> <?php } wp_print_scripts('admin-forms'); ?> <div class="alignleft actions"> <?php _e("Users per page", $cimy_uef_domain); ?> <select name="cimy_uef_users_per_page"> <?php $users_per_page_list = array(10, 50, 100, 500, 1000, 5000); foreach ($users_per_page_list as $item) { echo "<option"; if ($item == $users_per_page) { echo ' selected="selected"'; } echo ">" . $item . "</option>"; } ?> </select> <input class="button" type="submit" name="submit" value="<?php _e("Apply"); ?> " /> </div> </div> <table class="widefat" cellpadding="3" cellspacing="3" width="100%"> <?php $thead_str = '<tr class="thead">'; $thead_str .= '<th id="cb" scope="col" class="manage-column column-cb check-column" style=""><input type="checkbox" /> </th>'; $tfoot_str = '<tr class="thead">'; $tfoot_str .= '<th scope="col" class="manage-column column-cb check-column" style=""><input type="checkbox" /> </th>'; if (!in_array("username", $options['aue_hidden_fields'])) { $thead_str .= '<th id="username" scope="col" class="manage-column column-username" style="">' . __("Username") . '</th>'; $tfoot_str .= '<th scope="col" class="manage-column column-username" style="">' . __("Username") . '</th>'; } if (!in_array("name", $options['aue_hidden_fields'])) { $thead_str .= '<th id="name" scope="col" class="manage-column column-name" style="">' . __("Name") . '</th>'; $tfoot_str .= '<th scope="col" class="manage-column column-name" style="">' . __("Name") . '</th>'; } if (!in_array("email", $options['aue_hidden_fields'])) { $thead_str .= '<th id="email" scope="col" class="manage-column column-email" style="">' . __("E-mail") . '</th>'; $tfoot_str .= '<th scope="col" class="manage-column column-email" style="">' . __("E-mail") . '</th>'; } if (!in_array("role", $options['aue_hidden_fields'])) { $thead_str .= '<th id="role" scope="col" class="manage-column column-role" style="">' . __("Role") . '</th>'; $tfoot_str .= '<th scope="col" class="manage-column column-role" style="">' . __("Role") . '</th>'; } if (!in_array("website", $options['aue_hidden_fields'])) { $thead_str .= '<th scope="col" class="manage-column" style="">' . __("Website") . '</th>'; $tfoot_str .= '<th scope="col" class="manage-column" style="">' . __("Website") . '</th>'; } if (!in_array("posts", $options['aue_hidden_fields'])) { $thead_str .= '<th id="posts" scope="col" class="manage-column column-posts num" style="">' . __("Posts") . '</th>'; $tfoot_str .= '<th scope="col" class="manage-column column-posts num" style="">' . __("Posts") . '</th>'; } $i = 0; $write_inputs = array(); $write_input_checkbox = array(); if (count($extra_fields) > 0) { foreach ($extra_fields as $thisField) { $rules = $thisField['RULES']; if ($rules['show_in_aeu']) { $i++; $label = $thisField['LABEL']; $id = $thisField['ID']; $name = $thisField['NAME']; $type = $thisField['TYPE']; if ($type == "avatar") { continue; } $search_input = ""; $search_value = ""; if (!empty($_POST["ef_search"][$name])) { if ($type == "dropdown-multi") { $search_value = esc_attr(stripslashes(implode(",", $_POST["ef_search"][$name]))); } 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" />'; break; case "checkbox": if ($search_value != "") { $checkbox_selected = ' checked="checked"'; } else { $checkbox_selected = ""; } $search_input = '<input type="checkbox" name="ef_search[' . $name . ']" value="1"' . $checkbox_selected . ' />'; $write_input[$i] = '<td>' . $label . '</td><td><input type="checkbox" name="ef_write[' . $name . ']" value="1" />'; break; case "radio": if ($search_value == $id) { $radio_selected = ' checked="checked"'; } else { $radio_selected = ""; } $search_input = '<input type="radio" name="ef_search[' . $name . ']" value="' . $id . '"' . $radio_selected . ' />'; $write_input[$i] = '<td>' . $label . '</td><td><input type="radio" name="ef_write[' . $name . ']" value="' . $label . '" />'; break; } if (isset($write_input[$i])) { if (empty($write_input_checkbox[$name])) { $write_input[$i] = '<td><input type="checkbox" name="ef_write_sel[' . $name . ']" value="1" /></td>' . $write_input[$i]; $write_input_checkbox[$name] = true; } else { $write_input[$i] = '<td> </td>' . $write_input[$i]; } $write_input[$i] .= '<input type="hidden" name="ef_write_type[' . $name . ']" value="' . $type . '" /></td>'; } $thead_str .= "{$label}<br />{$search_input}</th>"; $tfoot_str .= "{$label}</th>"; } } } $thead_str .= '</tr>'; $tfoot_str .= '</tr>'; ?> <thead> <?php echo $thead_str; ?> </thead> <tfoot> <?php echo $tfoot_str; ?> </tfoot> <?php $style = ''; foreach ($wp_user_search->get_results() as $userid) { $user_object = new WP_User($userid); $roles = $user_object->roles; $role = array_shift($roles); $email = $user_object->user_email; $url = $user_object->user_url; $short_url = str_replace('http://', '', $url); $short_url = str_replace('www.', '', $short_url); if ('/' == substr($short_url, -1)) { $short_url = substr($short_url, 0, -1); } if (strlen($short_url) > 35) { $short_url = substr($short_url, 0, 32) . '...'; } $style = 'class="alternate"' == $style ? '' : 'class="alternate"'; $numposts = count_user_posts($user_object->ID); if (0 < $numposts) { $numposts = "<a href='edit.php?author={$user_object->ID}' title='" . __('View posts by this author') . "'>{$numposts}</a>"; } echo "\n\t\t\t<tr {$style}>\n\t\t\t\n\t\t\t<th scope='row' class='check-column'><input type='checkbox' name='users[]' id='user_{$user_object->ID}' class='{$role}' value='{$user_object->ID}' /></th>"; if (!in_array("username", $options['aue_hidden_fields'])) { // produce username clickable if (current_user_can('edit_user', $user_object->ID)) { $current_user = wp_get_current_user(); if ($current_user->ID == $user_object->ID) { $edit = 'profile.php'; } else { $edit = esc_url(add_query_arg('wp_http_referer', urlencode(esc_url(stripslashes($_SERVER['REQUEST_URI']))), "user-edit.php?user_id={$user_object->ID}")); } $edit = "<a href=\"{$edit}\">{$user_object->user_login}</a>"; } else { $edit = $user_object->user_login; } $avatar = get_avatar($user_object->user_email, 32); echo "<td class=\"username column-username\"><strong>{$avatar} {$edit}</strong></td>"; } if (!in_array("name", $options['aue_hidden_fields'])) { echo "<td class=\"name column-name\"><label for='user_{$user_object->ID}'>{$user_object->first_name} {$user_object->last_name}</label></td>"; } if (!in_array("email", $options['aue_hidden_fields'])) { echo "<td class=\"email column-email\"><a href='mailto:{$email}' title='" . sprintf(__('e-mail: %s'), $email) . "'>{$email}</a></td>"; } if (!in_array("role", $options['aue_hidden_fields'])) { $role_name = translate_user_role($wp_roles->role_names[$role]); echo "<td class=\"role column-role\">"; echo $role_name; echo '</td>'; } if (!in_array("website", $options['aue_hidden_fields'])) { echo "<td ><a href='{$url}' title='website: {$url}'>{$short_url}</a></td>"; } if (!in_array("posts", $options['aue_hidden_fields'])) { echo "<td class=\"posts column-posts num\">{$numposts}</td>"; } // print all the content of extra fields if there are some if (count($extra_fields) > 0) { foreach ($extra_fields as $thisField) { $field_id = $thisField['ID']; // if user has not yet fields in the data table then create them cimy_insert_ExtraFields_if_not_exist($user_object->ID, $field_id); } // retrieve extra fields data from DB $ef_db = $wpdb->get_results("SELECT FIELD_ID, VALUE FROM " . $wpdb_data_table . " WHERE USER_ID = " . $user_object->ID, ARRAY_A); foreach ($extra_fields as $thisField) { $rules = $thisField['RULES']; $type = $thisField['TYPE']; $value = $thisField['VALUE']; if ($type == "avatar") { continue; } if ($rules['show_in_aeu']) { $field_id = $thisField['ID']; foreach ($ef_db as $d_field) { if ($d_field['FIELD_ID'] == $field_id) { $field = cimy_uef_sanitize_content($d_field['VALUE']); //$field = esc_attr($d_field['VALUE']); } } echo "<td>"; if ($type == "picture-url") { if ($field == "") { $field = $value; } if ($field != "") { if (intval($rules['equal_to'])) { echo '<a target="_blank" href="' . $field . '">'; echo '<img src="' . $field . '" alt="picture"' . $size . ' width="' . intval($rules['equal_to']) . '" height="*" />'; echo "</a>"; } else { echo '<img src="' . $field . '" alt="picture" />'; } echo "<br />"; echo "\n\t\t"; } } else { if ($type == "picture") { if ($field == "") { $field = $value; } if ($field != "") { //$profileuser = get_user_to_edit($user_object->ID); //$user_login = $profileuser->user_login; $user_login = $user_object->user_login; $value_thumb = cimy_get_thumb_path($field); $file_thumb = $cuef_upload_path . $user_login . "/" . cimy_get_thumb_path(basename($field)); $file_on_server = $cuef_upload_path . $user_login . "/" . basename($field); echo "\n\t\t"; if (is_file($file_thumb)) { echo '<a target="_blank" href="' . $field . '"><img src="' . $value_thumb . '" alt="picture" /></a><br />'; echo "\n\t\t"; } else { if (is_file($file_on_server)) { echo '<img src="' . $field . '" alt="picture" /><br />'; echo "\n\t\t"; } } } } else { if ($type == "file") { echo '<a target="_blank" href="' . $field . '">'; echo basename($field); echo '</a>'; } else { if ($type == "registration-date") { if (isset($rules['equal_to'])) { $registration_date = cimy_get_formatted_date($field, $rules['equal_to']); } else { $registration_date = cimy_get_formatted_date($field); } echo $registration_date; } else { echo $field; } } } } echo " " . "</td>"; } } } echo '</tr>'; } ?> </table> <div class="tablenav"> <?php if ($wp_user_search->results_are_paged()) { ?> <div class="tablenav-pages"><?php $wp_user_search->page_links(); ?> </div> <?php } ?> <br class="clear" /> </div> <?php } ?> <?php if (!empty($write_input)) { ?> <h2><?php _e("Update selected users", $cimy_uef_domain); ?> </h2> <table class="widefat" cellpadding="3" cellspacing="3"> <thead> <tr class="thead"> <th class="manage-column column-name" style="" width="10px"> </th><th class="manage-column column-name" style="" width="200px"><?php _e("Extra Fields", $cimy_uef_domain); ?> </th><th class="manage-column column-name" style=""><?php _e("Value"); ?> </th> </tr> </thead> <tfoot> <tr class="thead"> <th class="manage-column column-name" style="" width="10px"> </th><th class="manage-column column-name" style="" width="200px"><?php _e("Extra Fields", $cimy_uef_domain); ?> </th><th class="manage-column column-name" style=""><?php _e("Value"); ?> </th> </tr> </tfoot> <tbody> <?php foreach ($write_input as $input) { echo '<tr>' . $input . '</tr>'; } ?> </tbody> </table> <br /> <input class="button" type="submit" name="submit_new_values" value="<?php _e("Update"); ?> " /> <?php } ?> </form> </div> <?php }
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 ! \\" ? $ % ^ & ).') . "</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&bgColor1=#fff&bgColor2=#fff&iconColor=#777&borderWidth=1&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&bgColor1=#fff&bgColor2=#fff&iconColor=#777&borderWidth=1&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); ?> <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; }
function cimy_update_ExtraFields() { global $wpdb, $wpdb_data_table, $user_ID, $max_length_value, $fields_name_prefix, $cimy_uef_file_types, $user_level; // 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; } $get_user_id = intval($get_user_id); $extra_fields = get_cimyFields(false, true); $query = "UPDATE " . $wpdb_data_table . " SET VALUE=CASE FIELD_ID"; $i = 0; $field_ids = ""; foreach ($extra_fields as $thisField) { $field_id = $thisField["ID"]; $name = $thisField["NAME"]; $type = $thisField["TYPE"]; $label = $thisField["LABEL"]; $rules = $thisField["RULES"]; $input_name = $fields_name_prefix . $wpdb->escape($name); 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 ($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; } } 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 'picture-url': case 'textarea': case 'textarea-rich': case 'dropdown': case 'dropdown-multi': case 'password': case 'text': $value = "'" . $field_value . "'"; break; case 'checkbox': $value = $field_value == '1' ? "'YES'" : "'NO'"; break; case 'radio': $value = $field_value == $field_id ? "'selected'" : "''"; break; } $query .= $value; } else { $rules = $thisField['RULES']; if (in_array($type, $cimy_uef_file_types)) { $profileuser = get_user_to_edit($get_user_id); $user_login = $profileuser->user_login; 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 . '_oldfile'])) { $old_file = stripslashes($_POST[$input_name . '_oldfile']); } else { $old_file = false; } $field_value = cimy_manage_upload($input_name, $user_login, $rules, $old_file, $delete_file, $type); if ($field_value != "" || $delete_file) { if ($i > 0) { $field_ids .= ", "; } else { $i = 1; } $field_ids .= $field_id; $value = "'" . $field_value . "'"; $query .= " WHEN " . $field_id . " THEN "; $query .= $value; } } 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 ($rules['edit'] == "ok_edit" || $rules['edit'] == 'edit_only_by_admin' && current_user_can('edit_users')) { if ($i > 0) { $field_ids .= ", "; } else { $i = 1; } $field_ids .= $field_id; $query .= " WHEN " . $field_id . " THEN "; $query .= "'NO'"; } } } } 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); } }
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 = " "; 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 ! " ? $ % ^ & ).') . "</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&bgColor1=#fff&bgColor2=#fff&iconColor=#777&borderWidth=1&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&bgColor1=#fff&bgColor2=#fff&iconColor=#777&borderWidth=1&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); ?> <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; }