X-Git-Url: https://git.cweiske.de/phorkie.git/blobdiff_plain/7e53b1f3b455b88253bb82469d9d51925bcf16c7..808a3a5857c77ef99605fdfdde9b31b5c02e22c6:/src/phorkie/Repository.php diff --git a/src/phorkie/Repository.php b/src/phorkie/Repository.php index 7428c8a..013f017 100644 --- a/src/phorkie/Repository.php +++ b/src/phorkie/Repository.php @@ -96,7 +96,6 @@ class Repository public function loadHash() { - return; if ($this->hash !== null) { return; } @@ -114,6 +113,12 @@ class Repository $this->hash = $output; } + public function reloadHash() + { + $this->hash = null; + return $this->loadHash(); + } + /** * Populates $this->message * @@ -144,7 +149,7 @@ class Repository /** * Loads the list of files in this repository * - * @return File[] Array of files + * @return File[] Array of file objects */ public function getFiles() { @@ -186,6 +191,11 @@ class Repository return $name; } + /** + * Return array with all file paths in this repository + * + * @return array + */ protected function getFilePaths() { if ($this->hash === null) { @@ -305,6 +315,7 @@ class Repository * - "delete" * - "delete-confirm" * - "display" + * - "embed" * - "fork" * - "revision" * @param string $option Additional link option, e.g. revision number @@ -316,6 +327,9 @@ class Repository { if ($type == 'edit') { $link = $this->id . '/edit'; + if ($option !== null) { + $link .= '/' . urlencode($option); + } } else if ($type == 'display') { $link = $this->id; } else if ($type == 'fork') { @@ -326,8 +340,20 @@ class Repository $link = $this->id . '/delete'; } else if ($type == 'delete-confirm') { $link = $this->id . '/delete/confirm'; + } else if ($type == 'embed') { + $link = $this->id . '/embed'; + } else if ($type == 'oembed-json') { + $link = 'oembed.php?format=json&url=' + . urlencode($this->getLink('display', null, true)); + } else if ($type == 'oembed-xml') { + $link = 'oembed.php?format=xml&url=' + . urlencode($this->getLink('display', null, true)); + } else if ($type == 'remotefork') { + return 'web+fork:' . $this->getLink('display', null, true); } else if ($type == 'revision') { $link = $this->id . '/rev/' . $option; + } else if ($type == 'linkback') { + $link = $this->id . '/linkback'; } else { throw new Exception('Unknown link type'); }