Line # Revision Author
1 13 dpavlin #
2 # reformat html inside xml back to html (basically, support for tables)
3 #
4 # filed #-# field ###
5 # ...
6
7 sub back2html {
8 my $html = shift;
9 636 dpavlin my $url_params = shift;
10 13 dpavlin
11 80 dpavlin $html =~ s/</&lt;/g;
12 $html =~ s/>/&gt;/g;
13 13 dpavlin my $out;
14 79 dpavlin foreach $line (split(/\s*###\s*/,$html)) {
15 $out .= "<tr><td valign=\"top\">";
16 my @items = split(/\s*#-#\s*/,$line);
17 # convert spaces in left field to non-breaking spaces
18 $items[0] =~ s#\s+#&nbsp;#g;
19 # try to make link on right field
20 636 dpavlin sub mkurl($) {
21 146 dpavlin my $url = shift || die "mkurl needs url as argument";
22 66 dpavlin # chop URLS longer than 60 characters
23 146 dpavlin my $txturl = substr($1,0,60);
24 $txturl .= "..." if (length($1) > 60);
25 return "<a href=\"$url\">$txturl</a>";
26 66 dpavlin }
27 146 dpavlin $items[1] =~ s#(http://[\S]+)#mkurl($1)#gie;
28 13 dpavlin $out .= join("</td><td>",@items);
29 $out .= "</td></tr>\n";
30 }
31 151 dpavlin # put <br> back into html
32 $out =~ s,&lt;br/*&gt;,<br/>,gi;
33 # put <a href=xxx>yyyy</a> back into html
34 636 dpavlin sub mkurl_param($$$$) {
35 my ($a_href,$url,$text,$a_end) = @_;
36 638 dpavlin if ($url_params) {
37 if ($url =~ m#\?#) {
38 $url .= "&".$url_params;
39 } else {
40 $url .= "?".$url_params;
41 }
42 636 dpavlin }
43 return '<'.$a_href.'"'.$url.'">'.$text.'<'.$a_end.'>';
44 }
45 $out =~ s#&lt;(a\s+href=)['"]*(.+?)['"]*&gt;(.+?)&lt;(/a)&gt;#mkurl_param($1,$2,$3,$4)#gsie;
46 13 dpavlin return $out;
47 }
48
49 1;