/** * 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; }
/** * 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; }