<?php use TMCms\Admin\Structure\Entity\PageClickmap; use TMCms\Admin\Structure\Entity\PageClickmapRepository; use TMCms\Strings\Converter; if (!$_POST || !isset($_POST['x'], $_POST['y'], $_POST['l'])) { exit; } $period = 3600; // 1 hour $max_count = 600; $ip = Converter::ip2long(); $clickmap_points = new PageClickmapRepository(); $clickmap_points->setWhereIpLong($ip); $clickmap_points->addWhereFieldIsHigher('ts', NOW - $period); $count_of_clicks_for_period = $clickmap_points->getCountOfObjectsInCollection(); if ($count_of_clicks_for_period < $max_count) { $click = new PageClickmap(); $click->loadDataFromArray(['x' => (int) $_POST['x'], 'y' => (int) $_POST['y'], 'page_id' => (int) $_POST['l'], 'ip_long' => $ip])->save(); } exit;