diff options
author | ArthurHoaro <arthur@hoa.ro> | 2020-10-16 13:06:06 +0200 |
---|---|---|
committer | ArthurHoaro <arthur@hoa.ro> | 2020-10-16 13:06:06 +0200 |
commit | 3adbdc2a83e6b77a4ca62094c5d857524e39d211 (patch) | |
tree | 5e6dd92c7e47edeb4f2917f7718ad7ad7113e23f | |
parent | 7f5250421be4832b9679d8140bc4a71c8005dfa3 (diff) | |
download | Shaarli-3adbdc2a83e6b77a4ca62094c5d857524e39d211.tar.gz Shaarli-3adbdc2a83e6b77a4ca62094c5d857524e39d211.tar.zst Shaarli-3adbdc2a83e6b77a4ca62094c5d857524e39d211.zip |
Inject ROOT_PATH in plugin instead of regenerating it everywhere
-rw-r--r-- | application/front/controller/visitor/ShaarliVisitorController.php | 1 | ||||
-rw-r--r-- | application/plugin/PluginManager.php | 1 | ||||
-rw-r--r-- | doc/md/dev/Plugin-system.md | 11 | ||||
-rw-r--r-- | plugins/archiveorg/archiveorg.php | 3 | ||||
-rw-r--r-- | plugins/isso/isso.php | 2 | ||||
-rw-r--r-- | plugins/qrcode/qrcode.php | 3 | ||||
-rw-r--r-- | plugins/wallabag/wallabag.php | 2 |
7 files changed, 14 insertions, 9 deletions
diff --git a/application/front/controller/visitor/ShaarliVisitorController.php b/application/front/controller/visitor/ShaarliVisitorController.php index 55c075a2..54f9fe03 100644 --- a/application/front/controller/visitor/ShaarliVisitorController.php +++ b/application/front/controller/visitor/ShaarliVisitorController.php | |||
@@ -106,6 +106,7 @@ abstract class ShaarliVisitorController | |||
106 | 'target' => $template, | 106 | 'target' => $template, |
107 | 'loggedin' => $this->container->loginManager->isLoggedIn(), | 107 | 'loggedin' => $this->container->loginManager->isLoggedIn(), |
108 | 'basePath' => $this->container->basePath, | 108 | 'basePath' => $this->container->basePath, |
109 | 'rootPath' => preg_replace('#/index\.php$#', '', $this->container->basePath), | ||
109 | 'bookmarkService' => $this->container->bookmarkService | 110 | 'bookmarkService' => $this->container->bookmarkService |
110 | ]; | 111 | ]; |
111 | } | 112 | } |
diff --git a/application/plugin/PluginManager.php b/application/plugin/PluginManager.php index 1b2197c9..da66dea3 100644 --- a/application/plugin/PluginManager.php +++ b/application/plugin/PluginManager.php | |||
@@ -104,6 +104,7 @@ class PluginManager | |||
104 | 'target' => '_PAGE_', | 104 | 'target' => '_PAGE_', |
105 | 'loggedin' => '_LOGGEDIN_', | 105 | 'loggedin' => '_LOGGEDIN_', |
106 | 'basePath' => '_BASE_PATH_', | 106 | 'basePath' => '_BASE_PATH_', |
107 | 'rootPath' => '_ROOT_PATH_', | ||
107 | 'bookmarkService' => '_BOOKMARK_SERVICE_', | 108 | 'bookmarkService' => '_BOOKMARK_SERVICE_', |
108 | ]; | 109 | ]; |
109 | 110 | ||
diff --git a/doc/md/dev/Plugin-system.md b/doc/md/dev/Plugin-system.md index c29774de..f09fadc2 100644 --- a/doc/md/dev/Plugin-system.md +++ b/doc/md/dev/Plugin-system.md | |||
@@ -148,11 +148,16 @@ If a file needs to be included in server end, use simple relative path: | |||
148 | `PluginManager::$PLUGINS_PATH . '/mything/template.html'`. | 148 | `PluginManager::$PLUGINS_PATH . '/mything/template.html'`. |
149 | 149 | ||
150 | If it needs to be included in front end side (e.g. an image), | 150 | If it needs to be included in front end side (e.g. an image), |
151 | the relative path must be prefixed with special data `_BASE_PATH_`: | 151 | the relative path must be prefixed with special data: |
152 | `($data['_BASE_PATH_'] ?? '') . '/' . PluginManager::$PLUGINS_PATH . '/mything/picture.png`. | 152 | |
153 | * if it's a link that will need to be processed by Shaarli, use `_BASE_PATH_`: | ||
154 | for e.g. `$data['_BASE_PATH_'] . '/admin/tools`. | ||
155 | * if you want to include an asset, you need to add the root URL (base path without `/index.php`, for people using Shaarli without URL rewriting), then use `_ROOT_PATH_`: | ||
156 | for e.g | ||
157 | `$['_ROOT_PATH_'] . '/' . PluginManager::$PLUGINS_PATH . '/mything/picture.png`. | ||
153 | 158 | ||
154 | Note that special placeholders for CSS and JS files (respectively `css_files` and `js_files`) are already prefixed | 159 | Note that special placeholders for CSS and JS files (respectively `css_files` and `js_files`) are already prefixed |
155 | with the base path in template files. | 160 | with the root path in template files. |
156 | 161 | ||
157 | ### It's not working! | 162 | ### It's not working! |
158 | 163 | ||
diff --git a/plugins/archiveorg/archiveorg.php b/plugins/archiveorg/archiveorg.php index a7b595e1..ed271532 100644 --- a/plugins/archiveorg/archiveorg.php +++ b/plugins/archiveorg/archiveorg.php | |||
@@ -17,8 +17,7 @@ use Shaarli\Plugin\PluginManager; | |||
17 | function hook_archiveorg_render_linklist($data) | 17 | function hook_archiveorg_render_linklist($data) |
18 | { | 18 | { |
19 | $archive_html = file_get_contents(PluginManager::$PLUGINS_PATH . '/archiveorg/archiveorg.html'); | 19 | $archive_html = file_get_contents(PluginManager::$PLUGINS_PATH . '/archiveorg/archiveorg.html'); |
20 | $rootPath = preg_replace('#/index\.php$#', '', $data['_BASE_PATH_'] ?? ''); | 20 | $path = ($data['_ROOT_PATH_'] ?? '') . '/' . PluginManager::$PLUGINS_PATH; |
21 | $path = $rootPath . '/' . PluginManager::$PLUGINS_PATH; | ||
22 | 21 | ||
23 | foreach ($data['links'] as &$value) { | 22 | foreach ($data['links'] as &$value) { |
24 | $isNote = startsWith($value['real_url'], '/shaare/'); | 23 | $isNote = startsWith($value['real_url'], '/shaare/'); |
diff --git a/plugins/isso/isso.php b/plugins/isso/isso.php index 79e7380b..d4632163 100644 --- a/plugins/isso/isso.php +++ b/plugins/isso/isso.php | |||
@@ -54,7 +54,7 @@ function hook_isso_render_linklist($data, $conf) | |||
54 | if ($conf->get('resource.theme') === 'default') { | 54 | if ($conf->get('resource.theme') === 'default') { |
55 | $button .= '<i class="linklist-plugin-icon fa fa-comment"></i>'; | 55 | $button .= '<i class="linklist-plugin-icon fa fa-comment"></i>'; |
56 | } else { | 56 | } else { |
57 | $button .= '<img class="linklist-plugin-icon" src="plugins/isso/comment.png" '; | 57 | $button .= '<img class="linklist-plugin-icon" src="'. $data['_ROOT_PATH_'].'/plugins/isso/comment.png" '; |
58 | $button .= 'title="Comment on this shaare" alt="Comments" />'; | 58 | $button .= 'title="Comment on this shaare" alt="Comments" />'; |
59 | } | 59 | } |
60 | $button .= '</a></span>'; | 60 | $button .= '</a></span>'; |
diff --git a/plugins/qrcode/qrcode.php b/plugins/qrcode/qrcode.php index 45712859..24fd18ba 100644 --- a/plugins/qrcode/qrcode.php +++ b/plugins/qrcode/qrcode.php | |||
@@ -19,8 +19,7 @@ function hook_qrcode_render_linklist($data) | |||
19 | { | 19 | { |
20 | $qrcode_html = file_get_contents(PluginManager::$PLUGINS_PATH . '/qrcode/qrcode.html'); | 20 | $qrcode_html = file_get_contents(PluginManager::$PLUGINS_PATH . '/qrcode/qrcode.html'); |
21 | 21 | ||
22 | $rootPath = preg_replace('#/index\.php$#', '', $data['_BASE_PATH_'] ?? ''); | 22 | $path = ($data['_ROOT_PATH_'] ?? '') . '/' . PluginManager::$PLUGINS_PATH; |
23 | $path = $rootPath . '/' . PluginManager::$PLUGINS_PATH; | ||
24 | foreach ($data['links'] as &$value) { | 23 | foreach ($data['links'] as &$value) { |
25 | $qrcode = sprintf( | 24 | $qrcode = sprintf( |
26 | $qrcode_html, | 25 | $qrcode_html, |
diff --git a/plugins/wallabag/wallabag.php b/plugins/wallabag/wallabag.php index 805c1ad9..d0df3501 100644 --- a/plugins/wallabag/wallabag.php +++ b/plugins/wallabag/wallabag.php | |||
@@ -45,7 +45,7 @@ function hook_wallabag_render_linklist($data, $conf) | |||
45 | $wallabagHtml = file_get_contents(PluginManager::$PLUGINS_PATH . '/wallabag/wallabag.html'); | 45 | $wallabagHtml = file_get_contents(PluginManager::$PLUGINS_PATH . '/wallabag/wallabag.html'); |
46 | 46 | ||
47 | $linkTitle = t('Save to wallabag'); | 47 | $linkTitle = t('Save to wallabag'); |
48 | $path = ($data['_BASE_PATH_'] ?? '') . '/' . PluginManager::$PLUGINS_PATH; | 48 | $path = ($data['_ROOT_PATH_'] ?? '') . '/' . PluginManager::$PLUGINS_PATH; |
49 | 49 | ||
50 | foreach ($data['links'] as &$value) { | 50 | foreach ($data['links'] as &$value) { |
51 | $wallabag = sprintf( | 51 | $wallabag = sprintf( |