/** * Save track. */ function execute() { $schedConf =& Request::getSchedConf(); $trackDao =& DAORegistry::getDAO('TrackDAO'); if (isset($this->trackId)) { $track =& $trackDao->getTrack($this->trackId); } if (!isset($track)) { $track = new Track(); $track->setSchedConfId($schedConf->getId()); $track->setSequence(REALLY_BIG_NUMBER); } $track->setTitle($this->getData('title'), null); // Localized $track->setAbbrev($this->getData('abbrev'), null); // Localized $reviewFormId = $this->getData('reviewFormId'); if ($reviewFormId === '') { $reviewFormId = null; } $track->setReviewFormId($reviewFormId); $track->setMetaReviewed($this->getData('metaNotReviewed') ? 0 : 1); $track->setIdentifyType($this->getData('identifyType'), null); // Localized $track->setDirectorRestricted($this->getData('directorRestriction') ? 1 : 0); $track->setPolicy($this->getData('policy'), null); // Localized $track->setHideAbout($this->getData('hideAbout')); $track->setDisableComments($this->getData('disableComments') ? 1 : 0); $track->setAbstractWordCount($this->getData('wordCount')); if ($track->getId() != null) { $trackDao->updateTrack($track); $trackId = $track->getId(); } else { $trackId = $trackDao->insertTrack($track); $trackDao->resequenceTracks($schedConf->getId()); } // Save assigned directors $trackDirectorsDao =& DAORegistry::getDAO('TrackDirectorsDAO'); $trackDirectorsDao->deleteDirectorsByTrackId($trackId, $schedConf->getId()); $directors = explode(':', Request::getUserVar('assignedDirectors')); foreach ($directors as $edUserId) { if (!empty($edUserId)) { $trackDirectorsDao->insertDirector($schedConf->getId(), $trackId, $edUserId); } } }
/** * Internal function to return a Track object from a row. * @param $row array * @return Track */ function &_returnTrackFromRow(&$row) { $track = new Track(); $track->setId($row['track_id']); $track->setSchedConfId($row['sched_conf_id']); $track->setReviewFormId($row['review_form_id']); $track->setSequence($row['seq']); $track->setMetaReviewed($row['meta_reviewed']); $track->setDirectorRestricted($row['director_restricted']); $track->setHideAbout($row['hide_about']); $track->setDisableComments($row['disable_comments']); $track->setAbstractWordCount($row['abstract_word_count']); $this->getDataObjectSettings('track_settings', 'track_id', $row['track_id'], $track); HookRegistry::call('TrackDAO::_returnTrackFromRow', array(&$track, &$row)); return $track; }