QRCode plugin: use url instead of real_url

Fixes #414 and avoid usage of redirector in QRCode.

Also fixed a bug with URL encoding.
This commit is contained in:
ArthurHoaro 2015-12-22 10:24:31 +01:00
parent 79851b4890
commit 49e62f22ad
3 changed files with 10 additions and 4 deletions

View file

@ -17,8 +17,10 @@
* - private: Is this link private? 0=no, other value=yes
* - tags: tags attached to this entry (separated by spaces)
* - title Title of the link
* - url URL of the link. Can be absolute or relative.
* - url URL of the link. Used for displayable links (no redirector, relative, etc.).
* Can be absolute or relative.
* Relative URLs are permalinks (e.g.'?m-ukcw')
* - real_url Absolute processed URL.
*
* Implements 3 interfaces:
* - ArrayAccess: behaves like an associative array;

View file

@ -17,7 +17,11 @@ function hook_qrcode_render_linklist($data)
$qrcode_html = file_get_contents(PluginManager::$PLUGINS_PATH . '/qrcode/qrcode.html');
foreach ($data['links'] as &$value) {
$qrcode = sprintf($qrcode_html, $value['real_url'], $value['real_url'], PluginManager::$PLUGINS_PATH);
$qrcode = sprintf($qrcode_html,
urlencode($value['url']),
$value['url'],
PluginManager::$PLUGINS_PATH
);
$value['link_plugin'][] = $qrcode;
}

View file

@ -30,7 +30,7 @@ function testQrcodeLinklist()
'title' => $str,
'links' => array(
array(
'real_url' => $str,
'url' => $str,
)
)
);
@ -39,7 +39,7 @@ function testQrcodeLinklist()
$link = $data['links'][0];
// data shouldn't be altered
$this->assertEquals($str, $data['title']);
$this->assertEquals($str, $link['real_url']);
$this->assertEquals($str, $link['url']);
// plugin data
$this->assertEquals(1, count($link['link_plugin']));