/** * Generate random strings. Primarily for usernames but can be used for any instance where a random string is needed. * * @since 1.0.0 * * @param This takes no parameters. * * @return str Returns a random username. */ function bbconnect_random($args = null) { // SET THE DEFAULTS TO BE OVERRIDDEN AS DESIRED $defaults = array('name' => false, 'length' => 7, 'underscores' => 0, 'compact' => false, 'bytime' => false); // PARSE THE INCOMING ARGS $args = wp_parse_args($args, $defaults); // EXTRACT THE VARIABLES extract($args, EXTR_SKIP); $p = ''; // CONCATENATE THE FIRST NAME if (false != $name) { $p .= sanitize_title_with_underscores($name); if (false == $compact) { $p .= '_'; } } // LOOP TO BUILD THE RANDOM STRING for ($i = 0; $i < $length; $i++) { $c = mt_rand(1, 7); switch ($c) { case $c <= 2: $p .= mt_rand(0, 9); // NUMBER break; case $c <= 4: $p .= chr(mt_rand(65, 90)); // UPPERCASE LETTER break; case $c <= 6: $p .= chr(mt_rand(97, 122)); // LOWERCASE LETTER break; case 7: $len = strlen($p); if ($underscores > 0 && $len > 0 && $len < $length - 1 && $p[$len - 1] != "_") { $p .= "_"; $underscores--; } else { $i--; continue; } break; } } if (false == $bytime) { if (false == $compact) { $p .= '_'; } $p .= time(); } return $p; }
function bbconnect_meta_options_form_save($post_arr) { // LOOP THROUGH THE POST VARS AND ACCESS THE OPTIONS foreach ($post_arr as $key => $value) { if (!is_array($value)) { continue; } if (!isset($value['meta_key']) || empty($value['meta_key'])) { continue; } // MAKE SURE ANY NEW ELEMENTS ARE PROPERLY STRUCTURED if (isset($value['status']) && 'new_ele' == $value['status']) { $value['meta_key'] = sanitize_title_with_underscores($value['meta_key']); $key = sanitize_title_with_underscores($value['meta_key']); unset($value['status']); } // MAKE SURE ALL ELEMENTS ARE PROPERLY SCOPED, OTHERWISE, DELETE THEM if (false == $key || strlen($key) <= 2 || false !== strpos($key, '_bbcdel_') || !isset($value['source'])) { if (isset($value['source']) && 'wpr' == $value['source']) { } else { if (isset($value['source']) && 'taxonomy' == $value['options']['field_type']) { if ('bbconnect' == $value['source'] || 'user' == $value['source']) { bbconnect_delete_wp_taxonomy($value['meta_key']); } } unset($post_arr[$key]); $exclude = true; } } // IF THIS IS A BBCONNECT-INITIATED TAXONOMY, UPDATE THE INTERNAL ARRAY // IN ORDER TO INSTANTIATE THIS AS A TAXONOMY ON INIT if (isset($value['source']) && 'taxonomy' == $value['options']['field_type'] && !isset($exclude)) { if ('bbconnect' == $value['source'] || 'user' == $value['source']) { if (isset($value['options']['post_types'])) { $pargs = $value['options']['post_types']; } else { $pargs = array(); } $tax_args = array('tax' => $value['meta_key'], 'single' => $value['name'], 'location' => $pargs); if (false === bbconnect_create_wp_taxonomy($tax_args)) { unset($post_arr[$key]); $exclude = true; } } } // STEP THROUGH THE CHOICES AND SAVE THEM if ('group' == $value['options']['field_type'] || 'password' == $value['options']['field_type'] || 'wpr' == $value['source'] || 'wp' == $value['source'] || isset($value['group']) || 'bb_work_queue' == $value['meta_key'] || 'category_id' == $value['meta_key'] || 'segment_id' == $value['meta_key']) { if (isset($value['options']['choices'])) { $value['options']['choices'] = maybe_unserialize(stripslashes_deep($value['options']['choices'])); } } else { if ('select' == $value['options']['field_type'] || 'radio' == $value['options']['field_type'] || 'multitext' == $value['options']['field_type']) { // RESET THE ARRAY $pro_choices = array(); foreach ($value['options']['choices'] as $ckey => $cvalue) { if ('' == $cvalue['key']) { $cvalue['key'] = $cvalue['value']; } $pro_choices[$cvalue['key']] = $cvalue['value']; } $value['options']['choices'] = $pro_choices; } else { if ('section' == $value['options']['field_type']) { if (isset($value['options']['choices'])) { $value['options']['choices'] == $value['options']['choices']; } } else { if (isset($value['options']['choices'])) { $value['options']['choices'] = maybe_unserialize(urldecode($value['options']['choices'])); } } } } // IF THESE FIELDS ARE NOT PART OF AN ADDRESS OR OTHER GROUP... if (isset($value['group']) || 'bb_work_queue' == $value['meta_key'] || 'category_id' == $value['meta_key'] || 'segment_id' == $value['meta_key']) { $exclude = true; } // IF THE FIELD IS PART OF A SECTION, WE WANT TO EXCLUDE IT // OTHERWISE, WE WANT TO REMOVE THE REFERENCE if (isset($value['section']) && !empty($value['section']) && !isset($post_arr['_bbcdel_' . $value['section']])) { $exclude = true; } else { unset($value['section']); } if (!isset($exclude)) { // FIND THE COLUMN IF APPLICABLE $columns = array('column_1', 'column_2', 'column_3'); if (!empty($value['column']) && in_array($value['column'], $columns)) { $col = $value['column']; } else { $col = 'column_1'; $value['column'] = 'column_1'; } $new_bbconnect_user_meta[$col][] = bbconnect_get_option($key, true); } else { unset($exclude); } // UPDATE THE OPTION AND THE INDEX KEY if (update_option(bbconnect_get_option($key, true), $value)) { $bbc_update = true; } // ADD ACTION FOR PLUGINS TO OPERATE ON do_action('bbconnect_addon_process_user_meta', $value); } // UPDATE THE INDEX if (update_option('_bbconnect_user_meta', $new_bbconnect_user_meta) || isset($bbc_update)) { _e('Fields updated!', 'bbconnect'); } else { _e('There were no fields to update.', 'bbconnect'); } }
function bbconnect_export_process() { // EXTEND EXECUTION TIME set_time_limit(3600); // SET LOCAL GLOBALS global $wpdb; $blog_prefix = $wpdb->get_blog_prefix(get_current_blog_id()); // SET A WPR TEMPORARY ARRAY $wpr_trans = array('email', 'url'); $ret_array = array(); $exp_array = array(); // BYPASS PAGINATION AND GET ALL USERS FROM THIS QUERY if (isset($_POST['_grexport']['all_users'])) { $users = explode('|', $_POST['_grexport']['all_search']); unset($_POST['_grexport']['all_search']); } else { if (isset($_POST['gredit_users'])) { $users = array_unique($_POST['gredit_users']); } else { $users = false; } } // SET UP THE DATA ARRAY foreach ($_POST['_grexport'] as $key => $val) { $exp_array[$key] = maybe_unserialize(urldecode($val)); } $exp_array['return'] = true; if (false != $users) { // IF WE WANT ALL FIELDS, DO THAT NOW, ELSE, TAKE WHAT WE'VE SEARCHED FOR if (isset($_POST['_grexport']['all_fields'])) { $headers_prep = bbconnect_get_user_metadata(); foreach ($headers_prep as $header) { $user_meta = get_option($header); if ('taxonomy' == $user_meta['options']['field_type']) { $headers[$user_meta['meta_key']] = array(); } else { if ('wpr' == $user_meta['source']) { if (in_array($user_meta['meta_key'], $wpr_trans)) { $wpr_key = 'user_' . $user_meta['meta_key']; } else { if ('role' == $user_meta['meta_key']) { $wpr_key = $blog_prefix . 'capabilities'; } else { $wpr_key = $user_meta['meta_key']; } } $headers[$wpr_key] = $user_meta['meta_key']; } else { if ('wp' == $user_meta['source'] || 'user' == $user_meta['source']) { $headers[$user_meta['meta_key']] = $user_meta['meta_key']; } else { $headers['bbconnect_' . $user_meta['meta_key']] = $user_meta['meta_key']; } } } } // REPLACE THE FIELD SELECTIONS WITH ALL FIELDS $exp_array['table_body'] = $headers; $exp_array['post_vars'] = false; unset($headers); } // IF WE HAVE ACTIONS, PROCESS THEM if (isset($_POST['gredit_actions'])) { $exp_array['action_array'] = apply_filters('bbconnect_export_action_array', $_POST['gredit_actions']); } foreach ($users as $user_id) { // ADD THE CURRENT USER IN $exp_array['user_id'] = $user_id; $cur_user = bbconnect_rows($exp_array); if (isset($cur_user['action'])) { if (isset($_POST['_grexport']['all_actions']) || isset($_POST['gredit_actions'])) { $curact_array = apply_filters('bbconnect_export_action_return', $cur_user['action']); unset($cur_user['action']); foreach ($curact_array as $akey => $aval) { $ret_array[] = $cur_user + $aval; } } else { unset($cur_user['action']); $ret_array[] = $cur_user; } } else { $ret_array[] = $cur_user; } } // APPLY A HEADER array_unshift($ret_array, array_keys($ret_array[0])); // FIX THAT DAMN MICROSOFT BUG! if ('ID' == $ret_array[0][0]) { $ret_array[0][0] = 'user_id'; } if (isset($_POST['export_title'])) { $exp_title = $_POST['export_title']; } else { $exp_title = 'export'; } $inc_file = bbconnect_export_filename(sanitize_title_with_underscores($exp_title)); $ret_file = bbconnect_export_file($inc_file, $ret_array); if (false != $ret_file) { $export_results = '<div id="progress"><a href="' . $ret_file . '">' . __('Your file', 'bbconnect') . '</a></div>'; } else { $export_results = __('I was not able to complete the export.', 'bbconnect'); } } else { $export_results = __('Please make a selection', 'bbconnect'); } $ret_arr = array('all_search' => false, 'member_search' => false, 'action_search' => false, 'user_display' => false, 'export_array' => $ret_array, 'max_num_pages' => false, 'post_vars' => false, 'users_per_page' => false, 'users_count' => false, 'export_results' => $export_results); return $ret_arr; }
function bbconnect_new_form() { if (!wp_verify_nonce($_POST['bbconnect_admin_nonce'], 'bbconnect-admin-nonce')) { die(__('terribly sorry.', 'bbconnect')); } if (!isset($_POST['data'])) { return false; } $cid = bbconnect_sanitize($_POST['data']); $forms = get_option('_bbconnect_user_forms'); if (false == $forms) { $forms = array(); } // MAKE A KEY OUT OF THE USER-SUBMITTED TITLE $scid = sanitize_title_with_underscores($cid); // IF THE KEY IS UNIQUE, PROCEED if (!isset($forms[$scid])) { $forms[$scid] = $cid; $update = update_option('_bbconnect_user_forms', $forms); if (false == $update) { $uerror = __('New form failed', 'bbconnect'); } } else { $update = false; $uerror = __('Duplicate form. Please try another name.', 'bbconnect'); } bbconnect_list_forms(get_option('_bbconnect_user_forms')); if (false != $update) { echo '<div id="response" class="bbconnect_notice">' . __('New form successfully created', 'bbconnect') . '</div>'; } else { echo '<div id="response" class="bbconnect_error">' . $uerror . '</div>'; } die; }