/** * Create a new statistic item in the database. Certain data is extracted from the web environment (REMOTE_ADDR and HTTP_REFERER) * * @static * @param int $file File ID * @return int Access statistic ID **/ function create($file, $version) { global $wpdb; $user = wp_get_current_user(); if ($user) { $user = $user->data->ID; } else { $user = 0; } if (isset($_SERVER['REMOTE_ADDR'])) { $ip = $_SERVER['REMOTE_ADDR']; } else { if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } } $ip = sprintf('%u', ip2long($ip)); $referrer = DH_Access::get_referrer(wpdb::escape($_SERVER['HTTP_REFERER'])); $wpdb->query("INSERT INTO {$wpdb->prefix}drainhole_access (file_id,created_at,ip,referrer,version_id,user_id) VALUES ({$file},NOW(),{$ip},'{$referrer}','{$version}','{$user}')"); return $wpdb->insert_id; }