<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://rt-wiki.bestpractical.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LB</id>
	<title>Request Tracker Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://rt-wiki.bestpractical.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LB"/>
	<link rel="alternate" type="text/html" href="https://rt-wiki.bestpractical.com/wiki/Special:Contributions/LB"/>
	<updated>2026-08-22T02:54:08Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://rt-wiki.bestpractical.com/index.php?title=SessionTimeout&amp;diff=26963</id>
		<title>SessionTimeout</title>
		<link rel="alternate" type="text/html" href="https://rt-wiki.bestpractical.com/index.php?title=SessionTimeout&amp;diff=26963"/>
		<updated>2020-02-14T14:07:30Z</updated>

		<summary type="html">&lt;p&gt;LB: Allow users to find Session Timeout settings more easy.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are several solutions to managing your Session in Request Tracker&lt;br /&gt;
&lt;br /&gt;
= RT 4.x =&lt;br /&gt;
&lt;br /&gt;
Tested only with 4.4.4, but probably also valid for older 4.x versions.&lt;br /&gt;
&lt;br /&gt;
== Option 1: AutoLogoff ==&lt;br /&gt;
&lt;br /&gt;
Set `AutoLogoff` Setting in your config, i.e. to 60 Minutes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Set($AutoLogoff, 60);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
According to the RT_Config docs, setting this value automatically logs off any user after 60 minutes of inactivity (i.e. 60 minutes after your last action).&lt;br /&gt;
&lt;br /&gt;
Source: https://docs.bestpractical.com/rt/4.4.4/RT_Config.html#AutoLogoff&lt;br /&gt;
&lt;br /&gt;
== Option 2: SetupSessionCookie  ==&lt;br /&gt;
&lt;br /&gt;
Alternative: Set $Expires next to $SessionCookie in /opt/rt/share/html/Elements/SetupSessionCookie&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$SessionCookie =&amp;gt; undef&lt;br /&gt;
$Expires =&amp;gt; &#039;+8h&#039;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This means any session inactive for more than 8h (i.e. no action done in 8h), will expired. This alone is not enough to ensure the session won&#039;t work anymore.&lt;br /&gt;
&lt;br /&gt;
You need to setup a cronjob to clean up old sessions, because the session cookies in your browser won&#039;t have an expiry date and the sessions in the database will remain there, unless cleaned up by a cronjob.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
/opt/rt/sbin/rt-clean-sessions --older 1H&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add --skip-user if you allow one user to possibly have multiple sessions at the same time, i.e. in different browsers or workstations. Add --debug to debug what is going an.&lt;/div&gt;</summary>
		<author><name>LB</name></author>
	</entry>
	<entry>
		<id>https://rt-wiki.bestpractical.com/index.php?title=MakeClicky&amp;diff=26962</id>
		<title>MakeClicky</title>
		<link rel="alternate" type="text/html" href="https://rt-wiki.bestpractical.com/index.php?title=MakeClicky&amp;diff=26962"/>
		<updated>2020-02-05T12:51:18Z</updated>

		<summary type="html">&lt;p&gt;LB: Add Patch for Umlaut support. Fix syntax.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 3.8.x =&lt;br /&gt;
&lt;br /&gt;
This is now built-in functionality. From [[RT Config|RT_Config]].pm:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;=item C&amp;amp;lt;@Active_MakeClicky&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 MakeClicky detects various formats of data in headers and email messages,&lt;br /&gt;
 and extends them with supporting links.  By default, RT provides two formats:&lt;br /&gt;
 &lt;br /&gt;
 * &#039;httpurl&#039;: detects http:// and https:// URLs and adds &#039;[Open URL]&#039; link after the URL.&lt;br /&gt;
 &lt;br /&gt;
 * &#039;httpurl_overwrite&#039;: also detects URLs as &#039;httpurl&#039; format, but replace URL with link&lt;br /&gt;
 and *adds spaces* into text if it&#039;s longer then 30 chars. This allow browser to wrap long&lt;br /&gt;
 URLs and avoid horizontal scrolling.&lt;br /&gt;
 &lt;br /&gt;
 See F&amp;amp;lt;share/html/Elements/MakeClicky&amp;amp;gt; for documentation on how to add your own.&lt;br /&gt;
 &lt;br /&gt;
 =cut&lt;br /&gt;
 &lt;br /&gt;
 Set(@Active_MakeClicky, qw());&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you&#039;re new to this, the option you choose is contained in qw(), frex:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Set(@Active_MakeClicky, qw(httpurl));&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that httpurl will result in things like&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
