/** * @Route("/{id}/translations/add/{localeContent}/{localeTranslation}", name="admin_content_translation_add") * @Method({"GET", "POST"}) */ public function addTranslationAction(Request $request, Content $content, $localeTranslation) { $newContent = new Content($localeTranslation); $form = $this->createForm(ContentForm::class, $newContent, ['type' => $content->getType(), 'parent' => $content]); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $em = $this->getDoctrine()->getManager(); $em->persist($newContent); $em->flush(); $this->addFlash('success', 'content.flash.translation.created'); return $this->redirectToRoute('admin_content_translations', ['id' => $content->getId()]); } return $this->render('admin/content/admin_content_new.html.twig', ['form' => $form->createView(), 'content' => $content, 'type' => $content->getType()]); }
private function getTranslations(Content $content) { $contents = []; if ($content->getParentMultilangue()) { $contents[] = ['locale' => $content->getParentMultilangue()->getLocale(), 'language' => $this->locales->getLanguage($content->getParentMultilangue()->getLocale()), 'slug' => $content->getParentMultilangue()->getSlug(), 'title' => $content->getParentMultilangue()->getTitle(), 'slugcategory' => $content->getType() == 'post' ? $content->getParentMultilangue()->getCategory()->getSlug() : null, 'type' => $content->getType()]; foreach ($content->getParentMultilangue()->getChildrenMultilangue() as $item) { if ($item->getLocale() != $content->getLocale() && $item->getStatus()) { $contents[] = ['locale' => $item->getLocale(), 'language' => $this->locales->getLanguage($item->getLocale()), 'slug' => $item->getSlug(), 'title' => $item->getTitle(), 'slugcategory' => $content->getType() == 'post' ? $item->getCategory()->getSlug() : null, 'type' => $item->getType()]; } } } if ($content->getChildrenMultilangue()) { foreach ($content->getChildrenMultilangue() as $item) { if ($item->getStatus()) { $contents[] = ['locale' => $item->getLocale(), 'language' => $this->locales->getLanguage($item->getLocale()), 'slug' => $item->getSlug(), 'title' => $item->getTitle(), 'slugcategory' => $content->getType() == 'post' ? $item->getCategory()->getSlug() : null, 'type' => $item->getType()]; } } } return $contents; }