forked from extern/egroupware
114 lines
2.4 KiB
PHP
114 lines
2.4 KiB
PHP
|
<?php
|
||
|
|
||
|
/**
|
||
|
* Base plugin class.
|
||
|
*/
|
||
|
require_once 'Savant2/Plugin.php';
|
||
|
|
||
|
/**
|
||
|
*
|
||
|
* Outputs an HTML <a href="">...</a> tag.
|
||
|
*
|
||
|
* $Id$
|
||
|
*
|
||
|
* @author Paul M. Jones <pmjones@ciaweb.net>
|
||
|
*
|
||
|
* @package Savant2
|
||
|
*
|
||
|
* @license http://www.gnu.org/copyleft/lesser.html LGPL
|
||
|
*
|
||
|
* This program is free software; you can redistribute it and/or modify
|
||
|
* it under the terms of the GNU Lesser General Public License as
|
||
|
* published by the Free Software Foundation; either version 2.1 of the
|
||
|
* License, or (at your option) any later version.
|
||
|
*
|
||
|
* This program is distributed in the hope that it will be useful, but
|
||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||
|
* Lesser General Public License for more details.
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
class Savant2_Plugin_ahref extends Savant2_Plugin {
|
||
|
|
||
|
/**
|
||
|
*
|
||
|
* Output an HTML <a href="">...</a> tag.
|
||
|
*
|
||
|
* @access public
|
||
|
*
|
||
|
* @param string|array $href A string URL for the resulting tag. May
|
||
|
* also be an array with any combination of the keys 'scheme',
|
||
|
* 'host', 'path', 'query', and 'fragment' (c.f. PHP's native
|
||
|
* parse_url() function).
|
||
|
*
|
||
|
* @param string $text The displayed text of the link.
|
||
|
*
|
||
|
* @param string|array $attr Any extra attributes for the <a> tag.
|
||
|
*
|
||
|
* @return string The <a href="">...</a> tag.
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
function plugin($href, $text, $attr = null)
|
||
|
{
|
||
|
$html = '<a href="';
|
||
|
|
||
|
if (is_array($href)) {
|
||
|
|
||
|
// add the HREF from an array
|
||
|
$tmp = '';
|
||
|
|
||
|
if (isset($href['scheme'])) {
|
||
|
$tmp .= $href['scheme'] . ':';
|
||
|
if (strtolower($href['scheme']) != 'mailto') {
|
||
|
$tmp .= '//';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (isset($href['host'])) {
|
||
|
$tmp .= $href['host'];
|
||
|
}
|
||
|
|
||
|
if (isset($href['path'])) {
|
||
|
$tmp .= $href['path'];
|
||
|
}
|
||
|
|
||
|
if (isset($href['query'])) {
|
||
|
$tmp .= '?' . $href['query'];
|
||
|
}
|
||
|
|
||
|
if (isset($href['fragment'])) {
|
||
|
$tmp .= '#' . $href['fragment'];
|
||
|
}
|
||
|
|
||
|
$html .= htmlspecialchars($tmp);
|
||
|
|
||
|
} else {
|
||
|
|
||
|
// add the HREF from a scalar
|
||
|
$html .= htmlspecialchars($href);
|
||
|
|
||
|
}
|
||
|
|
||
|
$html .= '"';
|
||
|
|
||
|
// add attributes
|
||
|
if (is_array($attr)) {
|
||
|
// from array
|
||
|
foreach ($attr as $key => $val) {
|
||
|
$key = htmlspecialchars($key);
|
||
|
$val = htmlspecialchars($val);
|
||
|
$html .= " $key=\"$val\"";
|
||
|
}
|
||
|
} elseif (! is_null($attr)) {
|
||
|
// from scalar
|
||
|
$html .= " $attr";
|
||
|
}
|
||
|
|
||
|
// set the link text, close the tag, and return
|
||
|
$html .= '>' . htmlspecialchars($text) . '</a>';
|
||
|
return $html;
|
||
|
}
|
||
|
}
|
||
|
?>
|