Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/11/2011, 08:50
Avatar de quike88
quike88
 
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 15 años, 8 meses
Puntos: 87
Respuesta: Reemplazar, no eliminar

Que tal,

Yo lo solucioné extendiendo el helper de esta forma.

Creas un archivo llamado my_helper_url.php dentro de tu_aplicacion/helpers/ y pones este código:
Código PHP:
<?php
function url_title($str$separator 'dash'$lowercase FALSE){
    if (
$separator == 'dash') {
        
$search        '_';
        
$replace    '-';
    } else {
        
$search        '-';
        
$replace    '_';
    }

    
$trans = array(
                
$search                 => $replace,
                
"á"                     => 'a',
                
"é"                     => 'e',
                
"í"                     => 'i',
                
"ó"                     => 'o',
                
"ú"                     => 'u',
                
"Á"                     => 'A',
                
"É"                     => 'E',
                
"Í"                     => 'I',
                
"Ó"                     => 'O',
                
"Ú"                     => 'U',
                
"ñ"                     => 'n',
                
"Ñ"                     => 'Ñ',
                
"ä"                     => 'a',
                
"ë"                     => 'e',
                
"ï"                     => 'i',
                
"ö"                     => 'o',
                
"ü"                     => 'u',
                
'&\#\d+?;'                => '',
                
'&\S+?;'                => '',
                
'\s+'                    => $replace,
                
'[^a-z0-9\-\._]'        => '',
                
$replace.'+'            => $replace,
                
$replace.'$'            => $replace,
                
'^'.$replace            => $replace,
                
'\.+$'                    => ''
               
);
    
$str strip_tags($str);

    foreach (
$trans as $key => $val)
    {
        
$str preg_replace("#".$key."#i"$val$str);
    }

    if (
$lowercase === TRUE)
    {
        
$str strtolower($str);
    }

    return 
trim(stripslashes($str));
}
Que lo que hace es reemplazar la función por una que tiene un array con las vocales con tilde y la ñ.

Saludos.