Exemple #1
0
 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>