]> git.immae.eu Git - github/shaarli/Shaarli.git/blobdiff - plugins/archiveorg/archiveorg.php
Support using Shaarli without URL rewriting
[github/shaarli/Shaarli.git] / plugins / archiveorg / archiveorg.php
index 1db3e4cb1139d4e094504ee79fc2dcaf4586fdb7..a7b595e163424fa3ce3e1b2a181e3bdc4f9d1575 100644 (file)
@@ -1,18 +1,43 @@
 <?php
+/**
+ * Plugin Archive.org.
+ *
+ * Add an icon in the link list for archive.org.
+ */
+
+use Shaarli\Plugin\PluginManager;
 
 /**
  * Add archive.org icon to link_plugin when rendering linklist.
  *
- * @param $data - linklist data.
+ * @param mixed $data - linklist data.
+ *
  * @return mixed - linklist data with archive.org plugin.
  */
-function hook_archiveorg_render_linklist($data) {
+function hook_archiveorg_render_linklist($data)
+{
     $archive_html = file_get_contents(PluginManager::$PLUGINS_PATH . '/archiveorg/archiveorg.html');
+    $rootPath = preg_replace('#/index\.php$#', '', $data['_BASE_PATH_'] ?? '');
+    $path = $rootPath . '/' . PluginManager::$PLUGINS_PATH;
 
     foreach ($data['links'] as &$value) {
-        $archive = sprintf($archive_html, $value['url']);
+        $isNote = startsWith($value['real_url'], '/shaare/');
+        if ($value['private'] && $isNote) {
+            continue;
+        }
+        $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;
     }
 
     return $data;
 }
+
+/**
+ * This function is never called, but contains translation calls for GNU gettext extraction.
+ */
+function archiveorg_dummy_translation()
+{
+    // meta
+    t('For each link, add an Archive.org icon.');
+}