Trends

Legend
HTML; $ds = "var chartdata = { \n"; foreach($table as $class) { $record = DataObject::get($class, "", "Created DESC"); $total = $record->TotalItems(); $props = $record->toArray(); $props = $props[0]->toMap(); $startyear = new SSDatetime($props['Created']); $startyear = $startyear->Format('Y'); $startmonth = new SSDatetime($props['Created']); $startmonth = $startmonth->Format('m'); if($filter == "day") { $days = new SSDatetime($props['Created']); $days = $days->Format('t'); $sum = 0; $ds .= "{$class}: ["; for($i = 1; $i <= $days; $i++) { foreach($record as $v) { $props = $v->toMap(); $currdate = new SSDatetime($props['Created']); $curryear = $currdate->Format('Y'); $currmonth = $currdate->Format('m'); $currday = $currdate->Format('j'); if($curryear == $startyear && $currmonth == $startmonth && $currday == $i) { $sum++; } } $ds .= "[".($i-1).", {$sum}], "; } $ds .= "[]],\n"; } else if($filter == "month") { $sum = 0; $ds .= "{$class}Set: ["; for($i = 0; $i <= 11; $i++) { $imonth = date('F', mktime(0,0,0,$i+1,1,1)); foreach($record as $v) { $props = $v->toMap(); $currdate = new SSDatetime($props['Created']); $curryear = $currdate->Format('Y'); $currmonth = $currdate->Format('m'); $currday = $currdate->Format('j'); if($curryear == $startyear && $currmonth == $i) { $sum++; } } $ds .= "[{$i}, {$sum}], "; } $ds .= "[]],\n"; } } $xt = "xTicks: ["; if($filter == "month") { for($i = 0; $i <= 11; $i++) { $imonth = date('F', mktime(0,0,0,$i+1,1,1)); $xt .= "{v:{$i}, label:'{$imonth}'}, "; } } else if($filter == "day") { for($i = 1; $i <= $days; $i++) { $xt .= "{v:".($i-1).", label:'{$i}'}, "; } } $opts = <<

Registered Users

Export as CSV

HTML; $bod = ""; foreach($records as $x) { $r = $x->toMap(); $id = $r['ID']; $email = $r['Email']; $date = date("F j, Y G:i:s", strtotime($r['Created'])); $bod .= ""; } $bot = <<
IDEmailJoined
$id$email$date
HTML; //$js = "\n\n\n"; return $top . $bod . $bot; } static function collect() { $hit = new PageView(); $hit->record(); return; } static function get_recent_views($limit = 15) { $records = DataObject::get('PageView', null, 'Created DESC', null, $limit); $top = <<

Recent Page Views

