aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorArthur <arthur@hoa.ro>2015-11-08 12:45:19 +0100
committerArthur <arthur@hoa.ro>2015-11-08 12:45:19 +0100
commite760840feaf7eff6b3aae86545ff45231b9e3592 (patch)
tree5f56a61e929efd146470b367bafcf057f0a28b9a
parent00c25040c523104e1b845fd71d1cd134a1a5e7ff (diff)
parentb11c8f25dfe3c684f2f39352e3acdeb660a069ac (diff)
downloadShaarli-e760840feaf7eff6b3aae86545ff45231b9e3592.tar.gz
Shaarli-e760840feaf7eff6b3aae86545ff45231b9e3592.tar.zst
Shaarli-e760840feaf7eff6b3aae86545ff45231b9e3592.zip
Merge pull request #280 from ArthurHoaro/plugin-readityourself
PLUGIN readityourself
-rw-r--r--plugins/readityourself/book-open.pngbin0 -> 568 bytes
-rw-r--r--plugins/readityourself/config.php.dist3
-rw-r--r--plugins/readityourself/readityourself.html1
-rw-r--r--plugins/readityourself/readityourself.php43
-rw-r--r--tests/plugins/PluginReadityourselfTest.php75
5 files changed, 122 insertions, 0 deletions
diff --git a/plugins/readityourself/book-open.png b/plugins/readityourself/book-open.png
new file mode 100644
index 00000000..36513d7b
--- /dev/null
+++ b/plugins/readityourself/book-open.png
Binary files differ
diff --git a/plugins/readityourself/config.php.dist b/plugins/readityourself/config.php.dist
new file mode 100644
index 00000000..d6b5cb85
--- /dev/null
+++ b/plugins/readityourself/config.php.dist
@@ -0,0 +1,3 @@
1<?php
2
3$GLOBALS['plugins']['READITYOUSELF_URL'] = 'http://someurl.com'; \ No newline at end of file
diff --git a/plugins/readityourself/readityourself.html b/plugins/readityourself/readityourself.html
new file mode 100644
index 00000000..fa0210f7
--- /dev/null
+++ b/plugins/readityourself/readityourself.html
@@ -0,0 +1 @@
<span><a href="%s?url=%s"><img width="13" height="13" src="%s/readityourself/book-open.png" title="Read with Readityourself" /></a></span> \ No newline at end of file
diff --git a/plugins/readityourself/readityourself.php b/plugins/readityourself/readityourself.php
new file mode 100644
index 00000000..ee7579c0
--- /dev/null
+++ b/plugins/readityourself/readityourself.php
@@ -0,0 +1,43 @@
1<?php
2
3/**
4 * Plugin readityourself
5 */
6
7// If we're talking about https://github.com/memiks/readityourself
8// it seems kinda dead.
9// Not tested.
10
11// don't raise unnecessary warnings
12if (is_file(PluginManager::$PLUGINS_PATH . '/readityourself/config.php')) {
13 include PluginManager::$PLUGINS_PATH . '/readityourself/config.php';
14}
15
16if (!isset($GLOBALS['plugins']['READITYOUSELF_URL'])) {
17 $GLOBALS['plugins']['errors'][] = 'Wallabag plugin error: '.
18 'Please define "$GLOBALS[\'plugins\'][\'WALLABAG_URL\']" '.
19 'in "plugins/wallabag/config.php" or in your Shaarli config.php file.';
20}
21
22/**
23 * Add readityourself icon to link_plugin when rendering linklist.
24 *
25 * @param mixed $data - linklist data.
26 *
27 * @return mixed - linklist data with readityourself plugin.
28 */
29function hook_readityourself_render_linklist($data)
30{
31 if (!isset($GLOBALS['plugins']['READITYOUSELF_URL'])) {
32 return $data;
33 }
34
35 $readityourself_html = file_get_contents(PluginManager::$PLUGINS_PATH . '/readityourself/readityourself.html');
36
37 foreach ($data['links'] as &$value) {
38 $readityourself = sprintf($readityourself_html, $GLOBALS['plugins']['READITYOUSELF_URL'], $value['url'], PluginManager::$PLUGINS_PATH);
39 $value['link_plugin'][] = $readityourself;
40 }
41
42 return $data;
43}
diff --git a/tests/plugins/PluginReadityourselfTest.php b/tests/plugins/PluginReadityourselfTest.php
new file mode 100644
index 00000000..8bf17bf1
--- /dev/null
+++ b/tests/plugins/PluginReadityourselfTest.php
@@ -0,0 +1,75 @@
1<?php
2
3/**
4 * PluginReadityourselfTest.php.php
5 */
6
7require_once 'plugins/readityourself/readityourself.php';
8
9/**
10 * Class PluginWallabagTest
11 * Unit test for the Wallabag plugin
12 */
13class PluginReadityourselfTest extends PHPUnit_Framework_TestCase
14{
15 /**
16 * Reset plugin path
17 */
18 function setUp()
19 {
20 PluginManager::$PLUGINS_PATH = 'plugins';
21 }
22
23 /**
24 * Test render_linklist hook.
25 */
26 function testReadityourselfLinklist()
27 {
28 $GLOBALS['plugins']['READITYOUSELF_URL'] = 'value';
29 $str = 'http://randomstr.com/test';
30 $data = array(
31 'title' => $str,
32 'links' => array(
33 array(
34 'url' => $str,
35 )
36 )
37 );
38
39 $data = hook_readityourself_render_linklist($data);
40 $link = $data['links'][0];
41 // data shouldn't be altered
42 $this->assertEquals($str, $data['title']);
43 $this->assertEquals($str, $link['url']);
44
45 // plugin data
46 $this->assertEquals(1, count($link['link_plugin']));
47 $this->assertNotFalse(strpos($link['link_plugin'][0], $str));
48 }
49
50 /**
51 * Test without config: nothing should happened.
52 */
53 function testReadityourselfLinklistWithoutConfig()
54 {
55 unset($GLOBALS['plugins']['READITYOUSELF_URL']);
56 $str = 'http://randomstr.com/test';
57 $data = array(
58 'title' => $str,
59 'links' => array(
60 array(
61 'url' => $str,
62 )
63 )
64 );
65
66 $data = hook_readityourself_render_linklist($data);
67 $link = $data['links'][0];
68 // data shouldn't be altered
69 $this->assertEquals($str, $data['title']);
70 $this->assertEquals($str, $link['url']);
71
72 // plugin data
73 $this->assertArrayNotHasKey('link_plugin', $link);
74 }
75}