<?php if (!defined('PmWiki')) exit(); /* mkexpr-thread.php for PmWiki 2.2.0 + provide {(thread 'Group' 'ThreadStart')} markup expression use {(thread)} returns next higher four digit number than highest pagename ending in current group Specify Group as first argument to check the pagenames there Specify Name as optoonal second argument for a Name pagename prefix (anything before the digits) Change in config.php ThreatStart: number from which the thread starts */ SDV($ThreadStart,'001'); $MarkupExpr['thread'] = 'MakeThread($pagename, $args[0], $args[1])'; function MakeThread($pagename, $grp="", $name="" ) { global $ThreadStart; $len = strlen($ThreadStart); if (!$grp) $grp = PageVar($pagename, '$Group'); $n = $ThreadStart-1; foreach(ListPages("/^$grp.$name\\d/") as $p) { preg_match("/.*[^\\d](\\d+)$/",$p, $m); $mlen = strlen($m[1]); if($mlen>$len) $len = $mlen; $n = max($n,$m[1]); } return sprintf("%0{$len}d",$n+1); }