validate() public static method

NOTE: has the magic functionality of converting english status to bool equiv.
public static validate ( &$in )
コード例 #1
0
ファイル: Pommo_Subscribers.php プロジェクト: soonick/poMMo
 public static function add($in, $id = null)
 {
     $dbo = Pommo::$_dbo;
     // set the registration date if not provided
     if (empty($in['registered'])) {
         $in['registered'] = time();
     }
     if (!Pommo_Subscribers::validate($in)) {
         return false;
     }
     $insert = $id === null ? 'INSERT' : 'REPLACE';
     $query = $insert . ' INTO ' . $dbo->table['subscribers'] . '
             SET
             [subscriber_id=%I,]
             email="%s",
             time_registered=FROM_UNIXTIME(%i),
             flag=%i,
             ip=INET_ATON("%s"),
             status=%i';
     $query = $dbo->prepare($query, @array($id, $in['email'], $in['registered'], $in['flag'], $in['ip'], $in['status']));
     // fetch new subscriber's ID
     $id = $dbo->lastId($query);
     if (!$id) {
         return false;
     }
     // insert pending (if exists)
     if ($in['status'] == 2) {
         $query = "\n            INSERT INTO " . $dbo->table['subscriber_pending'] . "\n            SET\n            [pending_array='%S',]\n            subscriber_id=%i,\n            pending_code='%s',\n            pending_type='%s'";
         $query = $dbo->prepare($query, @array($in['pending_array'], $id, $in['pending_code'], $in['pending_type']));
         if (!$dbo->query($query)) {
             return false;
         }
     }
     // insert data
     $values = array();
     foreach ($in['data'] as $fieldId => $value) {
         $values[] = $dbo->prepare("(%i,%i,'%s')", array($fieldId, $id, $value));
     }
     if (!empty($values)) {
         $query = "\n            INSERT INTO " . $dbo->table['subscriber_data'] . "\n            (field_id, subscriber_id, value)\n            VALUES " . implode(',', $values);
         if (!$dbo->query($query)) {
             return false;
         }
     }
     return $id;
 }