Merge pull request #279 from ArthurHoaro/plugin-addlink_toolbar
PLUGIN: addlink_toolbar
This commit is contained in:
commit
00c25040c5
4 changed files with 148 additions and 0 deletions
4
plugins/addlink_toolbar/addlink_toolbar.css
Executable file
4
plugins/addlink_toolbar/addlink_toolbar.css
Executable file
|
@ -0,0 +1,4 @@
|
||||||
|
#addlink_toolbar {
|
||||||
|
display: inline;
|
||||||
|
margin: 0 0 0 25px;
|
||||||
|
}
|
6
plugins/addlink_toolbar/addlink_toolbar.html
Executable file
6
plugins/addlink_toolbar/addlink_toolbar.html
Executable file
|
@ -0,0 +1,6 @@
|
||||||
|
<div id="addlink_toolbar">
|
||||||
|
<form method="GET" action="" name="addform" class="addform">
|
||||||
|
<input type="text" name="post" placeholder="URI">
|
||||||
|
<input type="submit" value="Add link" class="bigbutton">
|
||||||
|
</form>
|
||||||
|
</div>
|
38
plugins/addlink_toolbar/addlink_toolbar.php
Executable file
38
plugins/addlink_toolbar/addlink_toolbar.php
Executable file
|
@ -0,0 +1,38 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Plugin addlink_toolbar.
|
||||||
|
* Adds the addlink input on the linklist page.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* When linklist is displayed, add play videos to header's toolbar.
|
||||||
|
*
|
||||||
|
* @param array $data - header data.
|
||||||
|
*
|
||||||
|
* @return mixed - header data with addlink toolbar item.
|
||||||
|
*/
|
||||||
|
function hook_addlink_toolbar_render_header($data)
|
||||||
|
{
|
||||||
|
if ($data['_PAGE_'] == Router::$PAGE_LINKLIST && $data['_LOGGEDIN_'] === true) {
|
||||||
|
$data['fields_toolbar'][] = file_get_contents(PluginManager::$PLUGINS_PATH . '/addlink_toolbar/addlink_toolbar.html');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* When link list is displayed, include markdown CSS.
|
||||||
|
*
|
||||||
|
* @param array $data - includes data.
|
||||||
|
*
|
||||||
|
* @return mixed - includes data with markdown CSS file added.
|
||||||
|
*/
|
||||||
|
function hook_addlink_toolbar_render_includes($data)
|
||||||
|
{
|
||||||
|
if ($data['_PAGE_'] == Router::$PAGE_LINKLIST && $data['_LOGGEDIN_'] === true) {
|
||||||
|
$data['css_files'][] = PluginManager::$PLUGINS_PATH . '/addlink_toolbar/addlink_toolbar.css';
|
||||||
|
}
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
100
tests/plugins/PluginAddlinkTest.php
Normal file
100
tests/plugins/PluginAddlinkTest.php
Normal file
|
@ -0,0 +1,100 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PluginPlayvideosTest.php
|
||||||
|
*/
|
||||||
|
|
||||||
|
require_once 'plugins/addlink_toolbar/addlink_toolbar.php';
|
||||||
|
require_once 'application/Router.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class PluginAddlinkTest
|
||||||
|
* Unit test for the Addlink toolbar plugin
|
||||||
|
*/
|
||||||
|
class PluginAddlinkTest extends PHPUnit_Framework_TestCase
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Reset plugin path.
|
||||||
|
*/
|
||||||
|
function setUp()
|
||||||
|
{
|
||||||
|
PluginManager::$PLUGINS_PATH = 'plugins';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test render_header hook while logged in.
|
||||||
|
*/
|
||||||
|
function testAddlinkHeaderLoggedIn()
|
||||||
|
{
|
||||||
|
$str = 'stuff';
|
||||||
|
$data = array($str => $str);
|
||||||
|
$data['_PAGE_'] = Router::$PAGE_LINKLIST;
|
||||||
|
$data['_LOGGEDIN_'] = true;
|
||||||
|
|
||||||
|
$data = hook_addlink_toolbar_render_header($data);
|
||||||
|
$this->assertEquals($str, $data[$str]);
|
||||||
|
$this->assertEquals(1, count($data['fields_toolbar']));
|
||||||
|
|
||||||
|
$data = array($str => $str);
|
||||||
|
$data['_PAGE_'] = $str;
|
||||||
|
$data['_LOGGEDIN_'] = true;
|
||||||
|
$data = hook_addlink_toolbar_render_header($data);
|
||||||
|
$this->assertEquals($str, $data[$str]);
|
||||||
|
$this->assertArrayNotHasKey('fields_toolbar', $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test render_header hook while logged out.
|
||||||
|
*/
|
||||||
|
function testAddlinkHeaderLoggedOut()
|
||||||
|
{
|
||||||
|
$str = 'stuff';
|
||||||
|
$data = array($str => $str);
|
||||||
|
$data['_PAGE_'] = Router::$PAGE_LINKLIST;
|
||||||
|
$data['_LOGGEDIN_'] = false;
|
||||||
|
|
||||||
|
$data = hook_addlink_toolbar_render_header($data);
|
||||||
|
$this->assertEquals($str, $data[$str]);
|
||||||
|
$this->assertArrayNotHasKey('fields_toolbar', $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test render_includes hook while logged in.
|
||||||
|
*/
|
||||||
|
function testAddlinkIncludesLoggedIn()
|
||||||
|
{
|
||||||
|
$str = 'stuff';
|
||||||
|
$data = array($str => $str);
|
||||||
|
$data['_PAGE_'] = Router::$PAGE_LINKLIST;
|
||||||
|
$data['_LOGGEDIN_'] = true;
|
||||||
|
|
||||||
|
$data = hook_addlink_toolbar_render_includes($data);
|
||||||
|
$this->assertEquals($str, $data[$str]);
|
||||||
|
$this->assertEquals(1, count($data['css_files']));
|
||||||
|
|
||||||
|
$str = 'stuff';
|
||||||
|
$data = array($str => $str);
|
||||||
|
$data['_PAGE_'] = $str;
|
||||||
|
$data['_LOGGEDIN_'] = true;
|
||||||
|
|
||||||
|
$data = hook_addlink_toolbar_render_includes($data);
|
||||||
|
$this->assertEquals($str, $data[$str]);
|
||||||
|
$this->assertArrayNotHasKey('css_files', $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test render_includes hook.
|
||||||
|
* Should not affect css files while logged out.
|
||||||
|
*/
|
||||||
|
function testAddlinkIncludesLoggedOut()
|
||||||
|
{
|
||||||
|
$str = 'stuff';
|
||||||
|
$data = array($str => $str);
|
||||||
|
$data['_PAGE_'] = Router::$PAGE_LINKLIST;
|
||||||
|
$data['_LOGGEDIN_'] = false;
|
||||||
|
|
||||||
|
$data = hook_addlink_toolbar_render_includes($data);
|
||||||
|
$this->assertEquals($str, $data[$str]);
|
||||||
|
$this->assertArrayNotHasKey('css_files', $data);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue