Pommo_Subscribers::add PHP Method

add() public static method

as a means for UPDATE?
public static add ( $in, $id = null )
    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;
    }

Usage Example

コード例 #1
0
ファイル: process.php プロジェクト: systemfirez/poMMo
            $subscriber['registered'] = date("F j, Y, g:i a", $subscriber['registered']);
            if ($comments || isset($notices['pending']) && $notices['pending'] == 'on') {
                Pommo_Helper_Messages::notify($notices, $subscriber, 'pending', $comments);
            }
            if ($config['site_confirm']) {
                Pommo::redirect($config['site_confirm']);
            }
        } else {
            $smarty->assign('back', TRUE);
            // delete the subscriber
            Pommo_Subscribers::delete($id);
        }
    }
} else {
    // no email confirmation required
    if (!Pommo_Subscribers::add($subscriber)) {
        $logger->addErr('Error adding subscriber! Please contact the administrator.');
        $smarty->assign('back', TRUE);
    } else {
        // send/print welcome message
        Pommo_Helper_Messages::sendMessage(array('to' => $subscriber['email'], 'type' => 'subscribe'));
        $subscriber['registered'] = date("F j, Y, g:i a", $subscriber['registered']);
        if ($comments || isset($notices['subscribe']) && $notices['subscribe'] == 'on') {
            Pommo_Helper_Messages::notify($notices, $subscriber, 'subscribe', $comments);
        }
        // redirect
        if ($config['site_success']) {
            Pommo::redirect($config['site_success']);
        }
    }
}
All Usage Examples Of Pommo_Subscribers::add