1 #################################################################################################
2 #################################################################################################
3 #################################################################################################
5 #################################################################################################
6 #################################################################################################
7 #################################################################################################
9 #################################################################################################
11 # Usage: add($http_query);
12 # Returns: values for HTTP::Response
13 # Do: add stylesheet(s) to hash
15 # Uses : addparsequery, addvalues, ok_replace,
16 # ok_print, synerror_print, operror_print
17 #################################################################################################
20 my $http_query = shift(@_); # querystring
21 my $cont =""; # return value
22 my @binds; #values of binds passed via querystring
23 my $err; # error string
24 if ($err = addparsequery($http_query,\@binds)) { return synerror_print($err,$add_usage); }
27 foreach my $bind (@binds)
29 my ($a_key , $e_uri) = split(/,/,$bind,2);
30 my $une_uri = uri_unescape($e_uri);
31 if ($err = addvalues($a_key,$une_uri)) { $cont .= "$err\n"; }
32 else { $cont .= ok_replace("$s_add\n",$a_key,$une_uri); }
34 return ok_print($cont);
37 #################################################################################################
39 #################################################################################################
41 # Usage: remove($http_query);
42 # Returns: values for HTTP::Response
43 # Do: remove stylesheet(s) from hash
45 # Uses : reparsequery, getkeys, recheckvalues, removevalues,
46 # ok_print, synerror_print, operror_print
47 #################################################################################################
50 my $http_query = shift(@_); # querystring
54 if ($http_query eq "")
57 foreach my $rem_key (keys %stylesheet_hash)
59 $cont .= removevalues($rem_key);
62 if ($i==0) { return operror_print($error{"re_no_sl"}); }
64 elsif ($err = reparsequery($http_query,$rem_keys)){return synerror_print($err,$remove_usage);}
67 foreach my $rem_key (split (/,/,$rem_keys))
69 if (my $err = recheckvalues($rem_key)) { $cont .= "$err\n"; }
70 else { $cont .= removevalues($rem_key); }
73 return ok_print($cont);
75 #################################################################################################
77 #################################################################################################
79 # Usage: remove($http_query);
80 # Returns: values for HTTP::Response
81 # Do: remove stylesheet(s) from hash
83 # Uses : reparsequery, getkeys, recheckvalues, removevalues,
84 # ok_print, synerror_print, operror_print
85 #################################################################################################
86 sub reload #reload stylesheet(s) from hash
88 my $http_query = shift(@_);
92 if ($http_query eq "")
95 foreach my $key (keys %stylesheet_hash)
97 if (my $err = reloadvalues($key)) { return $dr_cont .= $err; }
98 else {$dr_cont .= ok_replace("$s_reload\n",$key,$stylesheet_hash{$key}[0]);}
101 if ($i==0) { return operror_print($error{"re_no_sl"}); }
103 elsif ($err = reparsequery($http_query,$rel_keys)){return synerror_print($err,$reload_usage);}
106 foreach my $key (split (/,/,$rel_keys))
108 if (my $err = reloadvalues($key)) { return $dr_cont .= $err; }
109 else {$dr_cont .= ok_replace("$s_reload\n",$key,$stylesheet_hash{$key}[0]);}
112 return ok_print($dr_cont);
114 #################################################################################################
116 sub apply #apply stylesheets
118 my $http_query = shift(@_);
119 my $headers_ptr = shift(@_);
128 if (my $err=applyparsequery($http_query,\@applykeys,\%app_param,\%app_prop,$xmluri))
130 return synerror_print($err,$apply_usage);
132 elsif (my $err=applycheckvalues(\@applykeys)) { return operror_print($err); }
133 elsif (my $err=load_xml_doc($xmluri,$results)) { return operror_print($err); }
135 foreach my $applykey (@applykeys)
138 if (my $err=apply_style($applykey,\%{$app_param{$applykey}},$results))
140 return operror_print($err);
144 while (my ($n, $v) = each %app_prop)
146 if (($n eq "method") or ($n eq "METHOD"))
148 if ($v eq 'html') { $headers_ptr->{'Content-Type'}='text/html'; }
149 elsif ($v eq 'text') { $headers_ptr->{'Content-Type'}='text/plain'; }
150 else { $headers_ptr->{'Content-Type'}='text/xml'; }
152 if (($n eq "encoding") or ($n eq "ENCODING"))
154 $headers_ptr->{'Content-Encoding'}=$v;
155 if ($v ne "UTF-8") { $enc = $v; }
157 if (($n eq "media-type") or ($n eq "MEDIA_TYPE") or ($n eq "MEDIA-TYPE"))
159 $headers_ptr->{'Content-Type'}=$v;
165 %$headers_ptr= ('Cache-Control' => 'no-cache','Pragma' => "no-cache",'Expires' => '0');
166 return get_results($lastkey,$results);
171 $headers_ptr->{'Cache-Control'} = 'no-cache';
172 $headers_ptr->{'Pragma'} = "no-cache";
173 $headers_ptr->{'Expires'} = '0';
174 if ($headers_ptr->{'Content-Type'} eq 'text/html')
176 $result = get_results_html($results);
180 $result = get_results_prop($results);
183 $result = decode($result,$enc);
190 sub list #list all the stylesheet loaded
194 foreach $key (keys %stylesheet_hash)
196 $cont .= ok_replace("$list\n",$key,$stylesheet_hash{$key}[0]);
199 if ($ind > 0) { return ok_print($cont); }
200 else { return ok_print($empty); }
203 sub home #return Dispay active
205 if ($_[0] ne "") { return synerror_print($error{"home_qs"},$all_usage); }
207 return ok_print($home_message.$all_usage);
211 sub help #return html help
213 if ($_[0] ne "") { return synerror_print($error{"help_qs"},$help_usage); }
214 return ok_print($help_message.$all_usage);