diff options
Diffstat (limited to 'inc/pageutils.php')
-rw-r--r-- | inc/pageutils.php | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/inc/pageutils.php b/inc/pageutils.php index d4a8bb7c4..c281ffc5b 100644 --- a/inc/pageutils.php +++ b/inc/pageutils.php @@ -226,7 +226,7 @@ function noNSorNS($id) { * Creates a XHTML valid linkid from a given headline title * * @param string $title The headline title - * @param array|bool $check Existing IDs (title => number) + * @param array|bool $check Existing IDs * @return string the title * * @author Andreas Gohr <andi@splitbrain.org> @@ -241,15 +241,16 @@ function sectionID($title,&$check) { } if(is_array($check)){ - // make sure tiles are unique - if (!array_key_exists ($title,$check)) { - $check[$title] = 0; - } else { - $title .= ++ $check[$title]; + $suffix=0; + $candidateTitle = $title; + while(in_array($candidateTitle, $check)){ + $candidateTitle = $title . ++$suffix; } + $check []= $candidateTitle; + return $candidateTitle; + } else { + return $title; } - - return $title; } /** |