-<?
-// $Id: aname.inc.php,v 1.3 2002/06/26 06:23:57 masui Exp $
+<?php
+/////////////////////////////////////////////////
+// PukiWiki - Yet another WikiWikiWeb clone.
+//
+// $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);
+}
function plugin_aname_convert()
{
- if(func_num_args())
- $aryargs = func_get_args();
- else
- $aryargs = array();
+ global $script, $vars;
+
+ if (func_num_args() < 1) return FALSE;
+
+ $args = func_get_args();
+ $id = array_shift($args);
+
+ if (! preg_match('/^[A-Za-z][\w\-]*$/', $id))
+ return FALSE;
+
+ $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 name=\"$aryargs[0]\"></a>";
+ return "<a class=\"$class\"$attr_id href=\"$url#$id\" title=\"$id\">$body</a>";
}
?>