*/ define('DOKU_INC', realpath(dirname(__FILE__)) . '/../../../../'); require_once(DOKU_INC.'inc/init.php'); require_once(DOKU_INC.'inc/io.php'); numberingProcessNum(); exit; function numberingProcessNum() { $db = numberingDB(); $helper = plugin_load('helper', 'numbering'); $start = urldecode($helper->getConfValue('nstart')); $number = getNumberingNextNumber($db, $start); $padding = urldecode($helper->getConfValue('padding')); $len = (int) urldecode($helper->getConfValue('pad_length')); $set_date = $helper->getConfValue('set_date'); $format = urldecode($helper->getConfValue('format')); if($helper->getConfValue('use_imgs') ){ $imagestr=urldecode($helper->getConfValue('imgs')); $images = explode(',',$imagestr); $i_no = 0; foreach($images as $img) { $nxt = '%i' . ++$i_no; $format = str_replace($nxt , '{{' . $img . '}}' ,$format); } } if($set_date) { $dformat = urldecode($helper->getConfValue('datestyle')); $time = strftime($dformat); $format = str_replace('%d', $time, $format); } $n = str_pad((string)$number, (int)$len, $padding, STR_PAD_LEFT); $format = str_replace('%n', $n, $format); echo "$format\n\n"; } function getNumberingNextNumber($db, $start) { io_lock($db); $ar = unserialize(io_readFile($db,false)); if(!$ar) { $ar['saved'] = $start; $ar['start'] = $start; } else { $number = $ar['saved']; if($ar['start'] != $start) { $ar['start'] = $start; $number = $start; } else $number = $ar['saved']; } if($number < $start) $number = $start-1; $ar['saved'] = ++$number; file_put_contents($db,serialize($ar)); io_unlock($db); return "$number"; } function numberingDB() { $db = metaFN("numbering:seqnum",'.ser'); if(!file_exists($db)) { io_saveFile($db,"", array()); } return $db; }