From 4c13cd955095ed2df629d48f0511e9bc8634d228 Mon Sep 17 00:00:00 2001 From: henoheno Date: Sun, 24 Apr 2005 11:59:10 +0900 Subject: [PATCH] BugTrack/755: Overhaul. Correct with using 'noid' option --- plugin/aname.inc.php | 39 +++++++++++++++++---------------------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/plugin/aname.inc.php b/plugin/aname.inc.php index 8ad1a2b..bbeebbe 100644 --- a/plugin/aname.inc.php +++ b/plugin/aname.inc.php @@ -1,6 +1,6 @@ @@ -51,11 +51,21 @@ function plugin_aname_tag($args = array(), $convert = TRUE) global $vars; static $_id = array(); - if (empty($args) || $args[0] == '') - return plugin_aname_usage($convert); - + if (empty($args) || $args[0] == '') return plugin_aname_usage($convert); $id = array_shift($args); - if (isset($_id[$id])) { + $body = ''; + if (! empty($args)) $body = array_pop($args); + $f_noid = in_array('noid', $args); // Option: Without id attribute + $f_super = in_array('super', $args); // Option: CSS class + $f_full = in_array('full', $args); // Option: With full(absolute) URI + + if ($body == '') { + if ($f_noid) return plugin_aname_usage($convert, 'Meaningless(No link-title with \'noid\')'); + if ($f_super) return plugin_aname_usage($convert, 'Meaningless(No link-title with \'super\')'); + if ($f_full) return plugin_aname_usage($convert, 'Meaningless(No link-title with \'full\')'); + } + + if (isset($_id[$id]) && ! $f_noid) { return plugin_aname_usage($convert, 'ID already used: '. $id); } else { if (strlen($id) > PLUGIN_ANAME_ID_MAX) @@ -65,31 +75,16 @@ function plugin_aname_tag($args = array(), $convert = TRUE) htmlspecialchars($id)); $_id[$id] = TRUE; } - $id = htmlspecialchars($id); // Insurance - - $body = ''; - if (! empty($args)) { - if ($convert) { - $body = htmlspecialchars(array_pop($args)); - } else { - $body = array_pop($args); - } - } - $f_super = in_array('super', $args); // Option: CSS class - $f_noid = in_array('noid', $args); // Option: Without id attribute - $f_full = in_array('full', $args); // Option: With full(absolute) URI + if ($convert) $body = htmlspecialchars($body); + $id = htmlspecialchars($id); // Insurance $class = $f_super ? 'anchor_super' : 'anchor'; $attr_id = $f_noid ? '' : ' id="' . $id . '"'; $url = $f_full ? get_script_uri() . '?' . rawurlencode($vars['page']) : ''; - - // href and title attribute if ($body != '') { $href = ' href="' . $url . '#' . $id . '"'; $title = ' title="' . $id . '"'; } else { - if ($f_noid) return plugin_aname_usage($convert, 'Meaningless(No link-title with \'noid\')'); - if ($f_full) return plugin_aname_usage($convert, 'Meaningless(No link-title with \'full\')'); $href = $title = ''; } -- 2.11.0