@@ 298-326 (lines=29) @@ | ||
295 | * |
|
296 | * @return NodeTranslation |
|
297 | */ |
|
298 | public function copyPageFromOtherLanguage(Node $node, $sourceLocale, $locale) |
|
299 | { |
|
300 | $user = $this->getAdminUser(); |
|
301 | ||
302 | $sourceNodeTranslation = $node->getNodeTranslation($sourceLocale, true); |
|
303 | $sourceNodeVersion = $sourceNodeTranslation->getPublicNodeVersion(); |
|
304 | $sourcePage = $sourceNodeVersion->getRef($this->em); |
|
305 | $targetPage = $this->cloneHelper->deepCloneAndSave($sourcePage); |
|
306 | ||
307 | /* @var NodeTranslation $nodeTranslation */ |
|
308 | $nodeTranslation = $this->em->getRepository(NodeTranslation::class)->createNodeTranslationFor($targetPage, $locale, $node, $user); |
|
309 | $nodeVersion = $nodeTranslation->getPublicNodeVersion(); |
|
310 | ||
311 | $this->dispatch( |
|
312 | new CopyPageTranslationNodeEvent( |
|
313 | $node, |
|
314 | $nodeTranslation, |
|
315 | $nodeVersion, |
|
316 | $targetPage, |
|
317 | $sourceNodeTranslation, |
|
318 | $sourceNodeVersion, |
|
319 | $sourcePage, |
|
320 | $sourceLocale |
|
321 | ), |
|
322 | Events::COPY_PAGE_TRANSLATION |
|
323 | ); |
|
324 | ||
325 | return $nodeTranslation; |
|
326 | } |
|
327 | ||
328 | /** |
|
329 | * @param Node $node |
|
@@ 372-400 (lines=29) @@ | ||
369 | * |
|
370 | * @return NodeTranslation |
|
371 | */ |
|
372 | public function createPageDraftFromOtherLanguage(Node $node, $sourceNodeTranslationId, $locale) |
|
373 | { |
|
374 | $user = $this->getAdminUser(); |
|
375 | ||
376 | $sourceNodeTranslation = $this->em->getRepository(NodeTranslation::class)->find($sourceNodeTranslationId); |
|
377 | $sourceNodeVersion = $sourceNodeTranslation->getPublicNodeVersion(); |
|
378 | $sourcePage = $sourceNodeVersion->getRef($this->em); |
|
379 | $targetPage = $this->cloneHelper->deepCloneAndSave($sourcePage); |
|
380 | ||
381 | /* @var NodeTranslation $nodeTranslation */ |
|
382 | $nodeTranslation = $this->em->getRepository(NodeTranslation::class)->addDraftNodeVersionFor($targetPage, $locale, $node, $user); |
|
383 | $nodeVersion = $nodeTranslation->getPublicNodeVersion(); |
|
384 | ||
385 | $this->dispatch( |
|
386 | new RecopyPageTranslationNodeEvent( |
|
387 | $node, |
|
388 | $nodeTranslation, |
|
389 | $nodeVersion, |
|
390 | $targetPage, |
|
391 | $sourceNodeTranslation, |
|
392 | $sourceNodeVersion, |
|
393 | $sourcePage, |
|
394 | $sourceNodeTranslation->getLang() |
|
395 | ), |
|
396 | Events::RECOPY_PAGE_TRANSLATION |
|
397 | ); |
|
398 | ||
399 | return $nodeTranslation; |
|
400 | } |
|
401 | ||
402 | /** |
|
403 | * @param Node $node |