Example #1
0
 /**
  * Generate clean URL
  *
  * @param string $name Product name
  *
  * @return string
  */
 protected function generateCleanURL($name)
 {
     $result = '';
     if (isset($name)) {
         $separator = \XLite\Core\Converter::getCleanURLSeparator();
         $result .= strtolower(preg_replace('/\\W+/S', $separator, $name));
         $suffix = '';
         $increment = 1;
         $entity = $this->getEntity();
         $repo = \XLite\Core\Database::getRepo(get_class($entity));
         while (($tmp = $repo->findOneByCleanURL($result . $suffix)) && $entity->getUniqueIdentifier() != $tmp->getUniqueIdentifier() && $increment < static::CLEAN_URL_CHECK_LIMIT) {
             $suffix = $separator . $increment++;
         }
         if (!empty($suffix)) {
             if ($entity->getCleanURL() !== $result . $suffix) {
                 $this->setCleanURLWarning($result, $suffix);
             }
             $result .= $suffix;
         }
     }
     return $result;
 }
Example #2
0
File: Page.php Project: kingsj/core
 /**
  * Generate clean URL
  *
  * @param string $name Page name
  *
  * @return string
  */
 protected function generateCleanURL($name)
 {
     $result = '';
     if (isset($name)) {
         $separator = \XLite\Core\Converter::getCleanURLSeparator();
         $result .= strtolower(preg_replace('/\\W+/S', $separator, $name));
         $suffix = '';
         $increment = 1;
         $entity = $this->getDefaultModelObject();
         $repo = \XLite\Core\Database::getRepo(get_class($entity));
         while (($tmp = $repo->findOneByCleanURL($result . $suffix)) && $entity->getUniqueIdentifier() != $tmp->getUniqueIdentifier() && $increment < 1000) {
             $suffix = $separator . $increment++;
         }
         if (!empty($suffix)) {
             $result .= $suffix;
         }
     }
     return $result;
 }