public function it_gets_the_latest_issue_for_current_publication(Issue $issue, Publication $publication) { $pub = new Publication(); $pub->setId(1); $issue = new Issue(1, $pub); $issue->setWorkflowStatus('Y'); $publication->getIssues()->willReturn(new ArrayCollection(array($issue))); $this->getLatestPublishedIssue()->shouldReturn($issue); }
/** * Get name. * * @param int $number * @param Newscoop\Entity\Publication $publication * @param Newscoop\Entity\Language $language * * @return string */ public function getName($number, \Newscoop\Entity\Publication $publication, \Newscoop\Entity\Language $language = null) { foreach ($publication->getIssues() as $issue) { if ($language !== null && $issue->getLanguage() !== $language) { continue; } foreach ($issue->getSections() as $section) { if ($section->getNumber() == $number) { return $section->getName(); } } } return; }
/** * Add sections * * @param array $values * @param Newscoop\Entity\Publication $publication * @return void */ public function addSections(array $values, \Newscoop\Entity\Publication $publication) { $languages = array(); if (!empty($values['individual_languages']) && $values['individual_languages']) { $languages = $values['languages']; if (empty($languages)) { throw new \InvalidArgumentException("No languages set for individual languages"); } } foreach ($publication->getIssues() as $issue) { if (!empty($languages) && !in_array($issue->getLanguageId(), $languages)) { continue; } foreach ($issue->getSections() as $section) { if ($this->hasSection($section, $languages)) { continue; } $subSection = new Section($this, $section->getNumber()); $subSection->setStartDate(new \DateTime($values['start_date'])); $subSection->setDays($values['days']); if ($this->isTrial() || $values['type'] === self::TYPE_PAID_NOW) { $subSection->setPaidDays($values['days']); } if (!empty($languages)) { $subSection->setLanguage($issue->getLanguage()); } } } }