Example #1
0
 /**
  * {@inheritdoc}
  *
  * @param Page $entity
  * @param bool $unlock
  */
 public function saveEntity($entity, $unlock = true)
 {
     $pageIds = $entity->getRelatedEntityIds();
     if (empty($this->inConversion)) {
         $alias = $entity->getAlias();
         if (empty($alias)) {
             $alias = $entity->getTitle();
         }
         $alias = $this->cleanAlias($alias, '', false, '-');
         //make sure alias is not already taken
         $repo = $this->getRepository();
         $testAlias = $alias;
         $count = $repo->checkPageUniqueAlias($testAlias, $pageIds);
         $aliasTag = 1;
         while ($count) {
             $testAlias = $alias . $aliasTag;
             $count = $repo->checkPageUniqueAlias($testAlias, $pageIds);
             ++$aliasTag;
         }
         if ($testAlias != $alias) {
             $alias = $testAlias;
         }
         $entity->setAlias($alias);
     }
     // Set the author for new pages
     $isNew = $entity->isNew();
     if (!$isNew) {
         //increase the revision
         $revision = $entity->getRevision();
         ++$revision;
         $entity->setRevision($revision);
     }
     // Reset a/b test if applicable
     $variantStartDate = new \DateTime();
     $resetVariants = $this->preVariantSaveEntity($entity, ['setVariantHits'], $variantStartDate);
     parent::saveEntity($entity, $unlock);
     $this->postVariantSaveEntity($entity, $resetVariants, $pageIds, $variantStartDate);
     $this->postTranslationEntitySave($entity);
 }
 /**
  * {@inheritDoc}
  */
 public function setAlias($alias)
 {
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'setAlias', array($alias));
     return parent::setAlias($alias);
 }