]> git.immae.eu Git - github/shaarli/Shaarli.git/blobdiff - plugins/archiveorg/archiveorg.php
Inject ROOT_PATH in plugin instead of regenerating it everywhere
[github/shaarli/Shaarli.git] / plugins / archiveorg / archiveorg.php
index cda35751041933c6caffd061c59121da5833c24f..ed2715322686e82ca4a9373d3417f57babc67da1 100644 (file)
@@ -5,6 +5,8 @@
  * Add an icon in the link list for archive.org.
  */
 
+use Shaarli\Plugin\PluginManager;
+
 /**
  * Add archive.org icon to link_plugin when rendering linklist.
  *
 function hook_archiveorg_render_linklist($data)
 {
     $archive_html = file_get_contents(PluginManager::$PLUGINS_PATH . '/archiveorg/archiveorg.html');
+    $path = ($data['_ROOT_PATH_'] ?? '') . '/' . PluginManager::$PLUGINS_PATH;
 
     foreach ($data['links'] as &$value) {
-        if($value['private'] && preg_match('/^\?[a-zA-Z0-9-_@]{6}($|&|#)/', $value['real_url'])) {
+        $isNote = startsWith($value['real_url'], '/shaare/');
+        if ($value['private'] && $isNote) {
             continue;
         }
-        $archive = sprintf($archive_html, $value['url'], t('View on archive.org'));
+        $url = $isNote ? rtrim(index_url($_SERVER), '/') . $value['real_url'] : $value['real_url'];
+        $archive = sprintf($archive_html, $url, $path, t('View on archive.org'));
         $value['link_plugin'][] = $archive;
     }