v
'.__('Everything was deleted', 'bpdd') .'
';
}
if ( isset( $_POST['bpdd-admin-submit'] ) ) {
// default values
$users = false;
$profile = false;
$messages = false;
$activity = false;
$friends = false;
$groups = false;
$forums = false;
$g_activity = false;
$g_members = false;
// Import users
if(isset($_POST['bpdd']['import-users'])){
$users = bpdd_import_users();
$imported['users'] = sprintf(__('%d new users','bpdd'), count($users));
if(isset($_POST['bpdd']['import-friends'])){
$friends = bpdd_import_users_friends();
$imported['friends'] = sprintf(__('%d friends connections','bpdd'), $friends);
}
if(isset($_POST['bpdd']['import-profile'])){
$profile = bpdd_import_users_profile();
$imported['profile'] = sprintf(__('%d profile entries','bpdd'), $profile);
}
if(isset($_POST['bpdd']['import-messages'])){
$messages = bpdd_import_users_messages();
$imported['messages'] = sprintf(__('%d private messages', 'bpdd'), count($messages));
}
if(isset($_POST['bpdd']['import-activity'])){
$activity = bpdd_import_users_activity();
$imported['activity'] = sprintf(__('%d personal activity items','bpdd'), $activity);
}
}
// Import groups
if(isset($_POST['bpdd']['import-groups'])){
$groups = bpdd_import_groups($users);
$imported['groups'] = sprintf(__('%d new groups','bpdd'), count($groups));
if(isset($_POST['bpdd']['import-g-members'])){
$g_members = bpdd_import_groups_members($groups);
$imported['g_members'] = sprintf(__('%d groups members (1 user can be in several groups)', 'bpdd'), count($g_members));
}
if(isset($_POST['bpdd']['import-forums'])){
$forums = bpdd_import_groups_forums($groups);
$imported['forums'] = sprintf(__('%d groups forum topics', 'bpdd'), count($forums));
}
if(isset($_POST['bpdd']['import-g-activity'])){
$g_activity = bpdd_import_groups_activity();
$imported['g_activity'] = sprintf(__('%d groups activity items', 'bpdd'), $g_activity);
}
}
?>
0){
echo ':
- ';
echo implode('
- ', $imported);
echo '
';
} ?>
$user['login'],
'user_pass' => $user['pass'],
'display_name' => $user['display_name'],
'user_email' => $user['email']
));
bp_update_user_meta( $cur, 'last_activity', bpdd_get_random_date(5) );
bp_update_user_meta( $cur, 'notification_messages_new_message', 'no' );
$users[]->ID = $cur;
}
return $users;
}
function bpdd_import_users_profile(){
return true;
}
function bpdd_import_users_messages(){
$messages = array();
require (dirname(__FILE__) . '/data/messages.php');
// first level messages
for($i = 0; $i < 33; $i++){
$messages[] = messages_new_message(array(
'sender_id' => bpdd_get_random_users_ids(1, 'string'),
'recipients' => bpdd_get_random_users_ids(1, 'array'),
'subject' => $messages_subjects[array_rand($messages_subjects)],
'content' => $messages_content[array_rand($messages_content)],
'date_sent' => bpdd_get_random_date(15, 5)
));
}
for($i = 0; $i < 33; $i++){
$messages[] = messages_new_message(array(
'sender_id' => bpdd_get_random_users_ids(1, 'string'),
'recipients' => bpdd_get_random_users_ids(2, 'array'),
'subject' => $messages_subjects[array_rand($messages_subjects)],
'content' => $messages_content[array_rand($messages_content)],
'date_sent' => bpdd_get_random_date(13, 3)
));
}
for($i = 0; $i < 33; $i++){
$messages[] = messages_new_message(array(
'sender_id' => bpdd_get_random_users_ids(1, 'string'),
'recipients' => bpdd_get_random_users_ids(3, 'array'),
'subject' => $messages_subjects[array_rand($messages_subjects)],
'content' => $messages_content[array_rand($messages_content)],
'date_sent' => bpdd_get_random_date(10)
));
}
$messages[] = messages_new_message(array(
'sender_id' => bpdd_get_random_users_ids(1, 'string'),
'recipients' => bpdd_get_random_users_ids(5, 'array'),
'subject' => $messages_subjects[array_rand($messages_subjects)],
'content' => $messages_content[array_rand($messages_content)],
'date_sent' => bpdd_get_random_date(5)
));
return $messages;
}
function bpdd_import_users_activity(){
$users = bpdd_get_random_users_ids(0);
require (dirname(__FILE__) . '/data/activity.php');
for($i = 0, $count = 0; $i < 75; $i++){
$user = $users[array_rand($users)];
$content = $activity[array_rand($activity)];
if(bp_activity_post_update(array('user_id' => $user,'content' => $content))){
$count++;
}
}
return $count;
}
function bpdd_import_users_friends(){
$users = bpdd_get_random_users_ids(50);
for($con = 0, $i = 0; $i < 100; $i++){
$user_one = $users[array_rand($users)];
$user_two = $users[array_rand($users)];
if(BP_Friends_Friendship::check_is_friend( $user_one, $user_two ) == 'not_friends'){
// make them friends
if(friends_add_friend( $user_one, $user_two, true )){
// update counters for front-end
friends_update_friend_totals($user_one, $user_two);
$con++;
}
}
}
return $con;
}
/*
* Importer engine - GROUPS
*/
function bpdd_import_groups($users = false){
$groups = array();
$group_ids = array();
if (empty($users))
$users = get_users();
require (dirname(__FILE__) . '/data/groups.php');
foreach($groups as $group){
$cur = groups_create_group(array(
'creator_id' => $users[array_rand($users)]->ID,
'name' => $group['name'],
'description' => $group['description'],
'slug' => groups_check_slug( sanitize_title( esc_attr( $group['name'] ) ) ),
'status' => $group['status'],
'date_created' => bpdd_get_random_date(30,5),
'enable_forum' => $group['enable_forum']
));
groups_update_groupmeta( $cur, 'total_member_count', 1 );
groups_update_groupmeta( $cur, 'last_activity', bpdd_get_random_date(10) );
// create forums if Forum Component is active
if ( bp_is_active( 'forums' ) && bp_forums_is_installed_correctly() ) {
groups_new_group_forum( $cur, $group['name'], $group['description'] );
}
$group_ids[] = $cur;
}
return $group_ids;
}
function bpdd_import_groups_activity(){
$users = bpdd_get_random_users_ids(0);
$groups = bpdd_get_random_groups_ids(0);
require (dirname(__FILE__) . '/data/activity.php');
for($i = 0, $count = 0; $i < 150; $i++){
$user_id = $users[array_rand($users)];
$group_id = $groups[array_rand($groups)];
$content = $activity[array_rand($activity)];
if ( !groups_is_user_member( $user_id, $group_id ) )
continue;
if(groups_post_update(array('user_id' => $user_id,'group_id' => $group_id,'content' => $content)))
$count++;
}
return $count;
}
function bpdd_import_groups_members($groups = false){
$members = array();
if(!$groups)
$groups = bpdd_get_random_groups_ids(0);
$new_member = new BP_Groups_Member;
foreach($groups as $group_id){
$user_ids = bpdd_get_random_users_ids(rand(2, 15));
foreach($user_ids as $user_id){
if ( groups_is_user_member( $user_id, $group_id ) )
continue;
$time = bpdd_get_random_date(25,1);
$new_member->id = false;
$new_member->group_id = $group_id;
$new_member->user_id = $user_id;
$new_member->inviter_id = 0;
$new_member->is_admin = 0;
$new_member->user_title = '';
$new_member->date_modified = $time;
$new_member->is_confirmed = 1;
// save data - finally
if($new_member->save()){
$group = new BP_Groups_Group( $group_id );
// record this in activity streams
$activity_id[] = groups_record_activity( array(
'action' => apply_filters( 'groups_activity_joined_group', sprintf( __( '%1$s joined the group %2$s', 'buddypress'), bp_core_get_userlink( $user_id ), '' . esc_attr( bp_get_group_name( $group ) ) . '' ) ),
'type' => 'joined_group',
'item_id' => $group_id,
'user_id' => $user_id,
'recorded_time' => $time
) );
// modify group meta
groups_update_groupmeta( $group_id, 'total_member_count', (int) groups_get_groupmeta( $group_id, 'total_member_count') + 1 );
groups_update_groupmeta( $group_id, 'last_activity', $time );
do_action( 'groups_join_group', $group_id, $user_id );
// I need to know how many users were added to display in report after the import
$members[] = $group_id;
}
}
}
return $members;
}
function bpdd_import_groups_forums(){
return true;
}
/*
* Helpers
*/
function bpdd_clear_db(){
global $wpdb;
$sqls[] = "TRUNCATE TABLE {$wpdb->prefix}bp_activity;";
$sqls[] = "TRUNCATE TABLE {$wpdb->prefix}bp_activity_meta;";
$sqls[] = "TRUNCATE TABLE {$wpdb->prefix}bp_groups;";
$sqls[] = "TRUNCATE TABLE {$wpdb->prefix}bp_groups_members;";
$sqls[] = "TRUNCATE TABLE {$wpdb->prefix}bp_groups_groupmeta;";
$sqls[] = "TRUNCATE TABLE {$wpdb->prefix}bb_posts;";
$sqls[] = "TRUNCATE TABLE {$wpdb->prefix}bp_messages_recipients;";
$sqls[] = "TRUNCATE TABLE {$wpdb->prefix}bp_messages_messages;";
$sqls[] = "TRUNCATE TABLE {$wpdb->prefix}bp_notifications;";
$sqls[] = "TRUNCATE TABLE {$wpdb->prefix}bp_friends;";
$sqls[] = "DELETE FROM {$wpdb->prefix}users WHERE ID > 1;";
$sqls[] = "DELETE FROM {$wpdb->prefix}usermeta WHERE user_id > 1;";
$sqls[] = "DELETE FROM {$wpdb->prefix}usermeta WHERE meta_key = 'total_friend_count';";
$sqls[] = "DELETE FROM {$wpdb->prefix}bp_xprofile_data WHERE user_id > 1;";
$sqls[] = "DELETE FROM {$wpdb->prefix}bb_forums WHERE forum_id > 1;";
$sqls[] = "DELETE FROM {$wpdb->prefix}bp_activity WHERE user_id > 1;";
foreach($sqls as $sql){
$wpdb->query( $sql );
}
}
function bpdd_get_random_groups_ids($count = 1, $output = 'array'){
global $wpdb;
$groups = array();
$data = array();
$limit = '';
if($count > 0)
$limit = ' LIMIT ' . $count;
$sql = 'SELECT id FROM ' . $wpdb->prefix . 'bp_groups ORDER BY rand()' . $limit;
$groups = $wpdb->get_results($wpdb->prepare($sql));
// reformat the array
foreach($groups as $group){
$data[] = $group->id;
}
if($output == 'array'){
return $data;
}elseif($output == 'string'){
return implode(',', $data);
}
}
function bpdd_get_random_users_ids($count = 1, $output = 'array'){
global $wpdb;
$users = array();
$limit = '';
if($count > 0)
$limit = ' LIMIT ' . $count;
$sql = 'SELECT ID FROM ' . $wpdb->prefix . 'users ORDER BY rand()' . $limit;
$users = $wpdb->get_results($wpdb->prepare($sql));
// reformat the array
foreach($users as $user){
$data[] = $user->ID;
}
if($output == 'array'){
return $data;
}elseif($output == 'string'){
return implode(',', $data);
}
}
function bpdd_get_random_date($days_from = 30, $days_to = 0){
// 1 day in seconds is 86400
$from = $days_from * 86400;
// $days_from should always be less than $days_to
if ($days_to > $days_from)
$days_to = $days_from - 1;
$to = $days_to * 86400;
$date_from = time() - $from;
$date_to = time() - $to;
return date( 'Y-m-d H:i:s', rand($date_from, $date_to));
}
if(!function_exists('print_var')){
function print_var($var, $die = false){
echo '';
if (!empty($var))
print_r($var);
else
var_dump($var);
echo '';
if ($die)
die;
}
}