diff --git a/_test/cases/inc/pageutils_clean_id.test.php b/_test/cases/inc/pageutils_clean_id.test.php index 01fa7dc1c843dd28e06370663290f9ec38b9a771..ece71e89937c795a2d7dd6b284ef46cd76c70fb9 100644 --- a/_test/cases/inc/pageutils_clean_id.test.php +++ b/_test/cases/inc/pageutils_clean_id.test.php @@ -36,6 +36,15 @@ class init_clean_id_test extends UnitTestCase { $tests[] = array('page:page',false,'page:page'); $tests[] = array('page;page',false,'page:page'); + $tests[] = array('page._#!','false','page'); + $tests[] = array('._#!page','false','page'); + $tests[] = array('page._#!page','false','page._page'); + $tests[] = array('ns._#!:page','false','ns:page'); + $tests[] = array('ns:._#!page','false','ns:page'); + $tests[] = array('ns._#!ns:page','false','ns._ns:page'); + $tests[] = array('ns_:page',false,'ns:page'); + $tests[] = array('page...page','false','page...page'); + $conf['useslash'] = 0; $tests[] = array('page/page',false,'page_page'); diff --git a/inc/pageutils.php b/inc/pageutils.php index 81dcb66e7f5ec4bddf3c4042a0884b64e759de0d..31b5f9ff94ac9de58479d29b610352ee9ab2b106 100644 --- a/inc/pageutils.php +++ b/inc/pageutils.php @@ -134,6 +134,7 @@ function cleanID($raw_id,$ascii=false,$media=false){ $id = preg_replace('#:+#',':',$id); $id = ($media ? trim($id,':.-') : trim($id,':._-')); $id = preg_replace('#:[:\._\-]+#',':',$id); + $id = preg_replace('#[:\._\-]+:#',':',$id); $cache[(string)$raw_id] = $id; return($id);