// Generate Slug
public function generateSlug($slug)
{
// replace non letter or digits by -
$slug = preg_replace('~[^\pL\d]+~u', '-', $slug);
// transliterate
$slug = iconv('utf-8', 'us-ascii//TRANSLIT', $slug);
// remove unwanted characters
$slug = preg_replace('~[^-\w]+~', '', $slug);
// trim
$slug = trim($slug, '-');
// remove duplicate -
$slug = preg_replace('~-+~', '-', $slug);
// lowercase
$slug = strtolower($slug);
if (empty($slug)) {
$slug = "n-a";
}
$i = 0;
$slug_save = $slug;
// Check if slug is used
while (true) {
$query = $this->getDb()->prepare('SELECT COUNT(news_slug) FROM news WHERE news_slug=:news_slug');
$query->bindParam(':news_slug', $slug);
$query->execute();
$count = $query->fetch();
if ((int)$count[0] === 0) {
break;
}
// Increment slug
$i++;
$slug = $slug_save."-".$i;
}
return $slug;
}
Bonjour
J'ai un problème des lettres sont supprimés comme le é ou ë du coup j'ai un trou dans mon slug et ca fait vraiment moche.