javascript embedding support
[phorkie.git] / src / phorkie / File.php
index 63d23e6d69878b9a304bb3344075cc1edcef91cf..9eb7fa7002be4463442c1a4c81b596352b5ec895 100644 (file)
@@ -55,7 +55,7 @@ class File
      */
     public function getExt()
     {
-        return substr($this->path, strrpos($this->path, '.') + 1);
+        return strtolower(substr($this->path, strrpos($this->path, '.') + 1));
     }
 
     public function getContent()
@@ -96,27 +96,37 @@ class File
      * Get a link to the file
      *
      * @param string $type   Link type. Supported are:
+     *                       - "display"
      *                       - "raw"
      *                       - "tool"
      * @param string $option Additional option, e.g. tool name
+     * @param boolean $full   Return full URL or normal relative
      *
      * @return string
      */
-    public function getLink($type, $option = null)
+    public function getLink($type, $option = null, $full = false)
     {
         if ($type == 'raw') {
             if ($this->repo->hash === null) {
-                return $this->repo->id . '/raw/' . $this->getFilename();
+                $link = $this->repo->id . '/raw/' . $this->getFilename();
             } else {
-                return $this->repo->id . '/rev-raw/' . $this->repo->hash
+                $link = $this->repo->id . '/rev-raw/' . $this->repo->hash
                     . '/' . $this->getFilename();
             }
         } else if ($type == 'tool') {
-            return $this->repo->id
+            $link = $this->repo->id
                 . '/tool/' . $option
                 . '/' . $this->getFilename();
+        } else if ($type == 'display') {
+            $link = $this->repo->id . '#' . $this->getFilename();
+        } else {
+            throw new Exception('Unknown type');
         }
-        throw new Exception('Unknown type');
+
+        if ($full) {
+            $link = Tools::fullUrl($link);
+        }
+        return $link;
     }
 
     /**
@@ -165,7 +175,9 @@ class File
 
         $type = $GLOBALS['phorkie']['languages'][$ext]['mime'];
         return substr($type, 0, 5) === 'text/'
-            || $type == 'application/javascript';
+            || $type == 'application/javascript'
+            || substr($type, -4) == '+xml'
+            || substr($type, -5) == '+json';
     }
 }