File: Url.php

package info (click to toggle)
php-horde-wicked 2.0.1-4
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 2,528 kB
  • ctags: 1,236
  • sloc: php: 5,386; xml: 1,027; makefile: 10; sh: 3
file content (47 lines) | stat: -rw-r--r-- 1,334 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
/**
 * @package Wicked
 */
class Text_Wiki_Render_Xhtml_Url extends Text_Wiki_Render
{
    public $conf = array(
        'target' => '_blank'
    );

    /**
     * Renders a token into text matching the requested format.
     *
     * @param array $options  The "options" portion of the token (second
     *                        element).
     *
     * @return string  The text rendered from the token options.
     */
    public function token($options)
    {
        // Create local variables from the options array (text, href,
        // type).
        extract($options);

        // Find the rightmost dot and determine the filename
        // extension.
        $pos = strrpos($href, '.');
        $ext = Horde_String::lower(substr($href, $pos + 1));
        $href = htmlspecialchars($href);

        // Allow for alternative targets on non-anchor HREFs.
        if ($href[0] == '#') {
            $target = '';
        } else {
            $target = $this->getConf('target', '');
        }

        $output = Horde::link(Horde::externalUrl($href), $href, 'external', htmlspecialchars($target)) . htmlspecialchars($text) . '</a>';

        // Make numbered references look like footnotes.
        if ($type == 'footnote') {
            $output = '<sup>' . $output . '</sup>';
        }

        return $output;
    }
}