Exemple #1
0
 /**
  * This function performs the validation work for complex object models.
  *
  * In addition to checking the current object, all related objects will
  * also be validated.  If all pass then <code>true</code> is returned; otherwise
  * an aggreagated array of ValidationFailed objects will be returned.
  *
  * @param      array $columns Array of column names to validate.
  * @return     mixed <code>true</code> if all validations pass; array of <code>ValidationFailed</code> objets otherwise.
  */
 protected function doValidate($columns = null)
 {
     if (!$this->alreadyInValidation) {
         $this->alreadyInValidation = true;
         $retval = null;
         $failureMap = array();
         // We call the validate method on the following object(s) if they
         // were passed to this object by their coresponding set
         // method.  This object relates to these object(s) by a
         // foreign key reference.
         if ($this->aDonor !== null) {
             if (!$this->aDonor->validate($columns)) {
                 $failureMap = array_merge($failureMap, $this->aDonor->getValidationFailures());
             }
         }
         if ($this->aGiftTypeRelatedByGiftType !== null) {
             if (!$this->aGiftTypeRelatedByGiftType->validate($columns)) {
                 $failureMap = array_merge($failureMap, $this->aGiftTypeRelatedByGiftType->getValidationFailures());
             }
         }
         if ($this->aCampaign !== null) {
             if (!$this->aCampaign->validate($columns)) {
                 $failureMap = array_merge($failureMap, $this->aCampaign->getValidationFailures());
             }
         }
         if ($this->aFund !== null) {
             if (!$this->aFund->validate($columns)) {
                 $failureMap = array_merge($failureMap, $this->aFund->getValidationFailures());
             }
         }
         if (($retval = DonationPeer::doValidate($this, $columns)) !== true) {
             $failureMap = array_merge($failureMap, $retval);
         }
         $this->alreadyInValidation = false;
     }
     return !empty($failureMap) ? $failureMap : true;
 }
<?php

$errors = array();
if (!empty($_POST)) {
    $domain = filter_input(INPUT_POST, 'domain', FILTER_SANITIZE_STRING);
    $own_domain = filter_input(INPUT_POST, 'own_domain', FILTER_SANITIZE_URL);
    $candidate_number = filter_input(INPUT_POST, 'candidate_number', FILTER_SANITIZE_NUMBER_INT);
    $plan_id = filter_input(INPUT_POST, 'plan_id', FILTER_SANITIZE_NUMBER_INT);
    $state = filter_input(INPUT_POST, 'state', FILTER_SANITIZE_NUMBER_INT);
    $city = filter_input(INPUT_POST, 'city', FILTER_SANITIZE_NUMBER_INT);
    $observations = filter_input(INPUT_POST, 'observations', FILTER_SANITIZE_STRING);
    $campaign = new Campaign(array('domain' => $domain, 'own_domain' => $own_domain, 'plan_id' => $plan_id, 'candidate_number' => $candidate_number, 'state' => $state, 'city' => $city, 'observations' => $observations));
    if ($campaign->validate()) {
        $campaign->create();
        if (switch_to_blog($campaign->blog_id)) {
            wp_redirect(home_url());
        } else {
            //TODO: improve error handling for campaign creation
            $errors = array('error' => Campaign::getStrings('NaoFoiPossivelCriar'));
        }
    } else {
        $errors = $campaign->errorHandler->errors;
    }
}
// hack to make the redirection above work (without using noheader
// the call to wp_redirect generate a headers already sent warning)
if (isset($_GET['noheader'])) {
    require_once ABSPATH . 'wp-admin/admin-header.php';
}
?>