3 namespace wcf\system\cronjob
;
5 use wcf\data\cronjob\Cronjob
;
6 use wcf\data\
object\type\ObjectTypeCache
;
11 * Builds daily statistics.
14 * @copyright 2001-2019 WoltLab GmbH
15 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
16 * @package WoltLabSuite\Core\System\Cronjob
18 class StatDailyBuilderCronjob
extends AbstractCronjob
23 public function execute(Cronjob
$cronjob)
25 parent
::execute($cronjob);
28 $d = DateUtil
::getDateTimeByTimestamp(TIME_NOW
);
29 $d->setTimezone(new \
DateTimeZone(TIMEZONE
));
30 $d->sub(new \
DateInterval('P1D'));
32 $date = $d->getTimestamp();
34 // prepare insert statement
35 $sql = "INSERT IGNORE INTO wcf" . WCF_N
. "_stat_daily
36 (objectTypeID, date, counter, total)
38 $statement = WCF
::getDB()->prepareStatement($sql);
41 foreach (ObjectTypeCache
::getInstance()->getObjectTypes('com.woltlab.wcf.statDailyHandler') as $objectType) {
42 $data = $objectType->getProcessor()->getData($date);
44 $statement->execute([$objectType->objectTypeID
, $d->format('Y-m-d'), $data['counter'], $data['total']]);