HTML; $bod = ""; foreach($records as $x) { $r = $x->toMap(); $id = $r['ID']; $time = $r['Created']; $browser = $r['Browser'] . " " . $r['BrowserVersion']; $os = $r['OS']; $user = $r['UserID']; $page = $r['PageID']; $bod .= ""; } $bot = <<
IDTimeBrowserOSUserPage
$id$time$browser$os$user$page
HTML; return $top . $bod . $bot; } static function get_views($time = 'all') { switch($time) { case 'all': $records = DataObject::get('PageView'); break; case 'year': $pt = time() - 31556926; $pt = date("Y-m-d H:i:s", $pt); $ct = time() + 10; $ct = date("Y-m-d H:i:s", $ct); $records = DataObject::get('PageView', "Created >= '$pt' AND Created <= '$ct'"); break; case 'month': $pt = time() - 2629744; $pt = date("Y-m-d H:i:s", $pt); $ct = time() + 10; $ct = date("Y-m-d H:i:s", $ct); $records = DataObject::get('PageView', "Created >= '$pt' AND Created <= '$ct'"); break; case 'week': $pt = time() - 604800; $pt = date("Y-m-d H:i:s", $pt); $ct = time() + 10; $ct = date("Y-m-d H:i:s", $ct); $records = DataObject::get('PageView', "Created >= '$pt' AND Created <= '$ct'"); break; case 'day': $pt = time() - 86400; $pt = date("Y-m-d H:i:s", $pt); $ct = time() + 10; $ct = date("Y-m-d H:i:s", $ct); $records = DataObject::get('PageView', "Created >= '$pt' AND Created <= '$ct'"); break; case 'hour': $pt = time() - 3600; $pt = date("Y-m-d H:i:s", $pt); $ct = time() + 10; $ct = date("Y-m-d H:i:s", $ct); $records = DataObject::get('PageView', "Created >= '$pt' AND Created <= '$ct'"); break; case 'minute': $pt = time() - 60; $pt = date("Y-m-d H:i:s", $pt); $ct = time() + 10; $ct = date("Y-m-d H:i:s", $ct); $records = DataObject::get('PageView', "Created >= '$pt' AND Created <= '$ct'"); break; default: $records = DataObject::get('PageView'); } $baseURL = Director::baseURL(); $top = <<

Page Views

Export as CSV

HTML; $bod = ""; foreach($records as $x) { $r = $x->toMap(); $id = $r['ID']; $time = $r['Created']; $browser = $r['Browser'] . " " . $r['BrowserVersion']; $os = $r['OS']; $user = $r['UserID']; $page = $r['PageID']; $bod .= ""; } $bot = <<
IDTimeBrowserOSUserPage
$id$time$browser$os$user$page
HTML; return $top . $bod . $bot; } static function browser_chart($type = "Pie", $color = "blue") { $top = <<

Browsers

HTML; $ds = "var bchartdata = { \n'Set': ["; $records = DataObject::get('PageView'); $browsers = array(); foreach($records as $r) { $ra = $r->toMap(); $cb = $ra['Browser'] . " " . $ra['BrowserVersion']; if(isset($browsers[$cb]) && $browsers[$cb] >= 1) { $browsers[$cb]++; } else { $browsers[$cb] = 1; } } $xt = "xTicks: ["; $i = 0; foreach($browsers as $bn => $bc) { $ds .= "[{$i}, {$bc}], "; $xt .= "{v:" . $i . ", label:'" . $bn . "'}, "; $i++; } $ds .= "]\n"; $opts = <<

Operating Systems

HTML; $ds = "var ochartdata = { \n'Set': ["; $records = DataObject::get('PageView'); $oss = array(); foreach($records as $r) { $ra = $r->toMap(); $cb = $ra['OS']; if(isset($oss[$cb]) && $oss[$cb] >= 1) { $oss[$cb]++; } else { $oss[$cb] = 1; } } $xt = "xTicks: ["; $i = 0; foreach($oss as $bn => $bc) { $ds .= "[{$i}, {$bc}], "; $xt .= "{v:" . $i . ", label:'" . $bn . "'}, "; $i++; } $ds .= "]\n"; $opts = <<

User Activity

HTML; $ds = "var uacchartdata = { \n'Set': ["; $records = DataObject::get('PageView'); $users = array(); foreach($records as $r) { $ra = $r->toMap(); $cb = $ra['UserID']; if($cb == -1) { continue; } if(isset($users[$cb]) && $users[$cb] >= 1) { $users[$cb]++; } else { $users[$cb] = 1; } } $xt = "xTicks: ["; $i = 0; foreach($users as $bn => $bc) { $ds .= "[{$i}, {$bc}], "; $xt .= "{v:" . $i . ", label:'" . $bn . "'}, "; $i++; } $ds .= "]\n"; $opts = <<= '$pt' AND Created <= '$ct'"); break; case 'month': $pt = time() - 2629744; $pt = date("Y-m-d H:i:s", $pt); $ct = time() + 10; $ct = date("Y-m-d H:i:s", $ct); $records = DataObject::get('PageView', "Created >= '$pt' AND Created <= '$ct'"); break; case 'week': $pt = time() - 604800; $pt = date("Y-m-d H:i:s", $pt); $ct = time() + 10; $ct = date("Y-m-d H:i:s", $ct); $records = DataObject::get('PageView', "Created >= '$pt' AND Created <= '$ct'"); break; case 'day': $pt = time() - 86400; $pt = date("Y-m-d H:i:s", $pt); $ct = time() + 10; $ct = date("Y-m-d H:i:s", $ct); $records = DataObject::get('PageView', "Created >= '$pt' AND Created <= '$ct'"); break; case 'hour': $pt = time() - 3600; $pt = date("Y-m-d H:i:s", $pt); $ct = time() + 10; $ct = date("Y-m-d H:i:s", $ct); $records = DataObject::get('PageView', "Created >= '$pt' AND Created <= '$ct'"); break; case 'minute': $pt = time() - 60; $pt = date("Y-m-d H:i:s", $pt); $ct = time() + 10; $ct = date("Y-m-d H:i:s", $ct); $records = DataObject::get('PageView', "Created >= '$pt' AND Created <= '$ct'"); break; default: $records = DataObject::get('PageView'); } foreach($records as $x) { $r = $x->toMap(); $data .= implode(', ', $r) . "\n"; } return $data; } static function get_user_csv() { $data = "ID, ClassName, Created, LastEdited, FirstName, Surname, Email, Password, NumVisit, LastVisited, Bounced, AutoLoginHash, AutoLoginExpired, BlacklistedEmail, RememberLoginToken, IdentityURL, PasswordEncryption, Salt\n"; $records = DataObject::get('Member'); foreach($records as $x) { $r = $x->toMap(); $data .= implode(', ', $r) . "\n"; } return $data; } } ?>