/** * @covers PubObjectCache */ public function testAddIssue() { $nullVar = null; $cache = new PubObjectCache(); $issue = new Issue(); $issue->setId('1'); self::assertFalse($cache->isCached('issues', $issue->getId())); $cache->add($issue, $nullVar); self::assertTrue($cache->isCached('issues', $issue->getId())); $retrievedIssue = $cache->get('issues', $issue->getId()); self::assertEquals($issue, $retrievedIssue); }
/** * creates and returns an issue object from a row * @param $row array * @return Issue object */ function &_returnIssueFromRow($row) { $issue = new Issue(); $issue->setId($row['issue_id']); $issue->setJournalId($row['journal_id']); $issue->setVolume($row['volume']); $issue->setNumber($row['number']); $issue->setYear($row['year']); $issue->setPublished($row['published']); $issue->setCurrent($row['current']); $issue->setDatePublished($this->datetimeFromDB($row['date_published'])); $issue->setDateNotified($this->datetimeFromDB($row['date_notified'])); $issue->setAccessStatus($row['access_status']); $issue->setOpenAccessDate($this->datetimeFromDB($row['open_access_date'])); $issue->setPublicIssueId($row['public_issue_id']); $issue->setShowVolume($row['show_volume']); $issue->setShowNumber($row['show_number']); $issue->setShowYear($row['show_year']); $issue->setShowTitle($row['show_title']); $issue->setStyleFileName($row['style_file_name']); $issue->setOriginalStyleFileName($row['original_style_file_name']); $this->getDataObjectSettings('issue_settings', 'issue_id', $row['issue_id'], $issue); HookRegistry::call('IssueDAO::_returnIssueFromRow', array(&$issue, &$row)); return $issue; }
/** * Save issue settings. */ function execute($issueId = 0) { $journal =& Request::getJournal(); $issueDao =& DAORegistry::getDAO('IssueDAO'); if ($issueId) { $issue = $issueDao->getIssueById($issueId); $isNewIssue = false; } else { $issue = new Issue(); $isNewIssue = true; } $volume = $this->getData('volume'); $number = $this->getData('number'); $year = $this->getData('year'); $showVolume = $this->getData('showVolume'); $showNumber = $this->getData('showNumber'); $showYear = $this->getData('showYear'); $showTitle = $this->getData('showTitle'); $issue->setJournalId($journal->getId()); $issue->setTitle($this->getData('title'), null); // Localized $issue->setVolume(empty($volume) ? 0 : $volume); $issue->setNumber(empty($number) ? 0 : $number); $issue->setYear(empty($year) ? 0 : $year); if (!$isNewIssue) { $issue->setDatePublished($this->getData('datePublished')); } $issue->setDescription($this->getData('description'), null); // Localized $issue->setPublicIssueId($this->getData('publicIssueId')); $issue->setShowVolume(empty($showVolume) ? 0 : $showVolume); $issue->setShowNumber(empty($showNumber) ? 0 : $showNumber); $issue->setShowYear(empty($showYear) ? 0 : $showYear); $issue->setShowTitle(empty($showTitle) ? 0 : $showTitle); $issue->setCoverPageDescription($this->getData('coverPageDescription'), null); // Localized $issue->setCoverPageAltText($this->getData('coverPageAltText'), null); // Localized $showCoverPage = array_map(create_function('$arrayElement', 'return (int)$arrayElement;'), (array) $this->getData('showCoverPage')); foreach (array_keys($this->getData('coverPageDescription')) as $locale) { if (!array_key_exists($locale, $showCoverPage)) { $showCoverPage[$locale] = 0; } } $issue->setShowCoverPage($showCoverPage, null); // Localized $hideCoverPageArchives = array_map(create_function('$arrayElement', 'return (int)$arrayElement;'), (array) $this->getData('hideCoverPageArchives')); foreach (array_keys($this->getData('coverPageDescription')) as $locale) { if (!array_key_exists($locale, $hideCoverPageArchives)) { $hideCoverPageArchives[$locale] = 0; } } $issue->setHideCoverPageArchives($hideCoverPageArchives, null); // Localized $hideCoverPageCover = array_map(create_function('$arrayElement', 'return (int)$arrayElement;'), (array) $this->getData('hideCoverPageCover')); foreach (array_keys($this->getData('coverPageDescription')) as $locale) { if (!array_key_exists($locale, $hideCoverPageCover)) { $hideCoverPageCover[$locale] = 0; } } $issue->setHideCoverPageCover($hideCoverPageCover, null); // Localized $issue->setAccessStatus($this->getData('accessStatus')); if ($this->getData('enableOpenAccessDate')) { $issue->setOpenAccessDate($this->getData('openAccessDate')); } else { $issue->setOpenAccessDate(null); } // if issueId is supplied, then update issue otherwise insert a new one if ($issueId) { $issue->setId($issueId); $issueDao->updateIssue($issue); } else { $issue->setPublished(0); $issue->setCurrent(0); $issueId = $issueDao->insertIssue($issue); $issue->setId($issueId); } import('classes.file.PublicFileManager'); $publicFileManager = new PublicFileManager(); if ($publicFileManager->uploadedFileExists('coverPage')) { $journal = Request::getJournal(); $originalFileName = $publicFileManager->getUploadedFileName('coverPage'); $newFileName = 'cover_issue_' . $issueId . '_' . $this->getFormLocale() . '.' . $publicFileManager->getExtension($originalFileName); $publicFileManager->uploadJournalFile($journal->getId(), 'coverPage', $newFileName); $issue->setOriginalFileName($publicFileManager->truncateFileName($originalFileName, 127), $this->getFormLocale()); $issue->setFileName($newFileName, $this->getFormLocale()); // Store the image dimensions. list($width, $height) = getimagesize($publicFileManager->getJournalFilesPath($journal->getId()) . '/' . $newFileName); $issue->setWidth($width, $this->getFormLocale()); $issue->setHeight($height, $this->getFormLocale()); $issueDao->updateIssue($issue); } if ($publicFileManager->uploadedFileExists('styleFile')) { $journal = Request::getJournal(); $originalFileName = $publicFileManager->getUploadedFileName('styleFile'); $newFileName = 'style_' . $issueId . '.css'; $publicFileManager->uploadJournalFile($journal->getId(), 'styleFile', $newFileName); $issue->setStyleFileName($newFileName); $issue->setOriginalStyleFileName($publicFileManager->truncateFileName($originalFileName, 127)); $issueDao->updateIssue($issue); } return $issueId; }