Pommo_Mail_Ctl::delNotices PHP Method

delNotices() public method

accepts # of notices to keep -- if 0, none are kept
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;
    }

Usage Example

Example #1
0
 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);
 }