Example #1
0
function _useronline_init()
{
    load_plugin_textdomain('wp-useronline', '', dirname(plugin_basename(__FILE__)) . '/lang');
    require_once dirname(__FILE__) . '/core.php';
    require_once dirname(__FILE__) . '/template-tags.php';
    require_once dirname(__FILE__) . '/deprecated.php';
    require_once dirname(__FILE__) . '/widget.php';
    new scbTable('useronline', __FILE__, "\n\t\ttimestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,\n\t\tuser_type varchar( 20 ) NOT NULL default 'guest',\n\t\tuser_id bigint( 20 ) NOT NULL default 0,\n\t\tuser_name varchar( 250 ) NOT NULL default '',\n\t\tuser_ip varchar( 39 ) NOT NULL default '',\n\t\tuser_agent text NOT NULL,\n\t\tpage_title text NOT NULL,\n\t\tpage_url varchar( 255 ) NOT NULL default '',\n\t\treferral varchar( 255 ) NOT NULL default '',\n\t\tUNIQUE KEY useronline_id ( timestamp, user_type, user_ip )\n\t", 'delete_first');
    $most = new scbOptions('useronline_most', __FILE__, array('count' => 1, 'date' => current_time('timestamp')));
    $options = new scbOptions('useronline', __FILE__, array('timeout' => 300, 'url' => trailingslashit(get_bloginfo('url')) . 'useronline', 'names' => false, 'naming' => array('user' => __('1 User', 'wp-useronline'), 'users' => __('%COUNT% Users', 'wp-useronline'), 'member' => __('1 Member', 'wp-useronline'), 'members' => __('%COUNT% Members', 'wp-useronline'), 'guest' => __('1 Guest', 'wp-useronline'), 'guests' => __('%COUNT% Guests', 'wp-useronline'), 'bot' => __('1 Bot', 'wp-useronline'), 'bots' => __('%COUNT% Bots', 'wp-useronline')), 'templates' => array('useronline' => '<a href="%PAGE_URL%"><strong>%USERS%</strong> ' . __('Online', 'wp-useronline') . '</a>', 'browsingsite' => array('separators' => array('members' => __(',', 'wp-useronline') . ' ', 'guests' => __(',', 'wp-useronline') . ' ', 'bots' => __(',', 'wp-useronline') . ' '), 'text' => _x('Users', 'Template Element', 'wp-useronline') . ': <strong>%MEMBER_NAMES%%GUESTS_SEPARATOR%%GUESTS%%BOTS_SEPARATOR%%BOTS%</strong>'), 'browsingpage' => array('separators' => array('members' => __(',', 'wp-useronline') . ' ', 'guests' => __(',', 'wp-useronline') . ' ', 'bots' => __(',', 'wp-useronline') . ' '), 'text' => '<strong>%USERS%</strong> ' . __('Browsing This Page.', 'wp-useronline') . '<br />' . _x('Users', 'Template Element', 'wp-useronline') . ': <strong>%MEMBER_NAMES%%GUESTS_SEPARATOR%%GUESTS%%BOTS_SEPARATOR%%BOTS%</strong>'))));
    UserOnline_Core::init($options, $most);
    scbWidget::init('UserOnline_Widget', __FILE__, 'useronline');
    if (is_admin()) {
        require_once dirname(__FILE__) . '/admin.php';
        scbAdminPage::register('UserOnline_Admin_Integration', __FILE__);
        scbAdminPage::register('UserOnline_Options', __FILE__, UserOnline_Core::$options);
    }
    if (function_exists('stats_page')) {
        require_once dirname(__FILE__) . '/wp-stats.php';
    }
    #	scbUtil::do_uninstall( __FILE__ );
    #	scbUtil::do_activation( __FILE__ );
}
Example #2
0
 static function detailed_list($counts, $user_buckets, $nicetexts)
 {
     UserOnline_Core::$add_script = true;
     if ($counts['user'] == 0) {
         return html('h2', __('No one is online now.', 'wp-useronline'));
     }
     $_on = __('on', 'wp-useronline');
     $_url = __('url', 'wp-useronline');
     $_referral = __('referral', 'wp-useronline');
     $output = '';
     foreach (array('member', 'guest', 'bot') as $user_type) {
         if (!$counts[$user_type]) {
             continue;
         }
         $count = $counts[$user_type];
         $users = $user_buckets[$user_type];
         $nicetext = $nicetexts[$user_type];
         $output .= html('h2', $nicetext . ' ' . __('Online Now', 'wp-useronline'));
         $i = 1;
         foreach ($users as $user) {
             $nr = number_format_i18n($i++);
             $name = self::format_name($user);
             $user_ip = self::format_ip($user);
             $date = self::format_date($user->timestamp, true);
             if (current_user_can('edit_users') || false === strpos($user->page_url, 'wp-admin')) {
                 $page_title = esc_html($user->page_title);
                 $current_link = self::format_link($user->page_url, $_url);
                 $referral_link = self::format_link($user->referral, $_referral);
             }
             $output .= "<p><strong>#{$nr} - {$name}</strong> {$user_ip} {$_on} {$date}<br/>{$page_title} {$current_link} {$referral_link}</p>\n";
         }
     }
     return $output;
 }
Example #3
0
 static function record($page_url = '', $page_title = '')
 {
     require_once dirname(__FILE__) . '/bots.php';
     global $wpdb;
     if (empty($page_url)) {
         $page_url = $_SERVER['REQUEST_URI'];
     }
     if (empty($page_title)) {
         $page_title = self::get_title();
     }
     if (isset($_SERVER['HTTP_REFERER'])) {
         $referral = strip_tags($_SERVER['HTTP_REFERER']);
     } else {
         $referral = '';
     }
     $user_ip = self::get_ip();
     if (isset($_SERVER['HTTP_USER_AGENT'])) {
         $user_agent = strip_tags($_SERVER['HTTP_USER_AGENT']);
     } else {
         $user_agent = '';
     }
     $current_user = wp_get_current_user();
     // Check For Bot
     $bots = useronline_get_bots();
     $bot_found = false;
     foreach ($bots as $name => $lookfor) {
         if (stristr($user_agent, $lookfor) !== false) {
             $user_id = 0;
             $user_name = $name;
             $username = $lookfor;
             $user_type = 'bot';
             $bot_found = true;
             break;
         }
     }
     // If No Bot Is Found, Then We Check Members And Guests
     if (!$bot_found) {
         if ($current_user->ID) {
             // Check For Member
             $user_id = $current_user->ID;
             $user_name = $current_user->display_name;
             $user_type = 'member';
             $where = $wpdb->prepare("WHERE user_id = %d", $user_id);
         } elseif (!empty($_COOKIE['comment_author_' . COOKIEHASH])) {
             // Check For Comment Author ( Guest )
             $user_id = 0;
             $user_name = trim(strip_tags($_COOKIE['comment_author_' . COOKIEHASH]));
             $user_type = 'guest';
         } else {
             // Check For Guest
             $user_id = 0;
             $user_name = __('Guest', 'wp-useronline');
             $user_type = 'guest';
         }
     }
     // Current GMT Timestamp
     $timestamp = current_time('mysql');
     // Purge table
     $wpdb->query($wpdb->prepare("DELETE FROM {$wpdb->useronline} WHERE user_ip = %s OR timestamp < DATE_SUB(%s, INTERVAL %d SECOND)", $user_ip, $timestamp, self::$options->timeout));
     // Insert Users
     $data = compact('timestamp', 'user_type', 'user_id', 'user_name', 'user_ip', 'user_agent', 'page_title', 'page_url', 'referral');
     $data = stripslashes_deep($data);
     $wpdb->replace($wpdb->useronline, $data);
     // Count Users Online
     self::$useronline = intval($wpdb->get_var("SELECT COUNT( * ) FROM {$wpdb->useronline}"));
     // Maybe Update Most User Online
     if (self::$useronline > self::$most->count) {
         self::$most->update(array('count' => self::$useronline, 'date' => current_time('timestamp')));
     }
 }
