38 lines
895 B
PHP
38 lines
895 B
PHP
|
<?php
|
||
|
|
||
|
class Text_Wiki_Parse_Doclink extends Text_Wiki_Parse {
|
||
|
|
||
|
var $conf = array(
|
||
|
'toc' => null
|
||
|
);
|
||
|
|
||
|
var $regex = '/\[doc ([a-z0-9-]+(?::[a-z0-9-]+)*)(?: ([^\n\]]*))?]/';
|
||
|
|
||
|
function process(&$matches)
|
||
|
{
|
||
|
$toc = $this->getConf('toc');
|
||
|
|
||
|
if ($toc instanceof Sensei_Doc_Toc) {
|
||
|
$section = $toc->findByPath($matches[1]);
|
||
|
}
|
||
|
|
||
|
if (isset($section)) {
|
||
|
$options = array();
|
||
|
|
||
|
$options['path'] = $matches[1];
|
||
|
|
||
|
if (isset($matches[2])) {
|
||
|
$options['text'] = $matches[2];
|
||
|
} else {
|
||
|
$options['text'] = $section->getIndex() . ' ' . $section->getName(true);
|
||
|
}
|
||
|
|
||
|
return $this->wiki->addToken($this->rule, $options);
|
||
|
|
||
|
} else {
|
||
|
return $matches[0];
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|