return $this->path;
}
+ /**
+ * Get the filename usable as HTML anchor.
+ *
+ * @return string
+ */
+ function getAnchorName()
+ {
+ return str_replace(' ', '-', $this->getFilename());
+ }
+
/**
* Return the full path to the file
*
*/
public function getExt()
{
- return substr($this->path, strrpos($this->path, '.') + 1);
+ return strtolower(substr($this->path, strrpos($this->path, '.') + 1));
}
public function getContent()
public function getRenderedContent(Tool_Result $res = null)
{
- $ext = $this->getExt();
- $class = '\\phorkie\\Renderer_Unknown';
-
- if (isset($GLOBALS['phorkie']['languages'][$ext]['renderer'])) {
- $class = $GLOBALS['phorkie']['languages'][$ext]['renderer'];
- } else if ($this->isText()) {
- $class = '\\phorkie\\Renderer_Geshi';
- } else if (isset($GLOBALS['phorkie']['languages'][$ext]['mime'])) {
- $type = $GLOBALS['phorkie']['languages'][$ext]['mime'];
- if (substr($type, 0, 6) == 'image/') {
- $class = '\\phorkie\\Renderer_Image';
- }
- }
-
- $rend = new $class();
- return $rend->toHtml($this, $res);
+ $cache = new Renderer_Cache();
+ return $cache->toHtml($this, $res);
}
/**
* 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');
+ }
+
+ if ($full) {
+ $link = Tools::fullUrl($link);
}
- throw new Exception('Unknown type');
+ return $link;
}
/**