update 0.5.0 changelog
[phorkie.git] / src / phorkie / Repository.php
index 7428c8a0c093abd7f0d20a474dda6c7c028f1ed4..8cf5ff62d2fff510a50b0ad0abc0fa8389e0bb45 100644 (file)
@@ -144,7 +144,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 +186,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 +310,7 @@ class Repository
      *                        - "delete"
      *                        - "delete-confirm"
      *                        - "display"
+     *                        - "embed"
      *                        - "fork"
      *                        - "revision"
      * @param string  $option Additional link option, e.g. revision number
@@ -316,6 +322,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 +335,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');
         }