48 lines
948 B
PHP
48 lines
948 B
PHP
<?php
|
|
/**
|
|
* Smarty plugin
|
|
* @package Smarty
|
|
* @subpackage plugins
|
|
*/
|
|
|
|
|
|
/**
|
|
* Smarty plugin
|
|
*
|
|
* Type: modifier
|
|
* Name: url
|
|
* Date: Feb 04, 2011
|
|
* Example: {$text|url}
|
|
* @version 1.0
|
|
* @author Nemunaire <nemunaire at gmail dot com>
|
|
* @param string
|
|
* @return string
|
|
*/
|
|
function smarty_modifier_url($string)
|
|
{
|
|
$string = trim($string);
|
|
|
|
if ( ctype_digit($string) )
|
|
{
|
|
return $string;
|
|
}
|
|
else
|
|
{
|
|
// replace accented chars
|
|
$accents = '/&([A-Za-z]{1,2})(grave|acute|circ|cedil|uml|lig);/';
|
|
$string_encoded = htmlentities($string,ENT_NOQUOTES,'UTF-8');
|
|
|
|
$string = preg_replace($accents,'$1',$string_encoded);
|
|
|
|
// clean out the rest
|
|
$replace = array('([\40\'/])','([^a-zA-Z0-9-])','(-{2,})');
|
|
$with = array('-','','-');
|
|
$string = preg_replace($replace,$with,$string);
|
|
}
|
|
|
|
return strtolower($string);
|
|
}
|
|
|
|
/* vim: set expandtab: */
|
|
|
|
?>
|