diff options
author | ArthurHoaro <arthur@hoa.ro> | 2020-07-28 20:46:11 +0200 |
---|---|---|
committer | ArthurHoaro <arthur@hoa.ro> | 2020-07-28 20:46:11 +0200 |
commit | 301c7ab1a079d937ab41c6f52b8804e5731008e6 (patch) | |
tree | da6a5ed2a436fea87a3fe83fe72483c3f07c5826 /application/formatter | |
parent | b725eb047d233d6c7a505f160b57ebc399a24d45 (diff) | |
download | Shaarli-301c7ab1a079d937ab41c6f52b8804e5731008e6.tar.gz Shaarli-301c7ab1a079d937ab41c6f52b8804e5731008e6.tar.zst Shaarli-301c7ab1a079d937ab41c6f52b8804e5731008e6.zip |
Better support for notes permalink
Diffstat (limited to 'application/formatter')
-rw-r--r-- | application/formatter/BookmarkDefaultFormatter.php | 22 | ||||
-rw-r--r-- | application/formatter/BookmarkFormatter.php | 6 | ||||
-rw-r--r-- | application/formatter/FormatterFactory.php | 2 |
3 files changed, 19 insertions, 11 deletions
diff --git a/application/formatter/BookmarkDefaultFormatter.php b/application/formatter/BookmarkDefaultFormatter.php index c6c59064..08e710eb 100644 --- a/application/formatter/BookmarkDefaultFormatter.php +++ b/application/formatter/BookmarkDefaultFormatter.php | |||
@@ -50,11 +50,10 @@ class BookmarkDefaultFormatter extends BookmarkFormatter | |||
50 | */ | 50 | */ |
51 | public function formatUrl($bookmark) | 51 | public function formatUrl($bookmark) |
52 | { | 52 | { |
53 | if (! empty($this->contextData['index_url']) && ( | 53 | if ($bookmark->isNote() && !empty($this->contextData['index_url'])) { |
54 | startsWith($bookmark->getUrl(), '?') || startsWith($bookmark->getUrl(), '/') | 54 | return rtrim($this->contextData['index_url'], '/') . '/' . escape(ltrim($bookmark->getUrl(), '/')); |
55 | )) { | ||
56 | return $this->contextData['index_url'] . escape($bookmark->getUrl()); | ||
57 | } | 55 | } |
56 | |||
58 | return escape($bookmark->getUrl()); | 57 | return escape($bookmark->getUrl()); |
59 | } | 58 | } |
60 | 59 | ||
@@ -63,11 +62,18 @@ class BookmarkDefaultFormatter extends BookmarkFormatter | |||
63 | */ | 62 | */ |
64 | protected function formatRealUrl($bookmark) | 63 | protected function formatRealUrl($bookmark) |
65 | { | 64 | { |
66 | if (! empty($this->contextData['index_url']) && ( | 65 | if ($bookmark->isNote()) { |
67 | startsWith($bookmark->getUrl(), '?') || startsWith($bookmark->getUrl(), '/') | 66 | if (!empty($this->contextData['index_url'])) { |
68 | )) { | 67 | $prefix = rtrim($this->contextData['index_url'], '/') . '/'; |
69 | return $this->contextData['index_url'] . escape($bookmark->getUrl()); | 68 | } |
69 | |||
70 | if (!empty($this->contextData['base_path'])) { | ||
71 | $prefix = rtrim($this->contextData['base_path'], '/') . '/'; | ||
72 | } | ||
73 | |||
74 | return escape($prefix ?? '') . escape(ltrim($bookmark->getUrl(), '/')); | ||
70 | } | 75 | } |
76 | |||
71 | return escape($bookmark->getUrl()); | 77 | return escape($bookmark->getUrl()); |
72 | } | 78 | } |
73 | 79 | ||
diff --git a/application/formatter/BookmarkFormatter.php b/application/formatter/BookmarkFormatter.php index a80d83fc..22ba7aae 100644 --- a/application/formatter/BookmarkFormatter.php +++ b/application/formatter/BookmarkFormatter.php | |||
@@ -3,8 +3,8 @@ | |||
3 | namespace Shaarli\Formatter; | 3 | namespace Shaarli\Formatter; |
4 | 4 | ||
5 | use DateTime; | 5 | use DateTime; |
6 | use Shaarli\Config\ConfigManager; | ||
7 | use Shaarli\Bookmark\Bookmark; | 6 | use Shaarli\Bookmark\Bookmark; |
7 | use Shaarli\Config\ConfigManager; | ||
8 | 8 | ||
9 | /** | 9 | /** |
10 | * Class BookmarkFormatter | 10 | * Class BookmarkFormatter |
@@ -80,6 +80,8 @@ abstract class BookmarkFormatter | |||
80 | public function addContextData($key, $value) | 80 | public function addContextData($key, $value) |
81 | { | 81 | { |
82 | $this->contextData[$key] = $value; | 82 | $this->contextData[$key] = $value; |
83 | |||
84 | return $this; | ||
83 | } | 85 | } |
84 | 86 | ||
85 | /** | 87 | /** |
@@ -128,7 +130,7 @@ abstract class BookmarkFormatter | |||
128 | */ | 130 | */ |
129 | protected function formatRealUrl($bookmark) | 131 | protected function formatRealUrl($bookmark) |
130 | { | 132 | { |
131 | return $bookmark->getUrl(); | 133 | return $this->formatUrl($bookmark); |
132 | } | 134 | } |
133 | 135 | ||
134 | /** | 136 | /** |
diff --git a/application/formatter/FormatterFactory.php b/application/formatter/FormatterFactory.php index 5f282f68..a029579f 100644 --- a/application/formatter/FormatterFactory.php +++ b/application/formatter/FormatterFactory.php | |||
@@ -38,7 +38,7 @@ class FormatterFactory | |||
38 | * | 38 | * |
39 | * @return BookmarkFormatter instance. | 39 | * @return BookmarkFormatter instance. |
40 | */ | 40 | */ |
41 | public function getFormatter(string $type = null) | 41 | public function getFormatter(string $type = null): BookmarkFormatter |
42 | { | 42 | { |
43 | $type = $type ? $type : $this->conf->get('formatter', 'default'); | 43 | $type = $type ? $type : $this->conf->get('formatter', 'default'); |
44 | $className = '\\Shaarli\\Formatter\\Bookmark'. ucfirst($type) .'Formatter'; | 44 | $className = '\\Shaarli\\Formatter\\Bookmark'. ucfirst($type) .'Formatter'; |