project = $request->project; $this->request = $request; $filter = new IDF_Template_MarkdownPrefilter(); $text = $filter->go($text); // The filter has replace < and > also in the code blocks so // we need to revert them $tmp = array(); foreach (preg_split("/\015\012|\015|\012/", $text, -1) as $s) { if (0 === strpos($s, ' ')) { $s = str_replace(array('<', '>'), array('<', '>'), $s); } $tmp[] = $s; } $text = implode("\n", $tmp); // Replace like in the issue text $tag = new IDF_Template_IssueComment(); $text = $tag->start($text, $request, false, false, false); // Replace [[PageName]] with corresponding link to the page. // if not the right to see the $text = preg_replace_callback('#\[\[([A-Za-z0-9\-]+)\]\]#im', array($this, 'callbackWikiPage'), $text); echo Pluf_Text_MarkDown_parse($text); } function callbackWikiPage($m) { $sql = new Pluf_SQL('project=%s AND title=%s', array($this->project->id, $m[1])); $pages = Pluf::factory('IDF_WikiPage')->getList(array('filter'=>$sql->gen())); if ($pages->count() != 1) { return $m[0]; } if (!$this->request->rights['hasWikiAccess']) { return $m[1]; } return ''.$m[1].''; } }