Ejemplo n.º 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 aggregated 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> objects 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 corresponding set
         // method.  This object relates to these object(s) by a
         // foreign key reference.
         if ($this->aJournal !== null) {
             if (!$this->aJournal->validate($columns)) {
                 $failureMap = array_merge($failureMap, $this->aJournal->getValidationFailures());
             }
         }
         if ($this->aUserRelatedByCreatedBy !== null) {
             if (!$this->aUserRelatedByCreatedBy->validate($columns)) {
                 $failureMap = array_merge($failureMap, $this->aUserRelatedByCreatedBy->getValidationFailures());
             }
         }
         if ($this->aUserRelatedByUpdatedBy !== null) {
             if (!$this->aUserRelatedByUpdatedBy->validate($columns)) {
                 $failureMap = array_merge($failureMap, $this->aUserRelatedByUpdatedBy->getValidationFailures());
             }
         }
         if (($retval = JournalEntryPeer::doValidate($this, $columns)) !== true) {
             $failureMap = array_merge($failureMap, $retval);
         }
         if ($this->collJournalComments !== null) {
             foreach ($this->collJournalComments as $referrerFK) {
                 if (!$referrerFK->validate($columns)) {
                     $failureMap = array_merge($failureMap, $referrerFK->getValidationFailures());
                 }
             }
         }
         if ($this->collJournalEntryImages !== null) {
             foreach ($this->collJournalEntryImages as $referrerFK) {
                 if (!$referrerFK->validate($columns)) {
                     $failureMap = array_merge($failureMap, $referrerFK->getValidationFailures());
                 }
             }
         }
         $this->alreadyInValidation = false;
     }
     return !empty($failureMap) ? $failureMap : true;
 }
Ejemplo n.º 2
0
 public function actionManual()
 {
     $book = new Book();
     $thesis = new Thesis();
     $journal = new Journal();
     $proceeding = new Proceeding();
     if (isset($_POST['Book'])) {
         $book->attributes = $_POST['Book'];
         if ($book->validate()) {
             $data['citation'] = $book->formatCitation();
             $data['inline'] = $book->formatInlineCitation();
             $data['oid'] = $this->saveSubmission('book-manual', $book);
         }
     }
     if (isset($_POST['Thesis'])) {
         $thesis->attributes = $_POST['Thesis'];
         if ($thesis->validate()) {
             $data['citation'] = $thesis->formatCitation();
             $data['inline'] = $thesis->formatInlineCitation();
             $data['oid'] = $this->saveSubmission('thesis-manual', $thesis);
         }
     }
     if (isset($_POST['Journal'])) {
         $journal->attributes = $_POST['Journal'];
         if ($journal->validate()) {
             $data['citation'] = $journal->formatCitation();
             $data['inline'] = $journal->formatInlineCitation();
             $data['oid'] = $this->saveSubmission('journal-article-manual', $journal);
         }
     }
     if (isset($_POST['Proceeding'])) {
         $proceeding->attributes = $_POST['Proceeding'];
         if ($proceeding->validate()) {
             $data['citation'] = $proceeding->formatCitation();
             $data['inline'] = $proceeding->formatInlineCitation();
             $data['oid'] = $this->saveSubmission('proceedings-article-manual', $proceeding);
         }
     }
     $data['book'] = $book;
     $data['thesis'] = $thesis;
     $data['journal'] = $journal;
     $data['proceeding'] = $proceeding;
     $this->render('form', $data);
 }