/** * @Route("/admin/publications/{id}/remove/", name="newscoop_newscoop_publications_remove") */ public function removeAction(Request $request, Publication $publication) { $em = $this->container->get('em'); $user = $this->container->get('user')->getCurrentUser(); $translator = $this->container->get('translator'); if (!$user->hasPermission('ManagePub')) { throw new AccessDeniedException($translator->trans("You do not have the right to delete publications.", array(), 'pub')); } $issuesRemaining = $em->getRepository('Newscoop\\Entity\\Issue')->getIssuesCountForPublication($publication->getId())->getSingleScalarResult(); $sectionsRemaining = $em->getRepository('Newscoop\\Entity\\Section')->getSectionsCountForPublication($publication->getId())->getSingleScalarResult(); $articlesRemaining = $em->getRepository('Newscoop\\Entity\\Article')->getArticlesCountForPublication($publication->getId())->getSingleScalarResult(); $form = $this->createForm(new RemovePublicationType(), $publication); if ($request->getMethod() === 'POST' && $issuesRemaining == 0 && $sectionsRemaining == 0 && $articlesRemaining == 0) { $form->handleRequest($request); if ($form->isValid()) { $em->remove($publication); $em->flush(); $cacheService = $this->container->get('newscoop.cache'); $cacheService->clearNamespace('publication'); $this->get('session')->getFlashBag()->add('success', $translator->trans('publications.publication_removed', array(), 'pub')); return new RedirectResponse($this->generateUrl('newscoop_newscoop_publications_index')); } } return $this->render('NewscoopNewscoopBundle:BackendPublications:remove.html.twig', array('publication' => $publication, 'issuesRemaining' => $issuesRemaining, 'sectionsRemaining' => $sectionsRemaining, 'articlesRemaining' => $articlesRemaining, 'form' => $form->createView())); }
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); }
public function it_gets_the_latest_issue_for_current_publication(Issue $issue, Publication $publication, $query, $repository, $em) { $publication->getId()->willReturn(1); $em->getReference('Newscoop\\Entity\\Issue', 7)->willReturn($issue); $repository->getLastPublishedByPublication(1)->willReturn($query); $issueResult = array(array('id' => 7, 'number' => 12, 'workflowStatus' => 'Y')); $query->getArrayResult()->willReturn($issueResult); $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; }
public function getCount(array $p_params = array(), array $cols = array()) { $search = $this->getSearchObject(); $p_params = (object) $p_params; if (isset($p_params->search)) { if (@trim($p_params->search[$this->_pubColFilterIdx]) != "") { $p = new Publication(); $p->setId(intval($p_params->search[$this->_pubColFilterIdx])); try { return $this->_service->getCountThemes($p, $search); } catch (\Exception $e) { return 0; } } $this->search($p_params->search); } try { return $this->_service->getCountUnassignedThemes($search); } catch (\Exception $e) { return 0; } }
/** * 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()); } } } }
/** * Get publication id * * @return int */ public function getPublicationId() { return $this->publication->getId(); }
private function getModeratorEmailIfModerationEnabled(Publication $publication, $user = null) { if ($publication->getCommentsEnabled()) { if ($publication->getCommentsSubscribersModerated() && ($publication->getPublicCommentsEnabled() && $publication->getCommentsPublicModerated())) { return $publication->getModeratorTo(); } if ($publication->getPublicCommentsEnabled() && $publication->getCommentsPublicModerated() && !$publication->getCommentsSubscribersModerated() && !$user || $publication->getCommentsSubscribersModerated() && !($publication->getPublicCommentsEnabled() && $publication->getCommentsPublicModerated()) && $user) { return $publication->getModeratorTo(); } } }