X-Git-Url: https://git.cweiske.de/phorkie.git/blobdiff_plain/20ca4e9e509a111f8de0069feeac54e3b31098ee..2a665e0f4eeb45c9d57df7dc7f9d853465b5fea9:/src/phorkie/File.php diff --git a/src/phorkie/File.php b/src/phorkie/File.php index 63d23e6..9eb7fa7 100644 --- a/src/phorkie/File.php +++ b/src/phorkie/File.php @@ -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'; } }