diff options
author | Arthur <arthur@hoa.ro> | 2015-11-08 12:45:19 +0100 |
---|---|---|
committer | Arthur <arthur@hoa.ro> | 2015-11-08 12:45:19 +0100 |
commit | e760840feaf7eff6b3aae86545ff45231b9e3592 (patch) | |
tree | 5f56a61e929efd146470b367bafcf057f0a28b9a | |
parent | 00c25040c523104e1b845fd71d1cd134a1a5e7ff (diff) | |
parent | b11c8f25dfe3c684f2f39352e3acdeb660a069ac (diff) | |
download | Shaarli-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.png | bin | 0 -> 568 bytes | |||
-rw-r--r-- | plugins/readityourself/config.php.dist | 3 | ||||
-rw-r--r-- | plugins/readityourself/readityourself.html | 1 | ||||
-rw-r--r-- | plugins/readityourself/readityourself.php | 43 | ||||
-rw-r--r-- | tests/plugins/PluginReadityourselfTest.php | 75 |
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 | ||
12 | if (is_file(PluginManager::$PLUGINS_PATH . '/readityourself/config.php')) { | ||
13 | include PluginManager::$PLUGINS_PATH . '/readityourself/config.php'; | ||
14 | } | ||
15 | |||
16 | if (!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 | */ | ||
29 | function 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 | |||
7 | require_once 'plugins/readityourself/readityourself.php'; | ||
8 | |||
9 | /** | ||
10 | * Class PluginWallabagTest | ||
11 | * Unit test for the Wallabag plugin | ||
12 | */ | ||
13 | class 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 | } | ||