sync
[web.mtrack] / MTrackWeb / LinkHandler.php
index f81f263..ec777ff 100644 (file)
@@ -6,10 +6,10 @@
  * it get's registered by MTrackWeb as the link handler..
  * 
  */
-require_once 'MTrack/Interface/WikiLinkHandler.php';
+//require_once 'MTrack/Interface/WikiLinkHandler.php';
 
 
-class MTrackWeb_LinkHandler implements MTrack_Interface_WikiLinkHandler
+class MTrackWeb_LinkHandler  //implements MTrack_Interface_WikiLinkHandler
 {
     function MTrackWeb_LinkHandler()
     {
@@ -28,7 +28,7 @@ class MTrackWeb_LinkHandler implements MTrack_Interface_WikiLinkHandler
     function ticket($no, $extras=array())
     {
         
-        if ($no instanceof MTrackIssue) {
+        if ($no instanceof DB_DataObject) {
             $tkt = $no;
         } else if (is_string($no) || is_int($no)) {
             static $cache = array();
@@ -38,10 +38,9 @@ class MTrackWeb_LinkHandler implements MTrack_Interface_WikiLinkHandler
             }
 
             if (!isset($cache[$no])) {
-                $tkt = MTrackIssue::loadByNSIdent($no);
-                if (!$tkt) {
-                    $tkt = MTrackIssue::loadById($no);
-                }
+                $tkt  = DB_DataOBject::Factory('mtrack_ticket');
+                $tkt->get($no);
+                
                 $cache[$no] = $tkt;
             } else {
                 $tkt = $cache[$no];
@@ -49,7 +48,7 @@ class MTrackWeb_LinkHandler implements MTrack_Interface_WikiLinkHandler
         } else {
             // FIXME: hinted data from reports
             $tkt = new stdClass;
-            $tkt->tid = $no['ticket'];
+            $tkt->id = $no['ticket'];
             $tkt->summary = $no['summary'];
             $tkt->status = '';
             
@@ -64,7 +63,7 @@ class MTrackWeb_LinkHandler implements MTrack_Interface_WikiLinkHandler
         }
         if ($tkt == NULL) {
             $tkt = new stdClass;
-            $tkt->tid = $no;
+            $tkt->id = $no;
             $tkt->summary = 'No such ticket';
             $tkt->status = 'No such ticket';
         }
@@ -72,11 +71,9 @@ class MTrackWeb_LinkHandler implements MTrack_Interface_WikiLinkHandler
         if ($tkt->status == 'closed') {
             $html .= ' completed';
         }
-        if (!empty($tkt->nsident)) {
-            $ident = $tkt->nsident;
-        } else {
-            $ident = $tkt->tid;
-        }
+        
+       $ident = $tkt->id;
+         
         if (isset($extras['#'])) {
             $anchor = '#' . $extras['#'];
         } else {
@@ -92,15 +89,24 @@ class MTrackWeb_LinkHandler implements MTrack_Interface_WikiLinkHandler
         return $html;
     }
 
-    function milestone(  $target, $label)
+    function milestone(  $id, $label = '')
     {
         // silly but we assume target is urlencoded???...
-        $ms = MTrack_Milestone::loadByName($target);
+        $ms = DB_DataObjecT::factory('mtrack_milestone');
+        if (empty($label)) {
+            if (empty($id) || !$ms->get($id)) {
+                return '???';
+            }
+        } else {
+            $ms->id = $id;
+            $ms->name = $label;
+        }
+        
         
         return  '<span class="milestone' .
             (($ms->deleted || $ms->completed) ? ' completed' : '') .
-            '"><a href="'. $this->baseURL . '/Milestone/'. $target .'">'.
-                htmlspecialchars(urldecode($target))  . 
+            '"><a href="'. $this->baseURL . '/Milestone/'. $ms->id.'">'.
+                htmlspecialchars(urldecode($ms->name))  . 
             '</a></span>';
     }
     
@@ -121,13 +127,14 @@ class MTrackWeb_LinkHandler implements MTrack_Interface_WikiLinkHandler
             $person = $target;
             $target = $person->id;
         } else {
-            $person  = DB_DataObject::factory('Person');
+            $person  = DB_DataObject::factory('core_person');
             $person->get($target);
         }
         
         if (is_string($opts)) {
             parse_str($opts, $opts);
         }
+        //print_r($opts);
         
         //print_R($person);
         if (!$person->id) {
@@ -223,7 +230,7 @@ class MTrackWeb_LinkHandler implements MTrack_Interface_WikiLinkHandler
         
     function wiki($pagename, $extras = array())
     {
-        return "$pagename";
+        return htmlspecialchars($pagename);
         if ($pagename instanceof MTrack_Wiki_Item) {
             $wiki = $pagename;
         } else if (is_string($pagename)) {