http://www.someplace.tld/path/morepath/etc/target.htm [Open URL]&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
where the [Open URL] is your clickable link. httpurl_overwrite will make the existing link clickable (oddly enough). Try both and see how it works on your links; don&#039;t forget to reload your webserver when you change it.&lt;br /&gt;
&lt;br /&gt;
If you want to add your own actions be aware that the documentation in docs/extending_clickable_links.pod is not correct where it says to create the file &#039; local/html/[[MyCallbacks]]/Elements/[[MakeClicky]]/Default&#039; it needs to be &#039; local/html/Callbacks/[[MyCallbacks]]/Elements/[[MakeClicky]]/Default&#039; otherwise it will not be picked up by rt. Doc fixed in 3.8.5. &#039;&#039;&#039;NOTE&#039;&#039;&#039; that such things should be reported via bug tracker.&lt;br /&gt;
&lt;br /&gt;
== Known Problems ==&lt;br /&gt;
; html #anchors&lt;br /&gt;
* httpurl_overwrite does not work well with http anchors like http://en.wikipedia.org/wiki/HTML_anchor#Anchor&lt;br /&gt;
* Workaround&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
  cp $RTHOME/share/html/Elements/MakeClicky $RTHOME/local/html/Elements/MakeClicky&lt;br /&gt;
  $EDITOR $RTHOME/local/html/Elements/MakeClicky&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now change regex to also match #  qr@(?&amp;lt;!src=[&amp;quot;&#039;])https?:([\w\/\@\-~%#?=;,.:+\[\]\(\)]|\&amp;amp;|\[\])+[\w\/]@,&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
  my @types = (&lt;br /&gt;
    {&lt;br /&gt;
        name   =&amp;gt; &amp;quot;httpurl&amp;quot;,&lt;br /&gt;
        regex  =&amp;gt; qr/$RE{URI}{HTTP}{-keep}{-scheme =&amp;gt; &#039;https?&#039;}/,&lt;br /&gt;
        action =&amp;gt; &amp;quot;url&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        name   =&amp;gt; &amp;quot;httpurl_overwrite&amp;quot;,&lt;br /&gt;
        #regex  =&amp;gt; qr/$RE{URI}{HTTP}{-keep}{-scheme =&amp;gt; &#039;https?&#039;}/,&lt;br /&gt;
        regex  =&amp;gt; qr@(?&amp;lt;!src=[&amp;quot;&#039;])https?:([\w\/\@\-~%#?=;,.:+\[\]\(\)]|\&amp;amp;|\[\])+[\w\/]@,&lt;br /&gt;
        action =&amp;gt; &amp;quot;url_overwrite&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
  );&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Earlier Versions =&lt;br /&gt;
&lt;br /&gt;
This is a patch to make links clickable when displaying a ticket. Works for 3.0, success has been reported for 3.4 too.&lt;br /&gt;
&lt;br /&gt;
Regexp based on work by Abigail. As always, mind the tab damage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 $ diff -u /usr{,/local}/share/request-tracker3/html/Ticket/Elements/ShowMessageStanza&lt;br /&gt;
 --- /usr/share/request-tracker3/html/Ticket/Elements/ShowMessageStanza  2004-02-13 19:21:02.000000000 +0100&lt;br /&gt;
 +++ /usr/local/share/request-tracker3/html/Ticket/Elements/ShowMessageStanza   2005-05-08 01:04:15.000000000 +0200&lt;br /&gt;
 @@ -37,6 +37,9 @@&lt;br /&gt;
          $m-&amp;amp;gt;comp(&#039;/Elements/Callback&#039;, content =&amp;amp;gt; \$content, %ARGS);&lt;br /&gt;
                  $content =~ s/\n/&amp;amp;lt;br&amp;amp;gt;/gi;&lt;br /&gt;
 &lt;br /&gt;
 +        # Make URLs in plaintext clickable.  This is dangerous!&lt;br /&gt;
 +        $content =~ s@(https?://(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))?)(?:/(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*&#039;(),]|(?:%[a-fA-F\d]{2}))|[;:\@&amp;amp;amp;=#])*)(?:/(?:(?:(?:[a-zA-Z\d$\-_.+!*&#039;(),]|(?:%[a-fA-F\d]{2}))|[;:\@&amp;amp;amp;=#])*))*)(?:\?(?:(?:(?:[a-zA-Z\d$\-_.+!*&#039;(),]|(?:%[a-fA-F\d]{2}))|[;:\@&amp;amp;amp;=#])*))?)?)|(?:ftp://(?:(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*&#039;(),]|(?:%[a-fA-F\d]{2}))|[;?&amp;amp;amp;=])*)(?::(?:(?:(?:[a-zA-Z\d$\-_.+!*&#039;(),]|(?:%[a-fA-F\d]{2}))|[;?&amp;amp;amp;=])*))?\@)?(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))?))(?:/(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*&#039;(),]|(?:%[a-fA-F\d]{2}))|[?:\@&amp;amp;amp;=])*)(?:/(?:(?:(?:[a-zA-Z\d$\-_.+!*&#039;(),]|(?:%[a-fA-F\d]{2}))|[?:\@&amp;amp;amp;=])*))*)(?:;type=[AIDaid])?)?)|(?:mailto:(?:(?:[a-zA-Z\d$\-_.+!*&#039;(),;/?:\@&amp;amp;amp;=]|(?:%[a-fA-F\d]{2}))+))@&amp;amp;lt;a href=\&amp;quot;$1\&amp;quot; target=\&amp;quot;_blank\&amp;quot;&amp;amp;gt;$1&amp;amp;lt;/a&amp;amp;gt;@g;&lt;br /&gt;
 +&lt;br /&gt;
  &amp;amp;lt;/%perl&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;%$content |n%&amp;amp;gt;&amp;amp;lt;br&amp;amp;gt;&lt;br /&gt;
  %       }&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Alternatively you could implement this callback by Dirk Pape which goes in&lt;br /&gt;
&lt;br /&gt;
[=$your-rt-path/local/html/Callbacks/MI/Ticket/Elements/[[ShowMessageStanza]]/Default]&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 &amp;amp;lt;%init&amp;amp;gt;&lt;br /&gt;
 my $val = $$content;&lt;br /&gt;
 use bytes;&lt;br /&gt;
 $val =~ s/https?:([\w\/\@\-~%#?=;,.:+]|\&amp;amp;amp;)+[\w\/]/&amp;amp;lt;a href=&amp;quot;$&amp;amp;amp;&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;amp;gt;$&amp;amp;amp;&amp;amp;lt;\/a&amp;amp;gt;/gi;&lt;br /&gt;
 $val =~ s/(s?ftp|ftps):[\w\/\.:+\-]+/&amp;amp;lt;a href=&amp;quot;$&amp;amp;amp;&amp;quot;&amp;amp;gt;$&amp;amp;amp;&amp;amp;lt;\/a&amp;amp;gt;/gi;&lt;br /&gt;
 $val =~ s/(mailto:)?([a-zA-Z0-9_\+\-\.]+\@([a-zA-Z0-9][\w\.\+\-]+\.[a-zA-Z]{2,})(\?([\w\/\@\-~%#?=;,.:+]|\&amp;amp;amp;)+[\w\/])?)/&amp;amp;lt;a href=&amp;quot;mailto:$2&amp;quot;&amp;amp;gt;$&amp;amp;amp;&amp;amp;lt;\/a&amp;amp;gt;/gi;&lt;br /&gt;
 $val =~ s/\&amp;amp;lt;((url:\s*)?\w+:[^&amp;amp;amp;&amp;amp;lt;&amp;amp;gt;]+)\&amp;amp;gt;/&amp;amp;lt;&amp;amp;lt;a href=&amp;quot;$1&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;amp;gt;$1&amp;amp;lt;\/a&amp;amp;gt;&amp;amp;gt;/gi;&lt;br /&gt;
 $$content = $val;&lt;br /&gt;
 &amp;amp;lt;/%init&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;%args&amp;amp;gt;&lt;br /&gt;
 $content =&amp;amp;gt; undef&lt;br /&gt;
 &amp;amp;lt;/%args&amp;amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
For what it&#039;s worth, the above file content worked for me accept for the 6th line, which contains the &amp;quot;mailto:&amp;quot; parsing. My system complained about the syntax of this line. I deleted it from my Default file, and all works well on my resulting RT 3.4.2 system.&lt;br /&gt;
&lt;br /&gt;
-Matt England&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
There was a typo in line 6. It read &amp;quot;$val =~ s/(mailto ... &amp;amp;lt;\/a&amp;amp;gt;/ gi;&amp;quot; but the space before &amp;quot;gi&amp;quot; is too much. I removed it, and removed the cached file [=/var/cache/request-tracker3.4/mason_data/obj/local/Callbacks/MI/Ticket/Elements/[[ShowMessageStanza]]/Default] (on our server). It then worked as expected.&lt;br /&gt;
&lt;br /&gt;
-Andreas&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
A small enhancement to Disk&#039;s Callback method, where long http(s) URL&#039;s are truncated when displayed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 &amp;amp;lt;%init&amp;amp;gt;&lt;br /&gt;
 my $val = $$content;&lt;br /&gt;
 use bytes;&lt;br /&gt;
 my @parts = ();&lt;br /&gt;
 my @markup = ();&lt;br /&gt;
 &lt;br /&gt;
 my $max_length = 67;&lt;br /&gt;
 my $http_regex = &#039;https?:[\w\/\@\-~%#?=;,.:+&amp;amp;amp;]+[\w\/]&#039;;&lt;br /&gt;
 my $ftp_regex = &#039;(s?ftp|ftps):[\w\/\.:+\-]+&#039;;&lt;br /&gt;
 my $mail_regex = &#039;(mailto:)?([a-zA-Z0-9_\+\-\.]+\@([a-zA-Z0-9][\w\.\+\-]+\.[a-zA-Z]{2,})(\?([\w\/\@\-~%#?=;,.:+]|\&amp;amp;amp;)+[\w\/])?)&#039;;&lt;br /&gt;
 my $url_regex = &#039;\&amp;amp;lt;((url:\s*)?\w+:[^&amp;amp;amp;&amp;amp;lt;&amp;amp;gt;]+)\&amp;amp;gt;&#039;;&lt;br /&gt;
 &lt;br /&gt;
 $val =~ s/$ftp_regex/&amp;amp;lt;a href=&amp;quot;$&amp;amp;amp;&amp;quot;&amp;amp;gt;$&amp;amp;amp;&amp;amp;lt;\/a&amp;amp;gt;/gi;&lt;br /&gt;
 $val =~ s/$mail_regex/&amp;amp;lt;a href=&amp;quot;mailto:$2&amp;quot;&amp;amp;gt;$&amp;amp;amp;&amp;amp;lt;\/a&amp;amp;gt;/gi;&lt;br /&gt;
 $val =~ s/$url_regex/&amp;amp;lt;a href=&amp;quot;$1&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;amp;gt;$1&amp;amp;lt;\/a&amp;amp;gt;/gi;&lt;br /&gt;
 &lt;br /&gt;
 @parts = split(/($http_regex)/, $val);&lt;br /&gt;
 foreach my $bit (@parts) {&lt;br /&gt;
         if ($bit =~ m/$http_regex/) {&lt;br /&gt;
                 if (length($bit) &amp;amp;lt; $max_length) {&lt;br /&gt;
                         $bit = &#039;&amp;amp;lt;a href=&amp;quot;&#039;.$bit.&#039;&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;amp;gt;&#039;.$bit.&#039;&amp;amp;lt;/a&amp;amp;gt;&#039;;&lt;br /&gt;
                 } else {&lt;br /&gt;
                         $bit = &#039;&amp;amp;lt;a href=&amp;quot;&#039;.$bit.&#039;&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;amp;gt;&#039;.substr($bit, 0, $max_length).&#039;...&amp;amp;lt;/a&amp;amp;gt;&#039;;&lt;br /&gt;
                 }&lt;br /&gt;
         }&lt;br /&gt;
         push(@markup, $bit);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 $$content = join(&amp;quot;&amp;quot;, @markup);&lt;br /&gt;
 &amp;amp;lt;/%init&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;%args&amp;amp;gt;&lt;br /&gt;
 $content =&amp;amp;gt; undef&lt;br /&gt;
 &amp;amp;lt;/%args&amp;amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
-Shane PS Copy it in &amp;quot;Edit&amp;quot; mode&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= URL with special characters =&lt;br /&gt;
&lt;br /&gt;
This is not a direct edit of MakeClicky, but it&#039;s a fix for a problem that MakeClicky can&#039;t and should be handled by the module used by MakeClicky (which is Regexp::Common).&lt;br /&gt;
&lt;br /&gt;
As of RT 4.4.4 (using Regexp::Common Version 2013031301-1 or 2017060201), there is no support for URLs that contain Umlaut characters in their path.&lt;br /&gt;
&lt;br /&gt;
This patch adds support for german Umlauts and other special language characters to Regexp::Common::URI. Note that this is an external Perl module, not directly provided by Bestpractical.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
diff -ur /usr/share/perl5/Regexp/Common/URI/RFC2396.pm.orig /usr/share/perl5/Regexp/Common/URI/RFC2396.pm&lt;br /&gt;
--- /usr/share/perl5/Regexp/Common/URI/RFC2396.pm.orig	2020-02-05 11:23:35.217557749 +0000&lt;br /&gt;
+++ /usr/share/perl5/Regexp/Common/URI/RFC2396.pm	2020-02-05 12:02:50.441450768 +0000&lt;br /&gt;
@@ -54,12 +54,12 @@&lt;br /&gt;
                                       # unreserved | escaped | [:@&amp;amp;=+$,]&lt;br /&gt;
 $uric              =  &amp;quot;(?:[;/?:\@&amp;amp;=+\$,a-zA-Z0-9\\-_.!~*&#039;()]|$escaped)&amp;quot;;&lt;br /&gt;
                                       # reserved | unreserved | escaped&lt;br /&gt;
-$urics             =  &amp;quot;(?:(?:[;/?:\@&amp;amp;=+\$,a-zA-Z0-9\\-_.!~*&#039;()]+|&amp;quot;     .&lt;br /&gt;
+$urics             =  &amp;quot;(?:(?:[;/?:\@&amp;amp;=+\$,a-zA-Z0-9\x7f-\xff\\-_.!~*&#039;()]+|&amp;quot;     .&lt;br /&gt;
                       &amp;quot;$escaped)*)&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 $query             =  $urics;&lt;br /&gt;
 $fragment          =  $urics;&lt;br /&gt;
-$param             =  &amp;quot;(?:(?:[a-zA-Z0-9\\-_.!~*&#039;():\@&amp;amp;=+\$,]+|$escaped)*)&amp;quot;;&lt;br /&gt;
+$param             =  &amp;quot;(?:(?:[a-zA-Z0-9\x7f-\xff\\-_.!~*&#039;():\@&amp;amp;=+\$,]+|$escaped)*)&amp;quot;;&lt;br /&gt;
 $segment           =  &amp;quot;(?:$param(?:;$param)*)&amp;quot;;&lt;br /&gt;
 $path_segments     =  &amp;quot;(?:$segment(?:/$segment)*)&amp;quot;;&lt;br /&gt;
 $ftp_segments      =  &amp;quot;(?:$param(?:/$param)*)&amp;quot;;   # NOT from RFC 2396.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The character range is currently &amp;lt;code&amp;gt;\x7f-\xff&amp;lt;/code&amp;gt;, extend it if you need other characters.&lt;br /&gt;
&lt;br /&gt;
This will parse URLs correctly, that have special characters in them.&lt;br /&gt;
&lt;br /&gt;
If you need support for special character domains, also change &amp;lt;code&amp;gt;$domainlabel&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
[[Category:3.8.x]] &lt;br /&gt;
[[Category:Configuration]] &lt;br /&gt;
{{Template:3.8.x}}&lt;br /&gt;
{{Template:Configuration}}&lt;/div&gt;</summary>
		<author><name>LB</name></author>
	</entry>
	<entry>
		<id>https://rt-wiki.bestpractical.com/index.php?title=ForceHTTPSLogin&amp;diff=26961</id>
		<title>ForceHTTPSLogin</title>
		<link rel="alternate" type="text/html" href="https://rt-wiki.bestpractical.com/index.php?title=ForceHTTPSLogin&amp;diff=26961"/>
		<updated>2020-02-01T11:17:40Z</updated>

		<summary type="html">&lt;p&gt;LB: Add syntaxhighlight tags to show code properly.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
 #&lt;br /&gt;
 # rt-3.4.5-ForceHTTPSLogin.patch&lt;br /&gt;
 #&lt;br /&gt;
 # Warning: this patch is under devel, barely tested!!!&lt;br /&gt;
 #&lt;br /&gt;
 # * 2005.01.13 Paulo Matos &amp;amp;lt;paulo.matos@fct.unl.pt&amp;amp;gt;&lt;br /&gt;
 # - Updated to apply directly to 3.4.5.&lt;br /&gt;
 # * 2005.01.06 Paulo Matos &amp;amp;lt;paulo.matos@fct.unl.pt&amp;amp;gt;&lt;br /&gt;
 # - Redirect to https when credentials are not found;&lt;br /&gt;
 # - Redirect to http when credentials are found;&lt;br /&gt;
 # - Changed cookiename removing SERVER_PORT.&lt;br /&gt;
 #&lt;br /&gt;
 diff -uNr rt-3.4.5.orig/html/autohandler rt-3.4.5/html/autohandler&lt;br /&gt;
 --- rt-3.4.5.orig/html/autohandler  2005-02-01 14:20:40.000000000 +0000&lt;br /&gt;
 +++ rt-3.4.5/html/autohandler   2006-01-13 01:20:03.000000000 +0000&lt;br /&gt;
 @@ -72,6 +72,11 @@&lt;br /&gt;
 &lt;br /&gt;
  $m-&amp;amp;gt;comp(&#039;/Elements/SetupSessionCookie&#039;, %ARGS);&lt;br /&gt;
 &lt;br /&gt;
 +# check credentials and HTTPS, if so redirect to HTTP&lt;br /&gt;
 +if ($session{&#039;CurrentUser&#039;} &amp;amp;amp;&amp;amp;amp; $session{&#039;CurrentUser&#039;}-&amp;amp;gt;Id &amp;amp;amp;&amp;amp;amp; $ENV{&#039;HTTPS&#039;}) {&lt;br /&gt;
 +    $m-&amp;amp;gt;redirect(&#039;http://&#039;.$ENV{SERVER_NAME}.$ENV{REQUEST_URI});&lt;br /&gt;
 +}&lt;br /&gt;
 +&lt;br /&gt;
  unless ($session{&#039;CurrentUser&#039;} &amp;amp;amp;&amp;amp;amp; $session{&#039;CurrentUser&#039;}-&amp;amp;gt;Id) {&lt;br /&gt;
      $session{&#039;CurrentUser&#039;} = RT::CurrentUser-&amp;amp;gt;new();&lt;br /&gt;
  }&lt;br /&gt;
 @@ -218,6 +223,10 @@&lt;br /&gt;
 &lt;br /&gt;
  # If we have no credentials&lt;br /&gt;
  else {&lt;br /&gt;
 +    # check if we are in HTTPS mode&lt;br /&gt;
 +    if (! $ENV{&#039;HTTPS&#039;} ) {&lt;br /&gt;
 +         $m-&amp;amp;gt;redirect(&#039;https://&#039;.$ENV{SERVER_NAME}.$ENV{REQUEST_URI});&lt;br /&gt;
 +    }&lt;br /&gt;
      $m-&amp;amp;gt;comp(&#039;/Elements/Login&#039;, %ARGS);&lt;br /&gt;
      $m-&amp;amp;gt;abort();&lt;br /&gt;
  }&lt;br /&gt;
 diff -uNr rt-3.4.5.orig/html/Elements/SetupSessionCookie rt-3.4.5/html/Elements/SetupSessionCookie&lt;br /&gt;
 --- rt-3.4.5.orig/html/Elements/SetupSessionCookie  2005-04-18 02:44:50.000000000 +0100&lt;br /&gt;
 +++ rt-3.4.5/html/Elements/SetupSessionCookie   2006-01-13 01:20:03.000000000 +0000&lt;br /&gt;
 @@ -47,7 +47,9 @@&lt;br /&gt;
  return if $m-&amp;amp;gt;is_subrequest; # avoid reentrancy, as suggested by masonbook&lt;br /&gt;
 &lt;br /&gt;
  my %cookies = CGI::Cookie-&amp;amp;gt;fetch();&lt;br /&gt;
 -my $cookiename = &amp;quot;RT_SID_&amp;quot;.$RT::rtname.&amp;quot;.&amp;quot;.$ENV{&#039;SERVER_PORT&#039;};&lt;br /&gt;
 +# removed SERVER_PORT from cookie name so it can be valid on HTTP and HTTPS&lt;br /&gt;
 +#my $cookiename = &amp;quot;RT_SID_&amp;quot;.$RT::rtname.&amp;quot;.&amp;quot;.$ENV{&#039;SERVER_PORT&#039;};&lt;br /&gt;
 +my $cookiename = &amp;quot;RT_SID_&amp;quot;.$RT::rtname.&amp;quot;.&amp;quot;.&#039;0000&#039;;&lt;br /&gt;
  my %backends = (&lt;br /&gt;
      mysql  =&amp;amp;gt; &#039;Apache::Session::MySQL&#039;,&lt;br /&gt;
      Pg     =&amp;amp;gt; &#039;Apache::Session::Postgres&#039;,&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>LB</name></author>
	</entry>
	<entry>
		<id>https://rt-wiki.bestpractical.com/index.php?title=PersistentSessions&amp;diff=26960</id>
		<title>PersistentSessions</title>
		<link rel="alternate" type="text/html" href="https://rt-wiki.bestpractical.com/index.php?title=PersistentSessions&amp;diff=26960"/>
		<updated>2020-02-01T11:15:05Z</updated>

		<summary type="html">&lt;p&gt;LB: Fix code formating errors, add syntax highlighting for perl.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you would like to alleviate the need to constantly log in every time you close your browser, you can make the sessions persistent by modifying the cookie set to record the session ID. In the file Elements/[[SetupSessionCookie]] modify this code (near the bottom):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot; line=&#039;line&#039;&amp;gt;&lt;br /&gt;
 if ( !$cookies{$cookiename} ) {&lt;br /&gt;
     my $cookie = new CGI::Cookie(&lt;br /&gt;
         -name   =&amp;gt; $cookiename,&lt;br /&gt;
         -value  =&amp;gt; $session{_session_id},&lt;br /&gt;
         -path   =&amp;gt; $RT::WebPath,&lt;br /&gt;
         -secure =&amp;gt; ($RT::WebSecureCookies ? 1 :0),&lt;br /&gt;
     );&lt;br /&gt;
     $r-&amp;gt;headers_out-&amp;gt;{&#039;Set-Cookie&#039;} = $cookie-&amp;gt;as_string;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
to add an &#039;expires&#039; key:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot; line=&#039;line&#039;&amp;gt;&lt;br /&gt;
 if ( !$cookies{$cookiename} ) {&lt;br /&gt;
     my $cookie = new CGI::Cookie(&lt;br /&gt;
         -name    =&amp;gt; $cookiename,&lt;br /&gt;
         -value   =&amp;gt; $session{_session_id},&lt;br /&gt;
         -path    =&amp;gt; $RT::WebPath,&lt;br /&gt;
         -secure  =&amp;gt; ($RT::WebSecureCookies ? 1 :0),&lt;br /&gt;
         -expires =&amp;gt; &#039;+1M&#039;,&lt;br /&gt;
     );&lt;br /&gt;
     $r-&amp;gt;headers_out-&amp;gt;{&#039;Set-Cookie&#039;} = $cookie-&amp;gt;as_string;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This particular setting makes the session good for one month. You can find out what time values are valid by looking at the CGI.pm documentation: [http://search.cpan.org/~lds/CGI.pm-3.25/CGI.pm#CREATING_A_STANDARD_HTTP_HEADER: http://search.cpan.org/~lds/CGI.pm-3.25/CGI.pm#CREATING_A_STANDARD_HTTP_HEADER%3A]&lt;br /&gt;
&lt;br /&gt;
Be sure to look at the following two articles to help clean up your old sessions (a good idea, evidently, whether or not you&#039;re planning on using this patch):&lt;br /&gt;
&lt;br /&gt;
* RT 3.8.8&lt;br /&gt;
&lt;br /&gt;
For RT 3.8.8 version you need to edit the file $RTHOME/lib/RT/Interface/Web.pm. Look for the &amp;quot;sub [[SendSessionCookie]]&amp;quot; function and add the &#039;&#039;&#039;-expires&#039;&#039;&#039; key as stated above.&lt;br /&gt;
&lt;br /&gt;
* [[CleanupSessions]]&lt;br /&gt;
&lt;br /&gt;
Tested on 3.8.7, file to modify is : /usr/share/request-tracker3.8/lib/RT/Interface/Web.pm (on a Debian/squeeze). -- jissouille&lt;br /&gt;
&lt;br /&gt;
This was tested on RT 3.6.3, but I&#039;m sure it would apply to most versions. -- [[JoeCasadonte]] I&#039;m sure this should work for any version greater than 3.0.0 --[[RuslanZakirov]]&lt;/div&gt;</summary>
		<author><name>LB</name></author>
	</entry>
	<entry>
		<id>https://rt-wiki.bestpractical.com/index.php?title=ShowStatusInColor&amp;diff=26576</id>
		<title>ShowStatusInColor</title>
		<link rel="alternate" type="text/html" href="https://rt-wiki.bestpractical.com/index.php?title=ShowStatusInColor&amp;diff=26576"/>
		<updated>2018-04-23T18:34:15Z</updated>

		<summary type="html">&lt;p&gt;LB: Fix: Correct directory path display without wiki links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Colorize ticket links based on status or, as in one example below, by priority.&lt;br /&gt;
&lt;br /&gt;
== RT 3.8.2 ==&lt;br /&gt;
&lt;br /&gt;
=== Simple ===&lt;br /&gt;
&lt;br /&gt;
Below is a modified local/html/Elements/ShowLink. It will display inter-ticket links colored to match the status of the ticket with the same color scheme used in graphs, via inline CSS. --Jerrad&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;&amp;amp;lt;a href=&amp;quot;&amp;amp;lt;%$URI-&amp;amp;gt;Resolver-&amp;amp;gt;HREF%&amp;amp;gt;&amp;quot;&amp;amp;gt;&lt;br /&gt;
   % if ($URI-&amp;amp;gt;IsLocal) {&lt;br /&gt;
   % my $member = $URI-&amp;amp;gt;Object;&lt;br /&gt;
   % if (UNIVERSAL::isa($member, &amp;quot;RT::Ticket&amp;quot;)) {&lt;br /&gt;
   &lt;br /&gt;
   #Customization&lt;br /&gt;
   &amp;amp;lt;%perl&amp;amp;gt;&lt;br /&gt;
   require RT::Graph::Tickets;&lt;br /&gt;
   my $status = $member-&amp;amp;gt;Status;&lt;br /&gt;
   my $class  = $member-&amp;amp;gt;QueueObj-&amp;amp;gt;IsInactiveStatus($status)?&#039;ticket-inactive&#039;:&#039;&#039;;&lt;br /&gt;
   my $color  = $RT::Graph::Tickets::ticket_status_style{$status}-&amp;amp;gt;{&#039;fontcolor&#039;};&lt;br /&gt;
   &amp;amp;lt;/%perl&amp;amp;gt;&lt;br /&gt;
   &amp;amp;lt;span class=&amp;quot;&amp;amp;lt;% $class %&amp;amp;gt;&amp;quot; style=&amp;quot;color: &amp;amp;lt;% $color %&amp;amp;gt;&amp;quot;&amp;amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   &amp;amp;lt;%$member-&amp;amp;gt;Id%&amp;amp;gt;: (&amp;amp;lt;%$member-&amp;amp;gt;OwnerObj-&amp;amp;gt;Name%&amp;amp;gt;) &amp;amp;lt;%$member-&amp;amp;gt;Subject%&amp;amp;gt; [&amp;amp;lt;% loc($member-&amp;amp;gt;Status) %&amp;amp;gt;]&lt;br /&gt;
   &amp;amp;lt;/span&amp;amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   % } elsif ( UNIVERSAL::can($member, &#039;Name&#039;)) {&lt;br /&gt;
   &amp;amp;lt;%$URI-&amp;amp;gt;Resolver-&amp;amp;gt;AsString%&amp;amp;gt;: &amp;amp;lt;%$member-&amp;amp;gt;Name%&amp;amp;gt;&lt;br /&gt;
   % } else {&lt;br /&gt;
   &amp;amp;lt;%$URI-&amp;amp;gt;Resolver-&amp;amp;gt;AsString%&amp;amp;gt;&lt;br /&gt;
   % }&lt;br /&gt;
   % } else {&lt;br /&gt;
   &amp;amp;lt;%$URI-&amp;amp;gt;Resolver-&amp;amp;gt;AsString%&amp;amp;gt;&lt;br /&gt;
   % }&lt;br /&gt;
   &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
   &amp;amp;lt;%ARGS&amp;amp;gt;&lt;br /&gt;
   $URI =&amp;amp;gt; undef&lt;br /&gt;
   &amp;amp;lt;/%ARGS&amp;amp;gt;&lt;br /&gt;
   &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Full-featured ===&lt;br /&gt;
&lt;br /&gt;
by Dan Cook, updated with CSS callback dox by Matt Zagrabelny&lt;br /&gt;
&lt;br /&gt;
This is how I&#039;ve set things up. I have shamelessly robbed most of this from the posts above (Thanks Guys!).&lt;br /&gt;
&lt;br /&gt;
(And Baylink, in turn, moved it to the top; if you&#039;re running older code, read on down. In particular, I modified the Colored-Priority code to use inline styles and reverse out the color into the background a bit further down.)&lt;br /&gt;
&lt;br /&gt;
* Create the directory: `&amp;lt;RTInstallationDir&amp;gt;/local/html/Callbacks/MyCallbacks/Elements/RT__Ticket/ColumnMap`&lt;br /&gt;
&lt;br /&gt;
You can do that, in Linux, by typing&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# mkdir -p local/html/Callbacks/MyCallbacks/Elements/RT__Ticket/ColumnMap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
from your RT installation directory, which is /opt/rt3 unless someone built it differently.&lt;br /&gt;
&lt;br /&gt;
* Note: There are &#039;&#039;&#039;2 underscores&#039;&#039;&#039; between RT and Ticket&lt;br /&gt;
&lt;br /&gt;
Then you can&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# cd local/html/Callbacks/MyCallbacks/Elements/RT__Ticket/ColumnMap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to create the file, which is &#039;&#039;&#039;also named&#039;&#039;&#039; [[ColumnMap]], and should contain this:&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
8&amp;amp;lt;-----------------------------8&amp;amp;lt;----------&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;amp;lt;%INIT&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 sub statusInColor {&lt;br /&gt;
    my $Ticket = shift;&lt;br /&gt;
    my $status = $Ticket-&amp;amp;gt;Status;&lt;br /&gt;
    my $css = &amp;quot;status&amp;quot; . lc $status;&lt;br /&gt;
    my $LastUpdater = $Ticket-&amp;amp;gt;LastUpdatedByObj-&amp;amp;gt;EmailAddress;&lt;br /&gt;
    my $TicketRequestors = $Ticket-&amp;amp;gt;Requestors-&amp;amp;gt;MemberEmailAddressesAsString;&lt;br /&gt;
    my $TicketCC = $Ticket-&amp;amp;gt;Cc-&amp;amp;gt;MemberEmailAddressesAsString;&lt;br /&gt;
 &lt;br /&gt;
    if (($TicketRequestors =~ $LastUpdater) || ($TicketCC =~ $LastUpdater))&lt;br /&gt;
    {&lt;br /&gt;
        $css = &amp;quot;status&amp;quot; . lc &amp;quot;reply&amp;quot;;&lt;br /&gt;
        $status = &amp;quot;&amp;amp;lt;div class=\&amp;quot;$css\&amp;quot;&amp;amp;gt;$status REP&amp;amp;lt;/div&amp;amp;gt;&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
        $status = &amp;quot;&amp;amp;lt;div class=\&amp;quot;$css\&amp;quot;&amp;amp;gt;$status&amp;amp;lt;/div&amp;amp;gt;&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    return \&amp;quot;$status&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 $COLUMN_MAP-&amp;amp;gt;{Status}-&amp;amp;gt;{value} = \&amp;amp;amp;statusInColor;&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;/%INIT&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;%ARGS&amp;amp;gt;&lt;br /&gt;
 $COLUMN_MAP =&amp;amp;gt; undef&lt;br /&gt;
 &amp;amp;lt;/%ARGS&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
8&amp;amp;lt;-----------------------------8&amp;amp;lt;----------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Onto the next part...&lt;br /&gt;
* RT 3.8 and up use a different CSS theme. Web2 is the default theme.&lt;br /&gt;
* If you use other themes you will need to do the following steps for each theme you use.&lt;br /&gt;
* Create the directory: &amp;lt;RTInstallationDir&amp;gt;/local/html/Callbacks/&amp;lt;SiteCallbacks&amp;gt;/NoAuth/css/web2/main.css`&lt;br /&gt;
* Create the file: `&amp;lt;RTInstallationDir&amp;gt;/local/html/Callbacks/&amp;lt;SiteCallbacks&amp;gt;/NoAuth/css/web2/main.css/End`&lt;br /&gt;
&lt;br /&gt;
And in that file, put:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@import &amp;quot;statuscolor.css&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
* In the directory just created `&amp;lt;RTInstallationDir&amp;gt;/local/html/NoAuth/css/web2` you will need to create a new file.&lt;br /&gt;
* Name the file statuscolor.css and place the following content in it.&lt;br /&gt;
&lt;br /&gt;
 /* Status Colours */&lt;br /&gt;
 &lt;br /&gt;
 .statusnew {&lt;br /&gt;
  color: #bb0000;&lt;br /&gt;
  text-align: left;&lt;br /&gt;
  font-weight: bold;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .statusopen {&lt;br /&gt;
  color: #0000bb;&lt;br /&gt;
  text-align: left;&lt;br /&gt;
  font-weight: bold;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .statusreply {&lt;br /&gt;
  color: #00bb00;&lt;br /&gt;
  text-align: left;&lt;br /&gt;
  font-weight: bold;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .statusresolved {&lt;br /&gt;
  color: #888888;&lt;br /&gt;
  text-align: left;&lt;br /&gt;
  font-weight: bold;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .statusrejected {&lt;br /&gt;
  color: #884444;&lt;br /&gt;
  text-align: left;&lt;br /&gt;
  font-weight: bold;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Don&#039;t forget to clear your Mason cache (apache restart, unless you&#039;ve enabled $[[DevelMode]] in [[RT SiteConfig|RT_SiteConfig]].pm) and perform a &amp;quot;hard&amp;quot; refresh in your browser (Shift + Ctrl + R) to clear your local CSS cache.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So basically what you will get from the above is the status&#039; listed in the statuscolor.css file will be colored. You may edit the statuscolor.css file to suit your needs. Just make sure you follow the convention of the file format i.e. to color status stalled you would use something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.statusstalled {&lt;br /&gt;
&lt;br /&gt;
 color: #884422;&lt;br /&gt;
 text-align: left;&lt;br /&gt;
 font-weight: bold;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and so on so forth. Next thing to note is that along with coloring the status this also puts an REP flag next to any tickets where the last reply is by the requestor or cc (i.e. not the staff) (Thanks Johan Baarman !)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== RT 3.8.x/4.0.x ==&lt;br /&gt;
&lt;br /&gt;
==== Full featured ColumnMap script ====&lt;br /&gt;
&lt;br /&gt;
by Alex Young&lt;br /&gt;
&lt;br /&gt;
Confirmed working with 3.8.2, 3.8.6, 3.8.8.&lt;br /&gt;
&lt;br /&gt;
Confirmed working with 4.0.x, but ColumnMap file is renamed to Once, and web2 location is changed to aileron.&lt;br /&gt;
&lt;br /&gt;
I have combined the scripts on this wiki page to work in 3.8.x/4.0.x, so thanks to all the people that did all the hard work! Only the [[ColumnMap]] file is different from the other guides on this page.&lt;br /&gt;
&lt;br /&gt;
Changes from the other scripts&lt;br /&gt;
&lt;br /&gt;
* Changes REP flag to New Reply.&lt;br /&gt;
* Doesn&#039;t display New Reply when the current user is the last to comment.&lt;br /&gt;
* New Reply tag is displayed in its own colour, while keeping the default status colours.&lt;br /&gt;
* New Reply tag links to the last unread message and can mark the messages as read.&lt;br /&gt;
* New Reply tag isn&#039;t displayed if there are no unread messages.&lt;br /&gt;
* Changed colours for Priorities. Removed light colours that prevented the text from being easily read on a white background.&lt;br /&gt;
* Updated Extended Status code to display number of pending tickets.&lt;br /&gt;
&lt;br /&gt;
This uses a similar statuscolor.css file found elsewhere on this page. Follow those instructions for setup, or use the following contents.&lt;br /&gt;
&lt;br /&gt;
 /* Status Colours */&lt;br /&gt;
 &lt;br /&gt;
 .statusnew { color: #bb0000; text-align: left; font-weight: bold;} &lt;br /&gt;
 .statusopen { color: #0000bb; text-align: left; font-weight: bold;}&lt;br /&gt;
 .statusreply { color: #009900; text-align: left; font-weight: bold;}&lt;br /&gt;
 .statusresolved { color: #737373; text-align: left; font-weight: bold;} &lt;br /&gt;
 .statusrejected { color: #884444; text-align: left; font-weight: bold;}&lt;br /&gt;
 .statusstalled { color: #884444; text-align: left; font-weight: bold;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The files should map to your system like so:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;RTInstallationDir&amp;amp;gt;/local/html/&lt;br /&gt;
 `-- Callbacks&lt;br /&gt;
     `-- MyCallbacks&lt;br /&gt;
         |-- Elements&lt;br /&gt;
         |   `-- RT__Ticket&lt;br /&gt;
         |       `-- ColumnMap&lt;br /&gt;
         |           `-- ColumnMap|Once&lt;br /&gt;
         `-- NoAuth&lt;br /&gt;
             `-- css&lt;br /&gt;
                 `-- web2|aileron&lt;br /&gt;
                     `-- main.css&lt;br /&gt;
                         `-- End&lt;br /&gt;
 &amp;amp;lt;RTInstallationDir&amp;amp;gt;/local/html/&lt;br /&gt;
 `-- NoAuth/&lt;br /&gt;
     `-- css&lt;br /&gt;
         `-- web2|aileron&lt;br /&gt;
             `-- statuscolor.css&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here&#039;s the complete `&amp;lt;RTInstallationDir&amp;gt;/local/html/Callbacks/MyCallbacks/Elements/RT__Ticket/ColumnMap/ColumnMap` script.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;&amp;amp;lt;%INIT&amp;amp;gt;&lt;br /&gt;
      &lt;br /&gt;
      # Show status in colour.&lt;br /&gt;
      sub statusInColor {&lt;br /&gt;
      	my $Ticket = shift;&lt;br /&gt;
      	my $status = $Ticket-&amp;amp;gt;Status;&lt;br /&gt;
      	my $css = &amp;quot;status&amp;quot; . lc $status;&lt;br /&gt;
      	my $cssreply = &amp;quot;status&amp;quot; . lc &amp;quot;reply&amp;quot;;&lt;br /&gt;
      	my $LastUpdater = $Ticket-&amp;amp;gt;LastUpdatedByObj-&amp;amp;gt;EmailAddress;&lt;br /&gt;
      	my $TicketRequestors = $Ticket-&amp;amp;gt;Requestors-&amp;amp;gt;MemberEmailAddressesAsString;&lt;br /&gt;
      	my $TicketCC = $Ticket-&amp;amp;gt;Cc-&amp;amp;gt;MemberEmailAddressesAsString;&lt;br /&gt;
      	my $CurrentUser = $session{&#039;CurrentUser&#039;}-&amp;amp;gt;EmailAddress;&lt;br /&gt;
      &lt;br /&gt;
      # Added $CurentUser ne $LastUpdater to prevent showing New Reply tag when the last updater is the current user.&lt;br /&gt;
      	if (($CurrentUser ne $LastUpdater) &amp;amp;amp;&amp;amp;amp; ($TicketRequestors =~ $LastUpdater) || ($TicketCC =~ $LastUpdater))&lt;br /&gt;
      	{&lt;br /&gt;
      		my $txn = $Ticket-&amp;amp;gt;SeenUpTo or return \&amp;quot;&amp;amp;lt;div class=\&amp;quot;$css\&amp;quot;&amp;amp;gt;$status&amp;amp;lt;/div&amp;amp;gt;&amp;quot;;&lt;br /&gt;
      #       my $TicketLink = RT-&amp;amp;gt;Config-&amp;amp;gt;Get(&#039;WebPath&#039;) .&amp;quot;/Ticket/Display.html?id=&amp;quot;. $Ticket-&amp;amp;gt;id. &amp;quot;#txn-&amp;quot;.$txn-&amp;amp;gt;id;&lt;br /&gt;
      # Comment out the line above and uncomment the following line to mark posts as seen when following link.&lt;br /&gt;
      		my $TicketLink = RT-&amp;amp;gt;Config-&amp;amp;gt;Get(&#039;WebPath&#039;) .&amp;quot;/Ticket/Display.html?id=&amp;quot;. $Ticket-&amp;amp;gt;id .&amp;quot;&amp;amp;amp;MarkAsSeen=1&amp;quot;.  &amp;quot;#txn-&amp;quot;.$txn-&amp;amp;gt;id;&lt;br /&gt;
      		$status = &amp;quot;&amp;amp;lt;div class=\&amp;quot;$css\&amp;quot;&amp;amp;gt;$status &amp;amp;lt;a href=\&amp;quot;$TicketLink\&amp;quot;&amp;amp;gt;&amp;amp;lt;span class=\&amp;quot;$cssreply\&amp;quot;&amp;amp;gt;New Reply&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;/a&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;quot;;&lt;br /&gt;
      	}&lt;br /&gt;
      	else {&lt;br /&gt;
      		$status = &amp;quot;&amp;amp;lt;div class=\&amp;quot;$css\&amp;quot;&amp;amp;gt;$status&amp;amp;lt;/div&amp;amp;gt;&amp;quot;;&lt;br /&gt;
      	}&lt;br /&gt;
      &lt;br /&gt;
      	return \&amp;quot;$status&amp;quot;;&lt;br /&gt;
      &lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      # Show extended status in colour. This will change the front page and other search pages where the ExtendedStatus is displayed.&lt;br /&gt;
      sub extStatusInColor {&lt;br /&gt;
      	my $Ticket = shift;&lt;br /&gt;
      	if ( my $count = $Ticket-&amp;amp;gt;HasUnresolvedDependencies ) {&lt;br /&gt;
      		my $status;&lt;br /&gt;
      &lt;br /&gt;
      		if ( $Ticket-&amp;amp;gt;HasUnresolvedDependencies( Type =&amp;amp;gt; &#039;approval&#039; )&lt;br /&gt;
      				or $Ticket-&amp;amp;gt;HasUnresolvedDependencies( Type =&amp;amp;gt; &#039;code&#039; ) ) {&lt;br /&gt;
      			$status = &amp;quot;&amp;amp;lt;em&amp;amp;gt;&amp;quot; . loc(&#039;(pending approval)&#039;) . &amp;quot;&amp;amp;lt;/em&amp;amp;gt;&amp;quot;;&lt;br /&gt;
      		} else {&lt;br /&gt;
      			$status = &amp;quot;&amp;amp;lt;em&amp;amp;gt;&amp;quot; . loc(&#039;(pending [quant,_1,other ticket])&#039;,$count) . &amp;quot;&amp;amp;lt;/em&amp;amp;gt;&amp;quot;;&lt;br /&gt;
      			}&lt;br /&gt;
      		return \$status;&lt;br /&gt;
      	} else {&lt;br /&gt;
      		return statusInColor($Ticket);&lt;br /&gt;
      &lt;br /&gt;
      	}&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      # Set the priority numbers to a colour.&lt;br /&gt;
      sub PriorityInColor {&lt;br /&gt;
      	my $Ticket = shift;&lt;br /&gt;
      &lt;br /&gt;
      	my $priority = $Ticket-&amp;amp;gt;Priority;&lt;br /&gt;
      	my $colors = undef;&lt;br /&gt;
      &lt;br /&gt;
      # Change priority numbers to reflect your priority system.&lt;br /&gt;
      	if ($priority &amp;amp;gt;= &#039;50&#039;) {&lt;br /&gt;
      		$colors = &amp;quot;#FF0000&amp;quot;;&lt;br /&gt;
      	} elsif ($priority &amp;amp;gt;= &#039;45&#039;) {&lt;br /&gt;
      		$colors = &amp;quot;#FF2000&amp;quot;;&lt;br /&gt;
      	} elsif ($priority &amp;amp;gt;= &#039;40&#039;) {&lt;br /&gt;
      		$colors = &amp;quot;#FF4000&amp;quot;;&lt;br /&gt;
      	} elsif ($priority &amp;amp;gt;= &#039;35&#039;) {&lt;br /&gt;
      		$colors = &amp;quot;#FF6A00&amp;quot;;&lt;br /&gt;
      	} elsif ($priority &amp;amp;gt;= &#039;30&#039;) {&lt;br /&gt;
      		$colors = &amp;quot;#FF6600&amp;quot;;&lt;br /&gt;
      	} elsif ($priority &amp;amp;gt;= &#039;25&#039;) {&lt;br /&gt;
      		$colors = &amp;quot;#FFA000&amp;quot;;&lt;br /&gt;
      	} elsif ($priority &amp;amp;gt;= &#039;20&#039;) {&lt;br /&gt;
      		$colors = &amp;quot;#0033CC&amp;quot;;&lt;br /&gt;
      	} elsif ($priority &amp;amp;gt;= &#039;15&#039;) {&lt;br /&gt;
      		$colors = &amp;quot;#809FFE&amp;quot;;&lt;br /&gt;
      	} elsif ($priority &amp;amp;gt;= &#039;10&#039;) {&lt;br /&gt;
      		$colors = &amp;quot;#004600&amp;quot;;&lt;br /&gt;
      	} elsif ($priority &amp;amp;gt;= &#039;5&#039;) {&lt;br /&gt;
      		$colors = &amp;quot;#006400&amp;quot;;&lt;br /&gt;
      	} elsif ($priority &amp;amp;gt;= &#039;0&#039;) {&lt;br /&gt;
      		$colors = &amp;quot;#009000&amp;quot;;&lt;br /&gt;
      	}&lt;br /&gt;
      &lt;br /&gt;
      	if ($colors) {&lt;br /&gt;
      		$priority = &amp;quot;&amp;amp;lt;div style=\&amp;quot;color: $colors;\&amp;quot;&amp;amp;gt;$priority&amp;amp;lt;/div&amp;amp;gt;&amp;quot;&lt;br /&gt;
      	}&lt;br /&gt;
      &lt;br /&gt;
      		return \&amp;quot;&amp;amp;lt;b&amp;amp;gt;$priority&amp;amp;lt;/b&amp;amp;gt;&amp;quot;;&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      # Comment out any line to disable colour change.&lt;br /&gt;
      $COLUMN_MAP-&amp;amp;gt;{Priority}-&amp;amp;gt;{value} = \&amp;amp;amp;PriorityInColor;&lt;br /&gt;
      $COLUMN_MAP-&amp;amp;gt;{Status}-&amp;amp;gt;{value} = \&amp;amp;amp;statusInColor;&lt;br /&gt;
      $COLUMN_MAP-&amp;amp;gt;{ExtendedStatus}-&amp;amp;gt;{value} = \&amp;amp;amp;extStatusInColor;&lt;br /&gt;
      &lt;br /&gt;
      &amp;amp;lt;/%INIT&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;%ARGS&amp;amp;gt;&lt;br /&gt;
      $COLUMN_MAP =&amp;amp;gt; undef&lt;br /&gt;
      &amp;amp;lt;/%ARGS&amp;amp;gt;&lt;br /&gt;
      &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Earlier forms ===&lt;br /&gt;
&lt;br /&gt;
* Tested and works in RT 3.2.x&lt;br /&gt;
* Results in a a reference error in 3.2.2&lt;br /&gt;
* Error in 3.4.1 - http://lists.bestpractical.com/pipermail/rt-users/2005-May/030943.html&lt;br /&gt;
* Works in 3.4.2, small change needed - http://lists.bestpractical.com/pipermail/rt-users/2005-August/033080.html&lt;br /&gt;
* Works in 3.6.1, added localization support (2007/5/11)&lt;br /&gt;
* Changes for 3.6.5, see below (2008/2/5)&lt;br /&gt;
* Working as below in 3.8.2 - 2009-Feb-12 Baylink&lt;br /&gt;
&lt;br /&gt;
(Baylink reads further down... wow. Everyone else already did this. :-)&lt;br /&gt;
&lt;br /&gt;
Simply do the following:&lt;br /&gt;
&lt;br /&gt;
* Create the directory: `&amp;lt;RTInstallationDir&amp;gt;/local/html/Callbacks/MyCallbacks/Elements/RT__Ticket/ColumnMap`&lt;br /&gt;
* Put the contents of the following file into the file: `&amp;lt;RTInstallationDir&amp;gt;/local/html/Callbacks/MyCallbacks]]/Elements/RT__Ticket/ColumnMap/ColumnMap`&lt;br /&gt;
&lt;br /&gt;
Note: in debian the right path is `/usr/local/share/request-tracker3.6/html/Callbacks/MyCallbacks/Elements/RT__Ticket/ColumnMap/ColumnMap`&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;amp;lt;%INIT&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 sub statusInColor {&lt;br /&gt;
    my $Ticket = shift;&lt;br /&gt;
    my $status = $Ticket-&amp;amp;gt;Status;&lt;br /&gt;
    my $color = undef;&lt;br /&gt;
 &lt;br /&gt;
    if ($status eq &#039;new&#039;) {&lt;br /&gt;
        $color = &amp;quot;900000&amp;quot;;&lt;br /&gt;
    } elsif ($status eq &#039;open&#039;) {&lt;br /&gt;
        $color = &amp;quot;#AA8000&amp;quot;;&lt;br /&gt;
    } elsif ($status eq &#039;stalled&#039;) {&lt;br /&gt;
        $color = &amp;quot;#000090&amp;quot;;&lt;br /&gt;
    } elsif ($status eq &#039;rejected&#039;) {&lt;br /&gt;
        $color = &amp;quot;#999999&amp;quot;;&lt;br /&gt;
    } elsif ($status eq &#039;resolved&#039;) {&lt;br /&gt;
        $color = &amp;quot;009000&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    $status = loc($status);&lt;br /&gt;
 &lt;br /&gt;
    if ( $Ticket-&amp;amp;gt;HasUnresolvedDependencies ) {&lt;br /&gt;
        $status = &amp;quot;&amp;amp;lt;i&amp;amp;gt;$status&amp;amp;lt;i&amp;amp;gt;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    if ($color) {&lt;br /&gt;
        $status = &amp;quot;&amp;amp;lt;font color=$color&amp;amp;gt;$status&amp;amp;lt;/font&amp;amp;gt;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    return \&amp;quot;&amp;amp;lt;b&amp;amp;gt;$status&amp;amp;lt;/b&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 sub extStatusInColor {&lt;br /&gt;
    my $Ticket = shift;&lt;br /&gt;
 &lt;br /&gt;
    if ( $Ticket-&amp;amp;gt;HasUnresolvedDependencies ) {&lt;br /&gt;
        my $status;&lt;br /&gt;
        if ( $Ticket-&amp;amp;gt;HasUnresolvedDependencies( Type =&amp;amp;gt; &#039;approval&#039; )&lt;br /&gt;
             or $Ticket-&amp;amp;gt;HasUnresolvedDependencies( Type =&amp;amp;gt; &#039;code&#039; ) ) {&lt;br /&gt;
            $status = &amp;quot;&amp;amp;lt;em&amp;amp;gt;&amp;quot; . loc(&#039;(pending approval)&#039;) . &amp;quot;&amp;amp;lt;/em&amp;amp;gt;&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            $status = &amp;quot;&amp;amp;lt;em&amp;amp;gt;&amp;quot; . loc(&#039;(pending other Collection)&#039;) . &amp;quot;&amp;amp;lt;/em&amp;amp;gt;&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        return \$status;&lt;br /&gt;
    } else {&lt;br /&gt;
        return statusInColor($Ticket);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 $COLUMN_MAP-&amp;amp;gt;{Status}-&amp;amp;gt;{value} = \&amp;amp;amp;statusInColor;&lt;br /&gt;
 $COLUMN_MAP-&amp;amp;gt;{ExtendedStatus}-&amp;amp;gt;{value} = \&amp;amp;amp;extStatusInColor;&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;/%INIT&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;%ARGS&amp;amp;gt;&lt;br /&gt;
 $COLUMN_MAP =&amp;amp;gt; undef&lt;br /&gt;
 &amp;amp;lt;/%ARGS&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Priority color =====&lt;br /&gt;
&lt;br /&gt;
by Riccardo Capecchi&lt;br /&gt;
&lt;br /&gt;
My users wanted also the priority coloured in shade of red and yellow based on priority (red = big problem), i used the above code and added these lines to show a coloured field priority. You must add these lines with or without the above code into the file: `&amp;lt;RTInstallationDir&amp;gt;/local/html/Callbacks/MyCallbacks/Elements/RT__Ticket/ColumnMap/ColumnMap`&lt;br /&gt;
&lt;br /&gt;
edit: $priority is an integer, not a string. I&#039;ve used &amp;amp;gt;= operator instead of ge operator.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 sub PriorityInColor {&lt;br /&gt;
   my $Ticket = shift;&lt;br /&gt;
 &lt;br /&gt;
   my $priority = $Ticket-&amp;amp;gt;Priority;&lt;br /&gt;
   my $colors = undef;&lt;br /&gt;
 &lt;br /&gt;
   if ($priority &amp;amp;gt;= 90) {&lt;br /&gt;
       $colors = &amp;quot;#FF0000&amp;quot;;&lt;br /&gt;
   } elsif ($priority &amp;amp;gt;= 80) {&lt;br /&gt;
       $colors = &amp;quot;#FF2000&amp;quot;;&lt;br /&gt;
   } elsif ($priority &amp;amp;gt;= 70) {&lt;br /&gt;
       $colors = &amp;quot;#FF4000&amp;quot;;&lt;br /&gt;
   } elsif ($priority &amp;amp;gt;= 60) {&lt;br /&gt;
       $colors = &amp;quot;#FF6000&amp;quot;;&lt;br /&gt;
   } elsif ($priority &amp;amp;gt;= 50) {&lt;br /&gt;
       $colors = &amp;quot;#FF8000&amp;quot;;&lt;br /&gt;
   } elsif ($priority &amp;amp;gt;= 40) {&lt;br /&gt;
       $colors = &amp;quot;#FFA000&amp;quot;;&lt;br /&gt;
   } elsif ($priority &amp;amp;gt;= 30) {&lt;br /&gt;
       $colors = &amp;quot;#FFC000&amp;quot;;&lt;br /&gt;
   } elsif ($priority &amp;amp;gt;= 20) {&lt;br /&gt;
       $colors = &amp;quot;#FFE000&amp;quot;;&lt;br /&gt;
   } elsif ($priority &amp;amp;gt;= 10) {&lt;br /&gt;
       $colors = &amp;quot;#FFFF00&amp;quot;;&lt;br /&gt;
   } elsif ($priority &amp;amp;gt;= 0) {&lt;br /&gt;
       $colors = &amp;quot;009000&amp;quot;;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   if ($colors) {&lt;br /&gt;
       $priority = &amp;quot;&amp;amp;lt;font style=\&amp;quot;color:black;background-color:$colors\&amp;quot;&amp;amp;gt;&amp;amp;amp;nbsp;$priority&amp;amp;amp;nbsp;&amp;amp;lt;/font&amp;amp;gt;&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   return \&amp;quot;&amp;amp;lt;b&amp;amp;gt;$priority&amp;amp;lt;/b&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
 $COLUMN_MAP-&amp;amp;gt;{Priority}-&amp;amp;gt;{value} = \&amp;amp;amp;PriorityInColor;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(This one also works in 3.8.2 as of 2009-Feb-12; I&#039;ve modified it slightly to colorize the &#039;&#039;&#039;background&#039;&#039;&#039;, and also to use inline CSS instead of deprecated tags. If you use both, put this one &#039;&#039;&#039;inside&#039;&#039;&#039; the other one&#039;s %INIT tags. --Baylink)&lt;br /&gt;
&lt;br /&gt;
==== Using CSS For Styling ====&lt;br /&gt;
&lt;br /&gt;
by Graham Briggs&lt;br /&gt;
&lt;br /&gt;
As an alternative to the above, you might choose to use CSS to define styling of the Status field. I have the following setup:&lt;br /&gt;
&lt;br /&gt;
In file `$RT_HOME/local/html/Callbacks/MyCallbacks/Elements/RT__Ticket/ColumnMap/ColumnMap` replace the above status[[InColor]] method with the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 sub statusInColor {&lt;br /&gt;
    my $Ticket = shift;&lt;br /&gt;
    my $status = $Ticket-&amp;amp;gt;Status;&lt;br /&gt;
    my $css = &amp;quot;status&amp;quot; . lc $status;&lt;br /&gt;
    $css =~ s/[\W]//g;&lt;br /&gt;
 &lt;br /&gt;
    if ( $Ticket-&amp;amp;gt;HasUnresolvedDependencies ) {&lt;br /&gt;
        $status = &amp;quot;&amp;amp;lt;i&amp;amp;gt;$status&amp;amp;lt;i&amp;amp;gt;&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    $status = &amp;quot;&amp;amp;lt;div class=\&amp;quot;$css\&amp;quot;&amp;amp;gt;$status&amp;amp;lt;/div&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
    return \&amp;quot;$status&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In file `$RT_HOME/local/html/Callbacks/MyCallbacks/NoAuth/webrt.css/Default`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 /* Status Colours */&lt;br /&gt;
 &lt;br /&gt;
 .statusnew {&lt;br /&gt;
   color: #bb0000;&lt;br /&gt;
   text-align: center;&lt;br /&gt;
   font-weight: bold;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .statusopen {&lt;br /&gt;
   color: #0000bb;&lt;br /&gt;
   text-align: center;&lt;br /&gt;
   font-weight: bold;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .statustesting {&lt;br /&gt;
   color: #00bb00;&lt;br /&gt;
   text-align: center;&lt;br /&gt;
   font-weight: bold;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .statusresolved {&lt;br /&gt;
   color: #888888;&lt;br /&gt;
   text-align: center;&lt;br /&gt;
   font-weight: bold;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .statusrejected {&lt;br /&gt;
   color: #884444;&lt;br /&gt;
   text-align: center;&lt;br /&gt;
   font-weight: bold;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RT 3.6.5 (and up?) ==&lt;br /&gt;
&lt;br /&gt;
Thanks Johan Baarman for the solution.&lt;br /&gt;
&lt;br /&gt;
The problem with newer version is that the CSS file is not read from the directory mentioned above. Follow the steps below to solve it:&lt;br /&gt;
&lt;br /&gt;
Create a directory `$RT_HOME/local/html/NoAuth/css/3.5-default/` and copy `$RT_HOME/share/html/NoAuth/css/3.5-default/main.css` to it. Now edit the local main.css file and add the following line at the end: import &amp;quot;statuscolor.css&amp;quot;; Create a new local file `$RT_HOME/local/html/NoAuth/css/3.5-default/statuscolor.css` and populate it with the above css tags. I&#039;ve also changed the .statustesting above to .statusreply in my statuscolor.css file in order to color replies.&lt;br /&gt;
&lt;br /&gt;
In addition to coloring the status, the following alternative status[[InColor]] function will set a &amp;quot;REP&amp;quot; flag for each status to indicate a ticket that had been updated by anyone else than the staff, i.e. requestor or any of the [[CCs]], in case any of the users are colorblind.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 sub statusInColor {&lt;br /&gt;
    my $Ticket = shift;&lt;br /&gt;
    my $status = $Ticket-&amp;amp;gt;Status;&lt;br /&gt;
    my $css = &amp;quot;status&amp;quot; . lc $status;&lt;br /&gt;
    my $LastUpdater = $Ticket-&amp;amp;gt;LastUpdatedByObj-&amp;amp;gt;EmailAddress;&lt;br /&gt;
    my $TicketRequestors = $Ticket-&amp;amp;gt;Requestors-&amp;amp;gt;MemberEmailAddressesAsString;&lt;br /&gt;
    my $TicketCC = $Ticket-&amp;amp;gt;Cc-&amp;amp;gt;MemberEmailAddressesAsString;&lt;br /&gt;
 &lt;br /&gt;
    if (($TicketRequestors =~ $LastUpdater) || ($TicketCC =~ $LastUpdater))&lt;br /&gt;
    {&lt;br /&gt;
        $css = &amp;quot;status&amp;quot; . lc &amp;quot;reply&amp;quot;;&lt;br /&gt;
        $status = &amp;quot;&amp;amp;lt;div class=\&amp;quot;$css\&amp;quot;&amp;amp;gt;$status REP&amp;amp;lt;/div&amp;amp;gt;&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
        $status = &amp;quot;&amp;amp;lt;div class=\&amp;quot;$css\&amp;quot;&amp;amp;gt;$status&amp;amp;lt;/div&amp;amp;gt;&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    return \&amp;quot;$status&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>LB</name></author>
	</entry>
</feed>