wallabag.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. /**
  3. * Plugin Wallabag.
  4. */
  5. require_once 'WallabagInstance.php';
  6. use Shaarli\Config\ConfigManager;
  7. /**
  8. * Init function, return an error if the server is not set.
  9. *
  10. * @param $conf ConfigManager instance.
  11. *
  12. * @return array Eventual error.
  13. */
  14. function wallabag_init($conf)
  15. {
  16. $wallabagUrl = $conf->get('plugins.WALLABAG_URL');
  17. if (empty($wallabagUrl)) {
  18. $error = t('Wallabag plugin error: '.
  19. 'Please define the "WALLABAG_URL" setting in the plugin administration page.');
  20. return array($error);
  21. }
  22. }
  23. /**
  24. * Add wallabag icon to link_plugin when rendering linklist.
  25. *
  26. * @param mixed $data Linklist data.
  27. * @param ConfigManager $conf Configuration Manager instance.
  28. *
  29. * @return mixed - linklist data with wallabag plugin.
  30. */
  31. function hook_wallabag_render_linklist($data, $conf)
  32. {
  33. $wallabagUrl = $conf->get('plugins.WALLABAG_URL');
  34. if (empty($wallabagUrl)) {
  35. return $data;
  36. }
  37. $version = $conf->get('plugins.WALLABAG_VERSION');
  38. $wallabagInstance = new WallabagInstance($wallabagUrl, $version);
  39. $wallabagHtml = file_get_contents(PluginManager::$PLUGINS_PATH . '/wallabag/wallabag.html');
  40. $linkTitle = t('Save to wallabag');
  41. foreach ($data['links'] as &$value) {
  42. $wallabag = sprintf(
  43. $wallabagHtml,
  44. $wallabagInstance->getWallabagUrl(),
  45. urlencode($value['url']),
  46. PluginManager::$PLUGINS_PATH,
  47. $linkTitle
  48. );
  49. $value['link_plugin'][] = $wallabag;
  50. }
  51. return $data;
  52. }
  53. /**
  54. * This function is never called, but contains translation calls for GNU gettext extraction.
  55. */
  56. function wallabag_dummy_translation()
  57. {
  58. // meta
  59. t('For each link, add a QRCode icon.');
  60. t('Wallabag API URL');
  61. t('Wallabag API version (1 or 2)');
  62. }