/** * clear access log table * - if $date param is omitted, the last 60 days of access log are kept, the rest will be removed * * @param Tinebase_DateTime $date * @return integer deleted rows * * @todo use $this->deleteByFilter($_filter)? might be slow for huge access_logs */ public function clearTable($date = NULL) { $date = $date instanceof Tinebase_DateTime ? $date : Tinebase_DateTime::now()->subDay(60); if (Tinebase_Core::isLogLevel(Zend_Log::INFO)) { Tinebase_Core::getLogger()->info(__METHOD__ . '::' . __LINE__ . ' Removing all access log entries before ' . $date->toString()); } $db = $this->_backend->getAdapter(); $where = array($db->quoteInto($db->quoteIdentifier('li') . ' < ?', $date->toString())); $deletedRows = $db->delete($this->_backend->getTablePrefix() . $this->_backend->getTableName(), $where); if (Tinebase_Core::isLogLevel(Zend_Log::INFO)) { Tinebase_Core::getLogger()->info(__METHOD__ . '::' . __LINE__ . ' Removed ' . $deletedRows . ' rows.'); } return $deletedRows; }