/////////////////////////////////////////////////
// PukiWiki - Yet another WikiWikiWeb clone.
//
-// $Id: aname.inc.php,v 1.9 2003/03/21 22:49:48 panda Exp $
+// $Id: aname.inc.php,v 1.16 2004/08/09 14:03:42 henoheno Exp $
//
function plugin_aname_inline()
{
$args = func_get_args();
- return call_user_func_array('plugin_aname_convert',$args);
+ return call_user_func_array('plugin_aname_convert', $args);
}
+
function plugin_aname_convert()
{
- if (func_num_args() < 1)
- {
- return FALSE;
- }
-
+ global $script, $vars;
+
+ if (func_num_args() < 1) return FALSE;
+
$args = func_get_args();
- $id = $args[0];
- $body = (func_num_args() > 1) ? $args[1] : '';
-
- if (!preg_match('/^[A-Za-z][\w\-]*$/',$id))
- {
+ $id = array_shift($args);
+
+ if (! preg_match('/^[A-Za-z][\w\-]*$/', $id))
return FALSE;
- }
-
- $s_body = htmlspecialchars($body);
-
- return "<a id=\"$id\">$s_body</a>";
+
+ $body = count($args) ? preg_replace('/<\/?a[^>]*>/', '', array_pop($args)) : '';
+
+ $class = in_array('super', $args) ? 'anchor_super' : 'anchor';
+ $url = in_array('full', $args) ? "$script?" . rawurlencode($vars['page']) : '';
+ $attr_id = in_array('noid', $args) ? '' : " id=\"$id\"";
+
+ return "<a class=\"$class\"$attr_id href=\"$url#$id\" title=\"$id\">$body</a>";
}
?>