Files
grzanieplus.pl/plugins/stUserTrackerLevelPlugin/lib/stDeleteUserTrackerLevelTask.class.php
2025-03-12 17:06:23 +01:00

49 lines
1.1 KiB
PHP

<?php
class stDeleteUserTrackerLevelTask extends stTask
{
public function count(): int
{
$c = $this->getCriteria();
$stUserTrackerLevel = stUserTrackerLevelPeer::doCount($c);
return $stUserTrackerLevel;
}
public function execute(int $offset): int
{
$c = $this->getCriteria();
$c->setLimit(1000);
$offset += stUserTrackerLevelPeer::doDelete($c);
if ($offset > 0)
{
$this->setParameter('optimize_table', true);
}
return $offset;
}
public function started()
{
$this->setParameter('optimize_table', false);
}
public function finished()
{
if ($this->getParameter('optimize_table'))
{
Propel::getConnection()->executeQuery('OPTIMIZE TABLE ' . stUserTrackerLevelPeer::TABLE_NAME);
}
}
protected function getCriteria(): Criteria
{
$c = new Criteria();
$config = stConfig::getInstance('stUserTrackerLevelBackend');
$c->add(stUserTrackerLevelPeer::UPDATED_AT, sprintf('%s < now() - INTERVAL %d DAY', stUserTrackerLevelPeer::UPDATED_AT, $config->get('cookie_terminate')), Criteria::CUSTOM);
return $c;
}
}