Skip to content

Commit

Permalink
Merge pull request #1238 from superdesk/swp-2224
Browse files Browse the repository at this point in the history
Remove unnececary previous route duplication on article update
  • Loading branch information
IvanJelicSF committed Jul 5, 2023
2 parents ba701ff + 0f16d7a commit 0424b0c
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -61,19 +61,39 @@ public function overrideSlugIfNeeded(ArticleEvent $event): void

$overrideSlugOnCorrection = $this->settingsManager->get('override_slug_on_correction', 'tenant', $this->tenantContext->getTenant());

if ($overrideSlugOnCorrection && null !== $article->getSlug()) {
if ($previousRoute && $overrideSlugOnCorrection && null !== $article->getSlug()) {
$this->savePreviousRelativeUrl($article, $previousRoute);
$article->setSlug($package->getSlugline() ?? Transliterator::urlize($article->getTitle()));
} else if ($previousRoute) {
}else if ($previousRoute) {
$this->savePreviousRelativeUrl($article, $previousRoute);
}
}

protected function duplicateUrl(ArticleInterface $article, string $route): bool
{
$previousUrl = $article->getPreviousRelativeUrl()?->getValues() ?? [];
if (empty($previousUrl)) {
return false;
}
/**
* @var ArticlePreviousRelativeUrl $previousUrl
*/
$previousUrl = reset($previousUrl);
if ($previousUrl->getRelativeUrl() !== $route) {
return false;
}
return true;
}

private function savePreviousRelativeUrl(ArticleInterface $article, RouteInterface $route = null): void
{
$route = $route ?? $article->getRoute();
$relativeUrlString = $this->router->generate($route->getName(), ['slug' => $article->getSlug()]);
if ($this->duplicateUrl($article, $relativeUrlString)) {
return;
}
$relativeUrl = new ArticlePreviousRelativeUrl();
$relativeUrl->setRelativeUrl($this->router->generate($route->getName(), ['slug' => $article->getSlug()]));
$relativeUrl->setRelativeUrl($relativeUrlString);

$article->addPreviousRelativeUrl($relativeUrl);
}
Expand Down
2 changes: 1 addition & 1 deletion src/SWP/Bundle/CoreBundle/Service/ArticlePublisher.php
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ public function publish(PackageInterface $package, CompositePublishActionInterfa
$article->setPaywallSecured($destination->isPaywallSecured());
$article->setPublishedToAppleNews($destination->isPublishedToAppleNews());
$this->eventDispatcher->dispatch(new GenericEvent($article), Events::SWP_VALIDATION);
$this->eventDispatcher->dispatch(new ArticleEvent($article, $package, ArticleEvents::PRE_UPDATE, $originalRoute), ArticleEvents::PRE_UPDATE);
$this->eventDispatcher->dispatch(new ArticleEvent($article, $package, ArticleEvents::PRE_UPDATE, $article->getRoute()), ArticleEvents::PRE_UPDATE);
$this->articleRepository->flush();

if ($destination->isPublished()) {
Expand Down

0 comments on commit 0424b0c

Please sign in to comment.