/** * Changes SEO Fields for an object. * * @param ModelCriteria $query * @param UpdateSeoEvent $event * * @return mixed an SEOxxx object * @throws FormValidationException if a rewritten URL cannot be created */ protected function genericUpdateSeo(ModelCriteria $query, UpdateSeoEvent $event) { if (null !== ($object = $query->findPk($event->getObjectId()))) { $object->setDispatcher($event->getDispatcher())->setLocale($event->getLocale())->setMetaTitle($event->getMetaTitle())->setMetaDescription($event->getMetaDescription())->setMetaKeywords($event->getMetaKeywords())->save(); // Update the rewritten URL, if required try { $object->setRewrittenUrl($event->getLocale(), $event->getUrl()); } catch (UrlRewritingException $e) { throw new FormValidationException($e->getMessage(), $e->getCode()); } $event->setObject($object); } return $object; }