Inheritance: extends IssueFile
Beispiel #1
0
 /**
  * Save changes to the galley.
  * @return int the galley ID
  */
 function execute($fileName = null)
 {
     import('classes.file.IssueFileManager');
     $issueFileManager = new IssueFileManager($this->getIssueId());
     $galleyDao =& DAORegistry::getDAO('IssueGalleyDAO');
     $fileName = isset($fileName) ? $fileName : 'galleyFile';
     $journal =& Request::getJournal();
     $galley =& $this->getGalley();
     // Update an existing galley
     if ($galley) {
         if ($issueFileManager->uploadedFileExists($fileName)) {
             // Galley has a file, delete it before uploading new one
             if ($galley->getFileId()) {
                 $issueFileManager->deleteFile($galley->getFileId());
             }
             // Upload new file
             $fileId = $issueFileManager->uploadPublicFile($fileName);
             $galley->setFileId($fileId);
         }
         $galley->setLabel($this->getData('label'));
         if ($journal->getSetting('enablePublicGalleyId')) {
             $galley->setStoredPubId('publisher-id', $this->getData('publicGalleyId'));
         }
         $galley->setLocale($this->getData('galleyLocale'));
         // Update galley in the db
         $galleyDao->updateGalley($galley);
     } else {
         // Create a new galley
         // Upload galley file
         if ($issueFileManager->uploadedFileExists($fileName)) {
             $fileType = $issueFileManager->getUploadedFileType($fileName);
             $fileId = $issueFileManager->uploadPublicFile($fileName);
         } else {
             // No galley file uploaded
             $fileId = 0;
         }
         $galley = new IssueGalley();
         $galley->setIssueId($this->getIssueId());
         $galley->setFileId($fileId);
         if ($this->getData('label') == null) {
             // Generate initial label based on file type
             $enablePublicGalleyId = $journal->getSetting('enablePublicGalleyId');
             if (isset($fileType)) {
                 if (strstr($fileType, 'pdf')) {
                     $galley->setLabel('PDF');
                     if ($enablePublicGalleyId) {
                         $galley->setStoredPubId('publisher-id', 'pdf');
                     }
                 } else {
                     if (strstr($fileType, 'postscript')) {
                         $galley->setLabel('PostScript');
                         if ($enablePublicGalleyId) {
                             $galley->setStoredPubId('publisher-id', 'ps');
                         }
                     } else {
                         if (strstr($fileType, 'xml')) {
                             $galley->setLabel('XML');
                             if ($enablePublicGalleyId) {
                                 $galley->setStoredPubId('publisher-id', 'xml');
                             }
                         }
                     }
                 }
             }
             if ($galley->getLabel() == null) {
                 $galley->setLabel(__('common.untitled'));
             }
         } else {
             $galley->setLabel($this->getData('label'));
         }
         $galley->setLocale($this->getData('galleyLocale'));
         if ($enablePublicGalleyId) {
             // Ensure the assigned public id doesn't already exist
             $journalDao =& DAORegistry::getDAO('JournalDAO');
             /* @var $journalDao JournalDAO */
             $publicGalleyId = $galley->getPubId('publisher-id');
             $suffix = '';
             $i = 1;
             while ($journalDao->anyPubIdExists($journal->getId(), 'publisher-id', $publicGalleyId . $suffix)) {
                 $suffix = '_' . $i++;
             }
             $galley->setStoredPubId('publisher-id', $publicGalleyId . $suffix);
         }
         // Insert new galley into the db
         $galleyDao->insertGalley($galley);
         $this->setGalley($galley);
     }
     return $this->getGalleyId();
 }
Beispiel #2
0
 /**
  * Internal function to return an IssueGalley object from a row.
  * @param $row array
  * @return IssueGalley
  */
 function &_returnGalleyFromRow(&$row)
 {
     $galley = new IssueGalley();
     $galley->setId($row['galley_id']);
     $galley->setIssueId($row['issue_id']);
     $galley->setLocale($row['locale']);
     $galley->setFileId($row['file_id']);
     $galley->setLabel($row['label']);
     $galley->setSequence($row['seq']);
     $galley->setViews($row['views']);
     // IssueFile set methods
     $galley->setFileName($row['file_name']);
     $galley->setOriginalFileName($row['original_file_name']);
     $galley->setFileType($row['file_type']);
     $galley->setFileSize($row['file_size']);
     $galley->setContentType($row['content_type']);
     $galley->setDateModified($this->datetimeFromDB($row['date_modified']));
     $galley->setDateUploaded($this->datetimeFromDB($row['date_uploaded']));
     $this->getDataObjectSettings('issue_galley_settings', 'galley_id', $row['galley_id'], $galley);
     HookRegistry::call('IssueGalleyDAO::_returnGalleyFromRow', array(&$galley, &$row));
     return $galley;
 }