| '<a href="\1">\1</a>', $text);␊ |
| }␊ |
| if ($request->rights['hasIssuesAccess']) {␊ |
| $text = preg_replace_callback('#(issues?|bugs?|tickets?)\s+(\d+)((\s+and|\s+or|,)\s+(\d+)){0,}#im',␊ |
| $text = preg_replace_callback('#(issues?|bugs?|tickets?)\s+(\d+)(\#ic\d*){0,1}((\s+and|\s+or|,)\s+(\d+)(\#ic\d*){0,1}){0,}#im',␊ |
| array($this, 'callbackIssues'), $text);␊ |
| }␊ |
| if ($request->rights['hasSourceAccess']) {␊ |
|
| */␊ |
| function callbackIssues($m)␊ |
| {␊ |
| if (count($m) == 3) {␊ |
| if (count($m) == 3 || count($m) == 4) {␊ |
| $issue = new IDF_Issue($m[2]);␊ |
| if ($issue->id > 0 and $issue->project == $this->project->id) {␊ |
| return $this->linkIssue($issue, $m[1].' '.$m[2]);␊ |
| if (count($m) == 3) {␊ |
| ␉return $this->linkIssue($issue, $m[1].' '.$m[2]);␊ |
| } else {␊ |
| return $this->linkIssue($issue, $m[1].' '.$m[2], $m[3]);␊ |
| }␊ |
| } else {␊ |
| return $m[0]; // not existing issue.␊ |
| }␊ |
|
| * @param string Name of the link.␊ |
| * @return string Linked issue.␊ |
| */␊ |
| public function linkIssue($issue, $title)␊ |
| public function linkIssue($issue, $title, $anchor='')␊ |
| {␊ |
| $ic = (in_array($issue->status, $this->project->getTagIdsByStatus('closed'))) ? 'issue-c' : 'issue-o';␊ |
| return '<a href="'.Pluf_HTTP_URL_urlForView('IDF_Views_Issue::view', ␊ |
| array($this->project->shortname, $issue->id)).'" class="'.$ic.'" title="'.Pluf_esc($issue->summary).'">'.Pluf_esc($title).'</a>';␊ |
| array($this->project->shortname, $issue->id)).$anchor.'" class="'.$ic.'" title="'.Pluf_esc($issue->summary).'">'.Pluf_esc($title).'</a>';␊ |
| }␊ |
| }␊ |