Display number of page views count
Firstly you need to create a page called page_counter.php and put the below code there:
defined('C5_EXECUTE') or die(_("Access Denied."));
Loader::model('page_statistics');
class PageCounter extends PageStatistics {
public static function getTotalPageViewsForPageID($cID = null, $date = null) {
$db = Loader::db();
if ($date != null) {
return $db->GetOne("select COUNT(pstID) FROM PageStatistics where date = ? and cID = ?",
array($date,$cID));
} else {
return $db->GetOne("select COUNT(pstID) FROM PageStatistics where cID = ?", array($cID));
}
}
public static function getRegisteredPageViewsForPageID($cID = null, $date = null) {
$db = Loader::db();
if ($date != null) {
return $db->GetOne("SELECT COUNT(pstID) FROM PageStatistics WHERE date = ? AND cID = ? AND uID != 0",
array($date,$cID));
} else {
return $db->GetOne("SELECT COUNT(pstID) FROM PageStatistics WHERE cID = ? AND uID != 0",
array($cID));
}
}
public static function getVisitorsPageViewsForPageID($cID = null, $date = null) {
$db = Loader::db();
if ($date != null) {
return $db->GetOne("SELECT COUNT(pstID) FROM PageStatistics WHERE date = ? AND cID = ? AND uID = 0",
array($date,$cID));
} else {
return $db->GetOne("SELECT COUNT(pstID) FROM PageStatistics WHERE cID = ? AND uID = 0", array($cID));
}
}
}
Then upload the page to the roots models folder. Here I've defined three different methods which count total page views, page views by registered users, and page views by visitors.
After that you need to put the below code where you want to display the page view statistics.
Loader::model('page_counter');
echo 'Total Page Views: '.PageCounter::getTotalPageViewsForPageID($cobj->getCollectionID()).'';
echo 'Registered User ('.PageCounter::getRegisteredPageViewsForPageID($cobj->getCollectionID()).'), ';
echo 'Visitors ('.PageCounter::getVisitorsPageViewsForPageID($cobj->getCollectionID()).')';
Note: $cobj->getCollectionID() is the page ID, might be changed if any other variable is used instead of $cobj.