[whups] Autolink of Ticket References in Comments
Mike Baptiste
mike@msbnetworks.net
Fri Nov 22 00:45:59 2002
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Done. Search phrases are in conf.php while the autolink checkbox is in
the user prefs. Patches attached. I sort of guessed at an appropriate
conf setting group, so feel free to change it if necessary.
Mike
Chuck Hagenbuch wrote:
| Quoting Mike Baptiste :
|
|
| >I made it a user preference vs a global preference. I was on the fence
| >about this one (I almost put it in conf.php) and opted to let the user
| >choose. Another option might be to have the conf file contain the
| >search regex and the user enable/disable the autolinking itself.
|
|
| I think that would be much better. Would also alleviate any concerns you
| express below:
|
|
| >Also, you'll note that I put the code AFTER the comment is stripped of
| >HTML, which means someone MIGHT be able to set their search phrase in a
| >way that lets them return HTML in ticket views - I guess I could put in
| >a strip at the end. I wanted to put the added code higher up before
| >htmlSpaces and enableCapitalLinks, but the Horde::link method retusn a
| >lower case
| "People ask me all the time what it will be like living without otters."
| - Google, thanks to Harpers
|
- --
Mike Baptiste - MSB Networks - mike@msbnetworks.net
Download my GnuPG key at http://msbnetworks.net/msbnet.gpg
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQE93X5Gtbf8BjvL+3ERAjqDAJ42/mJlJD3ZfFPsfL4hdQvZNrWphQCgsdrc
kxqTrbzlFLRtdD9LD/jxmf0=
=oJVs
-----END PGP SIGNATURE-----
-------------- next part --------------
Index: comment.inc
===================================================================
RCS file: /repository/whups/templates/comment.inc,v
retrieving revision 1.15
diff -u -r1.15 comment.inc
--- comment.inc 17 Nov 2002 22:29:07 -0000 1.15
+++ comment.inc 22 Nov 2002 00:35:21 -0000
@@ -32,6 +32,8 @@
function render(&$vars)
{
+ global $prefs, $conf;
+
$newstate = $vars->getVar('state_name');
$newpriority = $vars->getVar('priority_name');
@@ -61,6 +63,10 @@
$body = Text::linkUrls($body, true);
$body = Text::htmlSpaces($body);
$body = Text::enableCapitalLinks($body);
+ if ($prefs->getValue('autolink_tickets') && $conf['prefs']['autolink_terms']) {
+ $term_regex = '/(' . $conf['prefs']['autolink_terms'] . ')\s+(\d+)/i';
+ $body = preg_replace_callback($term_regex, array(&$this, '_autolink'), $body);
+ }
$body = nl2br($body);
?>
<tr><td>
@@ -94,6 +100,15 @@
</td></tr>
<?php
+ }
+
+ function _autolink($matches)
+ {
+
+ $url = 'details.php';
+ $url = Horde::applicationUrl(Horde::addParameter($url, 'id=' . $matches[2]));
+ $linktext = $matches[1] . ' ' . $matches[2];
+ return Horde::link($url, 'View ' . $linktext) . '<b>' . $linktext . '</b></a>';
}
function end()
-------------- next part --------------
Index: conf.php.dist
===================================================================
RCS file: /repository/whups/config/conf.php.dist,v
retrieving revision 1.12
diff -u -r1.12 conf.php.dist
--- conf.php.dist 18 Nov 2002 18:01:18 -0000 1.12
+++ conf.php.dist 22 Nov 2002 00:33:18 -0000
@@ -79,3 +79,15 @@
// example providing a link to IMP (an email program) would be:
// $conf['menu']['apps'] = array('imp');
$conf['menu']['apps'] = array('logout');
+
+/**
+ ** User Preference Attributes
+ **/
+
+// Users can opt to automatically link to other tickets referenced
+// in comments. The regex option allows you to specify one or more
+// phrases to match against along with a number (i.e. Ticket 101)
+// Note the search is NOT case sensitive. Separate more than one
+// term with |
+// Set to a null string to disable this feature
+$conf['prefs']['autolink_terms'] = 'bug|ticket|issue';
-------------- next part --------------
Index: prefs.php.dist
===================================================================
RCS file: /repository/whups/config/prefs.php.dist,v
retrieving revision 1.9
diff -u -r1.9 prefs.php.dist
--- prefs.php.dist 13 Nov 2002 03:22:20 -0000 1.9
+++ prefs.php.dist 22 Nov 2002 00:34:43 -0000
@@ -12,7 +12,7 @@
'column' => _("Other Options"),
'label' => _("Display Options"),
'desc' => _("Change display options such as the color scheme and how search results are sorted."),
- 'members' => array('sortby', 'sortdir', 'theme', 'whups_default_view', 'summary_show_requested', 'summary_show_ticket_numbers', 'report_time_format', 'show_days_ago')
+ 'members' => array('sortby', 'sortdir', 'theme', 'whups_default_view', 'summary_show_requested', 'summary_show_ticket_numbers', 'report_time_format', 'show_days_ago', 'autolink_tickets')
);
$prefGroups['notification'] = array(
@@ -139,4 +139,13 @@
'shared' => false,
'type' => 'checkbox',
'desc' => _("Only notify me of ticket changes from other users")
+);
+
+// AutoLink to tickets references in comments
+$_prefs['autolink_tickets'] = array(
+ 'value' => 1,
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'checkbox',
+ 'desc' => _("Autolink to other tickets in comments")
);
More information about the whups
mailing list