示例#1
0
 /**
  * Internal function to return an approval notice object from a row.
  * @param $row array
  * @return ApprovalNotice
  */
 function &_returnApprovalNoticeFromRow(&$row)
 {
     $approvalNotice = new ApprovalNotice();
     $approvalNotice->setId($row['approval_notice_id']);
     $approvalNotice->setCommittees($row['committees']);
     $approvalNotice->setReviewTypes($row['review_types']);
     $approvalNotice->setActive($row['active']);
     $approvalNotice->setApprovalNoticeTitle($row['title']);
     $approvalNotice->setApprovalNoticeHeader($row['header']);
     $approvalNotice->setApprovalNoticeBody($row['body']);
     $approvalNotice->setApprovalNoticeFooter($row['footer']);
     return $approvalNotice;
 }
示例#2
0
 /**
  * Save approval notice.
  */
 function execute()
 {
     $approvalNoticeDao =& DAORegistry::getDAO('ApprovalNoticeDAO');
     // Create or edit approval notice
     if (isset($this->approvalNoticeId)) {
         $approvalNotice =& $approvalNoticeDao->getApprovalNotice($this->approvalNoticeId);
     }
     if (!isset($approvalNotice)) {
         $approvalNotice = new ApprovalNotice();
     }
     // Clean the committees and review types array before saving them
     $committees = array_unique($this->getData('committees'));
     $reviewTypes = array_unique($this->getData('reviewTypes'));
     $allComFound = false;
     $allTypeFound = false;
     foreach ($committees as $committeeId) {
         if ($committeeId == APPROVAL_NOTICE_COMMITTEE_ALL) {
             $approvalNotice->setCommitteesFromArray(array(0 => APPROVAL_NOTICE_COMMITTEE_ALL));
             $allComFound = true;
         }
     }
     if (!$allComFound) {
         $approvalNotice->setCommitteesFromArray($committees);
     }
     foreach ($reviewTypes as $reviewTypeId) {
         if ($reviewTypeId == APPROVAL_NOTICE_TYPE_ALL) {
             $approvalNotice->setReviewTypesFromArray(array(0 => APPROVAL_NOTICE_TYPE_ALL));
             $allTypeFound = true;
         }
     }
     if (!$allTypeFound) {
         $approvalNotice->setReviewTypesFromArray($reviewTypes);
     }
     $approvalNotice->setApprovalNoticeTitle($this->getData('title'));
     $approvalNotice->setActive($this->getData('active'));
     $approvalNotice->setApprovalNoticeHeader($this->getData('APHeader'));
     $approvalNotice->setApprovalNoticeBody($this->getData('APBody'));
     $approvalNotice->setApprovalNoticeFooter($this->getData('APFooter'));
     // Update or insert announcement
     if ($approvalNotice->getId() != null) {
         $approvalNoticeDao->updateObject($approvalNotice);
     } else {
         $approvalNoticeDao->insertApprovalNotice($approvalNotice);
     }
     return $approvalNotice;
 }