protected function beforeDelete() { $disabled = new PageComponentsDisabledEntityRepository(); $disabled->setWherePageId($this->getId()); $disabled->deleteObjectCollection(); $history = new PageComponentHistoryRepository(); $history->setWherePageId($this->getId()); $history->deleteObjectCollection(); $components = new PageComponentRepository(); $components->setWherePageId($this->getId()); $components->deleteObjectCollection(); $clickmap = new PageClickmapRepository(); $clickmap->setWherePageId($this->getId()); $clickmap->deleteObjectCollection(); parent::beforeDelete(); }
<?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;
<?php use TMCms\Admin\Structure\Entity\PageClickmapRepository; if (!isset($_GET['l'])) { return; } $clickmap_points = new PageClickmapRepository(); $clickmap_points->setWherePageId((int) $_GET['l']); $clickmap_points->addSimpleSelectFields(['x', 'y']); ?> <div id="clickmap-overlay" style="position:fixed; top: 0; left: 0; width: 100%; height: 100%; background: #000; opacity: 0.1; z-index: 99998"></div> <div id="clickmap-container" style="position: absolute; left: 0; top: 0; width: 100%; height: 100%; overflow: visible; z-index: 999950"> <?php foreach ($clickmap_points->getAsArrayOfObjectData() as $v) { ?> <div style="left: <?php echo $v['x'] - 5; ?> px; top: <?php echo $v['y'] - 5; ?> px; position:absolute; width: 10px; height: 10px; background: red; z-index: 99999; border-radius: 5px; opacity: 0.05"></div> <?php } ?> </div>