Example #4
0
	function record( $page_url = '', $page_title = '' ) {
		global $wpdb;

		if ( empty( $page_url ) )
			$page_url = $_SERVER['REQUEST_URI'];

		if ( empty( $page_title ) )
			$page_title = self::get_title();

		$referral = strip_tags( @$_SERVER['HTTP_REFERER'] );

		$user_ip = self::get_ip();
		$user_agent = $_SERVER['HTTP_USER_AGENT'];
		$current_user = wp_get_current_user();

		// Check For Bot
		$bots = array( 'Google Bot' => 'googlebot', 'Google Bot' => 'google', 'MSN' => 'msnbot', 'Alex' => 'ia_archiver', 'Lycos' => 'lycos', 'Ask Jeeves' => 'jeeves', 'Altavista' => 'scooter', 'AllTheWeb' => 'fast-webcrawler', 'Inktomi' => 'slurp@inktomi', 'Turnitin.com' => 'turnitinbot', 'Technorati' => 'technorati', 'Yahoo' => 'yahoo', 'Findexa' => 'findexa', 'NextLinks' => 'findlinks', 'Gais' => 'gaisbo', 'WiseNut' => 'zyborg', 'WhoisSource' => 'surveybot', 'Bloglines' => 'bloglines', 'BlogSearch' => 'blogsearch', 'PubSub' => 'pubsub', 'Syndic8' => 'syndic8', 'RadioUserland' => 'userland', 'Gigabot' => 'gigabot', 'Become.com' => 'become.com', 'Baidu' => 'baidu', 'Yandex' => 'yandex', 'Amazon' => 'amazonaws.com' );

		$bot_found = false;
		foreach ( $bots as $name => $lookfor )
			if ( stristr( $user_agent, $lookfor ) !== false ) {
				$user_id = 0;
				$user_name = $name;
				$username = $lookfor;
				$user_type = 'bot';
				$bot_found = true;

				break;
			}

		// If No Bot Is Found, Then We Check Members And Guests
		if ( !$bot_found ) {
			if ( $current_user->ID ) {
				// Check For Member
				$user_id = $current_user->ID;
				$user_name = $current_user->display_name;
				$user_type = 'member';
				$where = $wpdb->prepare( "WHERE user_id = %d", $user_id );
			} elseif ( !empty( $_COOKIE['comment_author_'.COOKIEHASH] ) ) {
				// Check For Comment Author ( Guest )
				$user_id = 0;
				$user_name = trim( strip_tags( $_COOKIE['comment_author_'.COOKIEHASH] ) );
				$user_type = 'guest';
			} else {
				// Check For Guest
				$user_id = 0;
				$user_name = __( 'Guest', 'wp-useronline' );
				$user_type = 'guest';
			}
		}

		// Purge table
		$wpdb->query( $wpdb->prepare( "
			DELETE FROM $wpdb->useronline
			WHERE user_ip = %s
			OR timestamp < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL %d SECOND)
		", $user_ip, self::$options->timeout ) );

		// Insert Users
		$data = compact( 'user_type', 'user_id', 'user_name', 'user_ip', 'user_agent', 'page_title', 'page_url', 'referral' );
		$data = stripslashes_deep( $data );
		$insert_user = $wpdb->insert( $wpdb->useronline, $data );

		// Count Users Online
		self::$useronline = intval( $wpdb->get_var( "SELECT COUNT( * ) FROM $wpdb->useronline" ) );

		// Maybe Update Most User Online
		if ( self::$useronline > self::$most->count )
			self::$most->update( array(
				'count' => self::$useronline,
				'date' => current_time( 'timestamp' )
			) );
	}