Revision 337 (by dpavlin, 2004/06/10 19:22:40) new trunk for webpac v2
#
# reformat html inside xml back to html (basically, support for tables)
#
# filed #-# field ###
# ...

sub back2html {
	my $html = shift;

	$html =~ s/</&lt;/g;
	$html =~ s/>/&gt;/g;
	my $out;
	foreach $line (split(/\s*###\s*/,$html)) {
		$out .= "<tr><td valign=\"top\">";
		my @items = split(/\s*#-#\s*/,$line);
		# convert spaces in left field to non-breaking spaces
		$items[0] =~ s#\s+#&nbsp;#g;
		# try to make link on right field
		sub mkurl {
			my $url = shift || die "mkurl needs url as argument";
			# chop URLS longer than 60 characters
			my $txturl = substr($1,0,60);
			$txturl .= "..." if (length($1) > 60);
			return "<a href=\"$url\">$txturl</a>";
		}
		$items[1] =~ s#(http://[\S]+)#mkurl($1)#gie;
		$out .= join("</td><td>",@items);
		$out .= "</td></tr>\n";
	}
	# put <br> back into html
	$out =~ s,&lt;br/*&gt;,<br/>,gi;
	# put <a href=xxx>yyyy</a> back into html
	$out =~ s,&lt;(a\s+href=)(.+?)&gt;(.+?)&lt;(/a)&gt;,<$1$2>$3<$4>,gsi;
	return $out;
}

1;