get_var("SELECT count(ID) FROM ".$wpdb->prefix."activity"); $act_delete = $act_count - $options_act['act_prune']; if ($act_delete > 0) { $wpdb->query("DELETE FROM ".$wpdb->prefix."activity ORDER BY id ASC LIMIT ".$delete); } } add_action('act_cron_install','act_cron'); function act_desactive() { wp_clear_scheduled_hook('act_cron_install'); } function act_install() { global $wpdb; require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); $table = $wpdb->prefix."activity"; $act_structure = "CREATE TABLE `".$table."` ( `id` int(9) NOT NULL auto_increment, `user_id` bigint(20) NOT NULL, `act_type` varchar(20) NOT NULL, `act_date` datetime default NULL, `act_params` text, UNIQUE KEY `id` (`id`), KEY `user_id` (`user_id`), KEY `act_date` (`act_date`) );"; dbDelta($act_structure); $options_act['act_prune'] = '1000'; $options_act['act_feed_display'] = false; $options_act['act_date_format'] = 'yyyy/mm/dd'; $options_act['act_date_relative']= true; $options_act['act_connect']= true; $options_act['act_profiles']= true; $options_act['act_posts']= true; $options_act['act_comments']= true; $options_act['act_links']= true; $options_act['act_feed_connect']= false; $options_act['act_feed_profiles']= true; $options_act['act_feed_posts']= true; $options_act['act_feed_comments']= true; $options_act['act_feed_links']= true; $options_act['act_icons']= 'g'; $options_act['act_old']= true; add_option('act_settings', $options_act); wp_schedule_event(time(), 'daily', 'act_cron_install'); } register_activation_hook( __FILE__, 'act_install' ); register_deactivation_hook(__FILE__, 'act_desactive'); //we add actions to hooks to log their events add_action('send_headers', 'act_session'); add_action('profile_update', 'act_profile_edit'); add_action('publish_post', 'act_post_add'); add_action('comment_post', 'act_comment_add'); add_action('add_link', 'act_link_add'); function act_header(){ $altcss = TEMPLATEPATH.'/wp-activity.css'; echo '' . "\n"; } add_action('wp_head', 'act_header'); function act_profile_option(){ global $wpdb, $user_ID; $act_private = get_usermeta($user_ID, 'act_private'); ?>

value="true" />
query("INSERT INTO ".$wpdb->prefix."activity (user_id, act_type, act_date, act_params) VALUES($user_ID,'CONNECT', '".$act_time."', '')"); $act_url = parse_url(get_option('home')); } } } function act_reinit(){ if ($_COOKIE['act_logged']){ setcookie ("act_logged", "", time() - 3600);} } add_action('wp_login', 'act_reinit'); add_action('wp_logout', 'act_reinit'); function act_profile_edit($act_user){ global $wpdb, $user_ID, $options_act; if ($options_act['act_profiles'] and !get_usermeta($user_ID, 'act_private')){ $act_time=mysql2date("Y-m-d H:i:s", time()); $wpdb->query("INSERT INTO ".$wpdb->prefix."activity (user_id, act_type, act_date, act_params) VALUES($user_ID, 'PROFILE_EDIT', '".$act_time."', $act_user)"); } } function act_post_add($act_post){ global $wpdb, $user_ID, $options_act; if ($options_act['act_posts'] and !get_usermeta($user_ID, 'act_private')){ $act_time=mysql2date("Y-m-d H:i:s", time()); if ($wpdb->get_var("SELECT COUNT(*) FROM ".$wpdb->prefix."activity WHERE act_params=$act_post AND act_type='POST_ADD'") > 0){ $act_type='POST_EDIT'; }else{ $act_type='POST_ADD'; } $wpdb->query("INSERT INTO ".$wpdb->prefix."activity (user_id, act_type, act_date, act_params) VALUES($user_ID, '".$act_type."', '".$act_time."', $act_post)"); } } function act_comment_add($act_comment){ global $wpdb, $user_ID, $options_act; if ($options_act['act_comments'] and !get_usermeta($user_ID, 'act_private')){ $act_time=mysql2date("Y-m-d H:i:s", time()); $wpdb->query("INSERT INTO ".$wpdb->prefix."activity (user_id, act_type, act_date, act_params) VALUES($user_ID,'COMMENT_ADD', '".$act_time."', $act_comment)"); } } function act_link_add($act_link){ global $wpdb, $user_ID, $options_act; if ($options_act['act_links'] and !get_usermeta($user_ID, 'act_private')){ $act_time=mysql2date("Y-m-d H:i:s", time()); $wpdb->query("INSERT INTO ".$wpdb->prefix."activity (user_id, act_type, act_date, act_params) VALUES($user_ID, 'LINK_ADD', '".$act_time."', $act_link)"); } } function act_last_connect($act_user=''){ global $wpdb, $options_act, $user_ID; if (!$act_user){ $act_user = $user_ID; } if ($options_act['act_connect'] and !get_usermeta($act_user, 'act_private')){ $act_last_connect = $wpdb->get_var("SELECT MAX(act_date) FROM ".$wpdb->prefix."activity WHERE user_id = '".$act_user."'"); echo __("Last logon :", 'wp-activity')." ".nicetime($act_last_connect); } } function act_stream_user($act_user=''){ global $options_act, $user_ID; if (!$act_user){ $act_user = $user_ID; } if (!get_usermeta($act_user, 'act_private')){ act_stream_common('-1', '', true, $act_user); } } function act_stream_shortcode ($attr) { $attr = shortcode_atts(array('number' => '-1', 'title' => '',), $attr); return act_stream_common($attr['number'], $attr['title'], true, ''); } add_shortcode('ACT_STREAM', 'act_stream_shortcode'); function act_stream($act_number='30', $act_title=''){ act_stream_common($act_number, $act_title, false,''); } //$act_number = -1 : no limit function act_stream_common($act_number='30', $act_title='', $archive = false, $act_user = ''){ global $wpdb, $options_act, $user_ID; if ($act_title == ''){ $act_title= __("Recent Activity", 'wp-activity'); } if ($options_act['act_feed_display']){ $act_title .= ' '; } if ($options_act['act_page_link'] and !$archive){ $act_title .= ' '.__('Archives', 'wp-activity').''; } $wp_url = get_bloginfo('wpurl'); $act_old_class = ''; $act_old_flag = -1; $act_list_users = $wpdb->get_results("SELECT ID, display_name, user_nicename FROM $wpdb->users"); foreach ($act_list_users as $act_list_user) { $act_users_nicename[$act_list_user->ID]=$act_list_user->user_nicename; $act_users_display[$act_list_user->ID]=$act_list_user->display_name; } echo '

'.$act_title.'

'; if ($archive == false) {echo '