public delNotices ( $id, $keep = 50 ) |
function delNotices($id, $keep = 50)
{
global $pommo;
$dbo =& Pommo::$_dbo;
$keep = intval($keep);
if ($keep == 0) {
$query = "\n DELETE FROM " . $dbo->table['mailing_notices'] . "\n WHERE mailing_id=%i";
$query = $dbo->prepare($query, array($id));
$dbo->query($query);
return;
}
// shorten notices to keep # (50)
$query = "\n SELECT count(mailing_id)\n FROM " . $dbo->table['mailing_notices'] . "\n WHERE mailing_id=%i";
$query = $dbo->prepare($query, array($id));
$count = $dbo->query($query, 0);
if ($count > $keep) {
$query = "\n DELETE FROM " . $dbo->table['mailing_notices'] . "\n WHERE mailing_id=%i\n ORDER BY touched ASC, id ASC\n LIMIT %i";
$query = $dbo->prepare($query, array($id, $count - $keep));
$dbo->query($query);
}
return;
}
function addNotices($id) { global $pommo; $logger =& Pommo::$_logger; $dbo =& Pommo::$_dbo; if (!is_numeric($id)) { return; } $notices = array(); $i = 0; foreach ($logger->getAll() as $n) { $i++; $notices[] = $dbo->prepare("(%i,'%s', %i)", array($id, $n, $i)); } // update DB notices if (!empty($notices)) { $query = "\n\t\t\t\tINSERT INTO " . $dbo->table['mailing_notices'] . "\n\t\t\t\t(mailing_id,notice,id) VALUES " . implode(',', $notices); $dbo->query($query); } // trim notices Pommo_Mail_Ctl::delNotices($id); }