diff options
Diffstat (limited to 'inc/pageutils.php')
-rw-r--r-- | inc/pageutils.php | 46 |
1 files changed, 38 insertions, 8 deletions
diff --git a/inc/pageutils.php b/inc/pageutils.php index e509dfde3..7a140ef8c 100644 --- a/inc/pageutils.php +++ b/inc/pageutils.php @@ -162,19 +162,19 @@ function noNS($id) { } /** -* Returns the current namespace -* -* @author Nathan Fritz <fritzn@crown.edu> -*/ + * Returns the current namespace + * + * @author Nathan Fritz <fritzn@crown.edu> + */ function curNS($id) { return noNS(getNS($id)); } /** -* Returns the ID without the namespace or current namespace for 'start' pages -* -* @author Nathan Fritz <fritzn@crown.edu> -*/ + * Returns the ID without the namespace or current namespace for 'start' pages + * + * @author Nathan Fritz <fritzn@crown.edu> + */ function noNSorNS($id) { global $conf; @@ -189,6 +189,36 @@ function noNSorNS($id) { } /** + * Creates a XHTML valid linkid from a given headline title + * + * @param string $title The headline title + * @param array $check List of existing IDs + * @author Andreas Gohr <andi@splitbrain.org> + */ +function sectionID($title,&$check=null) { + $title = str_replace(':','',cleanID($title)); + $new = ltrim($title,'0123456789._-'); + if(empty($new)){ + $title = 'section'.preg_replace('/[^0-9]+/','',$title); //keep numbers from headline + }else{ + $title = $new; + } + + if(!is_null($check) && is_array($check)){ + // make sure tiles are unique + $num = ''; + while(in_array($title.$num,$check)){ + ($num) ? $num++ : $num = 1; + } + $title = $title.$num; + $check[] = $title; + } + + return $title; +} + + +/** * Wiki page existence check * * parameters as for wikiFN |