aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorArthurHoaro <arthur@hoa.ro>2020-10-16 13:06:06 +0200
committerArthurHoaro <arthur@hoa.ro>2020-10-16 13:06:06 +0200
commit3adbdc2a83e6b77a4ca62094c5d857524e39d211 (patch)
tree5e6dd92c7e47edeb4f2917f7718ad7ad7113e23f
parent7f5250421be4832b9679d8140bc4a71c8005dfa3 (diff)
downloadShaarli-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.php1
-rw-r--r--application/plugin/PluginManager.php1
-rw-r--r--doc/md/dev/Plugin-system.md11
-rw-r--r--plugins/archiveorg/archiveorg.php3
-rw-r--r--plugins/isso/isso.php2
-rw-r--r--plugins/qrcode/qrcode.php3
-rw-r--r--plugins/wallabag/wallabag.php2
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
150If it needs to be included in front end side (e.g. an image), 150If it needs to be included in front end side (e.g. an image),
151the relative path must be prefixed with special data `_BASE_PATH_`: 151the 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
154Note that special placeholders for CSS and JS files (respectively `css_files` and `js_files`) are already prefixed 159Note that special placeholders for CSS and JS files (respectively `css_files` and `js_files`) are already prefixed
155with the base path in template files. 160with 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;
17function hook_archiveorg_render_linklist($data) 17function 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(