/**
  * @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()));
 }
Ejemplo n.º 2
0
 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);
 }
Ejemplo n.º 3
0
 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);
 }
Ejemplo n.º 4
0
 /**
  * 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;
 }
Ejemplo n.º 5
0
 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;
     }
 }
Ejemplo n.º 6
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());
             }
         }
     }
 }
Ejemplo n.º 7
0
 /**
  * Get publication id
  *
  * @return int
  */
 public function getPublicationId()
 {
     return $this->publication->getId();
 }
Ejemplo n.º 8
0
 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();
         }
     }
 }