Pommo_Mailing::validate PHP Method

validate() public method

returns true if mailing ($in) is valid, false if not
public validate ( &$in )
    function validate(&$in)
    {
        $logger =& Pommo::$_logger;
        $invalid = array();
        if (empty($in['fromemail']) || !Pommo_Helper::isEmail($in['fromemail'])) {
            $invalid[] = 'fromemail';
        }
        if (empty($in['frombounce']) || !Pommo_Helper::isEmail($in['frombounce'])) {
            $invalid[] = 'frombounce';
        }
        if (empty($in['subject'])) {
            $invalid[] = 'subject';
        }
        if (empty($in['body'])) {
            $invalid[] = 'body';
        }
        if (!is_numeric($in['tally']) || $in['tally'] < 1) {
            $invalid[] = 'subscriberCount';
        }
        if (!empty($in['start']) && !is_numeric($in['start'])) {
            $invalid[] = 'started';
        }
        if (!empty($in['end']) && !is_numeric($in['end'])) {
            $invalid[] = 'finished';
        }
        if (!empty($in['sent']) && !is_numeric($in['sent'])) {
            $invalid[] = 'sent';
        }
        switch ($in['status']) {
            case 0:
            case 1:
            case 2:
                break;
            default:
                $invalid[] = 'status';
        }
        if ($in['status'] == 1) {
            switch ($in['command']) {
                case 'none':
                case 'restart':
                case 'stop':
                    break;
                default:
                    $invalid[] = 'command';
            }
            if (!empty($in['serial']) && !is_numeric($in['serial'])) {
                $invalid[] = 'serial';
            }
            switch ($in['current_status']) {
                case 'started':
                case 'stopped':
                    break;
                default:
                    $invalid[] = 'current_status';
            }
        }
        if (!empty($invalid)) {
            $logger->addErr("Mailing failed validation on; " . implode(',', $invalid), 1);
            return false;
        }
        return true;
    }

Usage Example

Example #1
0
 function add(&$in)
 {
     $dbo = Pommo::$_dbo;
     // set the start time if not provided
     if (empty($in['start'])) {
         $in['start'] = time();
     }
     if (empty($in['sent'])) {
         $in['sent'] = 0;
     }
     if (!Pommo_Mailing::validate($in)) {
         return false;
     }
     //	Add image to track views
     if (1 == $in['track']) {
         $in['body'] .= '<img src="http://' . $_SERVER['SERVER_NAME'] . Pommo::$_baseUrl . 'track-[[!mailing_id]]-[[!subscriber_id]]' . '.png">';
     }
     $query = "INSERT INTO " . $dbo->table['mailings'] . "\n                SET\n                [fromname='%S',]\n                [fromemail='%S',]\n                [frombounce='%S',]\n                [subject='%S',]\n                [body='%S',]\n                [altbody='%S',]\n                [ishtml='%S',]\n                [mailgroup='%S',]\n                [subscriberCount=%I,]\n                [finished=FROM_UNIXTIME(%I),]\n                [sent=%I,]\n                [charset='%S',]\n                [status=%I,]\n                [track=%I,]\n                started=FROM_UNIXTIME(%i)";
     $query = $dbo->prepare($query, @array($in['fromname'], $in['fromemail'], $in['frombounce'], $in['subject'], $in['body'], $in['altbody'], $in['ishtml'], $in['group'], $in['tally'], $in['end'], $in['sent'], $in['charset'], $in['status'], $in['track'], $in['start']));
     // fetch new mailing_id
     $id = $dbo->lastId($query);
     if (!$id) {
         return false;
     }
     // Save the attachments
     if ($in['attachments']) {
         $attach = explode(',', $in['attachments']);
         foreach ($attach as $key => $attachment) {
             $query = "INSERT INTO " . $dbo->table['mailings_attachments'] . "\n                        SET\n                        [mailing_id='%I',]\n                        [file_id='%I']";
             $query = $dbo->prepare($query, @array($id, $attachment));
             $dbo->query($query);
         }
     }
     // insert current if applicable
     if (!empty($in['status']) && $in['status'] == 1) {
         if (empty($in['code'])) {
             $in['code'] = Pommo_Helper::makeCode();
         }
         $query = "INSERT INTO " . $dbo->table['mailing_current'] . "\n            SET\n            [command='%S',]\n            [serial=%I,]\n            [securityCode='%S',]\n            [current_status='%S',]\n            current_id=%i";
         $query = $dbo->prepare($query, @array($in['command'], $in['serial'], $in['code'], $in['current_status'], $id));
         if (!$dbo->query($query)) {
             return false;
         }
         return $in['code'];
     }
     return $id;
 }
All Usage Examples Of Pommo_Mailing::validate