Cette page explique comment convertir une chaîne de caractère en URL sous CodeIgniter. En anglais,
la chaine de caractère résultante s'appelle un "slug". "Slugify" est le verbe associé au processus
de convertion. Par exemple : le blog de Lulu
deviendra après transformation le-blog-de-lulu
.
CodeIgniter est fourni avec des classes d'assitance (helpers) qui peuvent être utilisée pour slugifier des chaînes de caractères.
La fonction suivante permet de convertir une chaîne de caractères en slug:
$this->load->helper('text');
$this->load->helper('url');
$slug = url_title(convert_accented_characters($string), 'dash', true);
Toutefois, ces fonctions ne supportent pas les translittération pour toutes les langues, en particulier pour le français. À titre d'exemple, l'apostrophe est supprimé de la chaîne initiale au lie d'être remplacé par un séparateur.
La meilleure option pour la conversion et l'ajout de futurs caractères
non supportés est "d'étendre" la classe url_helper. Créer un nouveau fichier
nommé MY_url_helper.php
dans le dossier application/helpers/
.
Voici le contenu du fichier :
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
// Check if the function does not exists
if ( ! function_exists('slugify'))
{
// Slugify a string
function slugify($string)
{
// Get an instance of $this
$CI =& get_instance();
$CI->load->helper('text');
$CI->load->helper('url');
// Replace unsupported characters (add your owns if necessary)
$string = str_replace("'", '-', $string);
$string = str_replace(".", '-', $string);
$string = str_replace("²", '2', $string);
// Slugify and return the string
return url_title(convert_accented_characters($string), 'dash', true);
}
}
Le code suivant permet de convertir une chaîne de caractères en slug:
$this->load->helper('url_helper');
$slug = slugify ($string);