+++ /dev/null
-#################################################################################################
-#################################################################################################
-#################################################################################################
-# Commands subrutines
-#################################################################################################
-#################################################################################################
-#################################################################################################
-
-#################################################################################################
-# sub add
-# Usage: add($http_query);
-# Returns: values for HTTP::Response
-# Do: add stylesheet(s) to hash
-# Used by: daemon
-# Uses : addparsequery, addvalues, ok_replace,
-# ok_print, synerror_print, operror_print
-#################################################################################################
-sub add
-{
- my $http_query = shift(@_); # querystring
- my $cont =""; # return value
- my @binds; #values of binds passed via querystring
- my $err; # error string
- if ($err = addparsequery($http_query,\@binds)) { return synerror_print($err,$add_usage); }
- else
- {
- foreach my $bind (@binds)
- {
- my ($a_key , $e_uri) = split(/,/,$bind,2);
- my $une_uri = uri_unescape($e_uri);
- if ($err = addvalues($a_key,$une_uri)) { $cont .= "$err\n"; }
- else { $cont .= ok_replace("$s_add\n",$a_key,$une_uri); }
- }#foreach
- return ok_print($cont);
- }
-}
-#################################################################################################
-
-#################################################################################################
-# sub remove
-# Usage: remove($http_query);
-# Returns: values for HTTP::Response
-# Do: remove stylesheet(s) from hash
-# Used by: daemon
-# Uses : reparsequery, getkeys, recheckvalues, removevalues,
-# ok_print, synerror_print, operror_print
-#################################################################################################
-sub remove
-{
- my $http_query = shift(@_); # querystring
- my $rem_keys;
- my $cont="";
- my $err;
- if ($http_query eq "")
- {
- my $i=0;
- foreach my $rem_key (keys %stylesheet_hash)
- {
- $cont .= removevalues($rem_key);
- $i++;
- }
- if ($i==0) { return operror_print($error{"re_no_sl"}); }
- }
- elsif ($err = reparsequery($http_query,$rem_keys)){return synerror_print($err,$remove_usage);}
- else
- {
- foreach my $rem_key (split (/,/,$rem_keys))
- {
- if (my $err = recheckvalues($rem_key)) { $cont .= "$err\n"; }
- else { $cont .= removevalues($rem_key); }
- }
- }
- return ok_print($cont);
-}
-#################################################################################################
-
-#################################################################################################
-# sub reload
-# Usage: remove($http_query);
-# Returns: values for HTTP::Response
-# Do: remove stylesheet(s) from hash
-# Used by: daemon
-# Uses : reparsequery, getkeys, recheckvalues, removevalues,
-# ok_print, synerror_print, operror_print
-#################################################################################################
-sub reload #reload stylesheet(s) from hash
-{
- my $http_query = shift(@_);
- my $rel_keys;
- my @rel_k;
- my $dr_cont = "";
- if ($http_query eq "")
- {
- my $i=0;
- foreach my $key (keys %stylesheet_hash)
- {
- if (my $err = reloadvalues($key)) { return $dr_cont .= $err; }
- else {$dr_cont .= ok_replace("$s_reload\n",$key,$stylesheet_hash{$key}[0]);}
- $i++;
- }
- if ($i==0) { return operror_print($error{"re_no_sl"}); }
- }
- elsif ($err = reparsequery($http_query,$rel_keys)){return synerror_print($err,$reload_usage);}
- else
- {
- foreach my $key (split (/,/,$rel_keys))
- {
- if (my $err = reloadvalues($key)) { return $dr_cont .= $err; }
- else {$dr_cont .= ok_replace("$s_reload\n",$key,$stylesheet_hash{$key}[0]);}
- }
- }
- return ok_print($dr_cont);
-}
-#################################################################################################
-
-sub apply #apply stylesheets
-{
- my $http_query = shift(@_);
- my $headers_ptr = shift(@_);
- my $xmluri;
- my @applykeys;
- my %app_param;
- my %app_prop;
- my $results;
- my $lastkey;
- my $enc;
-
- if (my $err=applyparsequery($http_query,\@applykeys,\%app_param,\%app_prop,$xmluri))
- {
- return synerror_print($err,$apply_usage);
- }
- elsif (my $err=applycheckvalues(\@applykeys)) { return operror_print($err); }
- elsif (my $err=load_xml_doc($xmluri,$results)) { return operror_print($err); }
- #apply
- foreach my $applykey (@applykeys)
- {
- $lastkey=$applykey;
- if (my $err=apply_style($applykey,\%{$app_param{$applykey}},$results))
- {
- return operror_print($err);
- }
- }#foreach
- my $i=0;
- while (my ($n, $v) = each %app_prop)
- {
- if (($n eq "method") or ($n eq "METHOD"))
- {
- if ($v eq 'html') { $headers_ptr->{'Content-Type'}='text/html'; }
- elsif ($v eq 'text') { $headers_ptr->{'Content-Type'}='text/plain'; }
- else { $headers_ptr->{'Content-Type'}='text/xml'; }
- }
- if (($n eq "encoding") or ($n eq "ENCODING"))
- {
- $headers_ptr->{'Content-Encoding'}=$v;
- if ($v ne "UTF-8") { $enc = $v; }
- }
- if (($n eq "media-type") or ($n eq "MEDIA_TYPE") or ($n eq "MEDIA-TYPE"))
- {
- $headers_ptr->{'Content-Type'}=$v;
- }
- $i++;
- }
- if ($i == 0)
- {
- %$headers_ptr= ('Cache-Control' => 'no-cache','Pragma' => "no-cache",'Expires' => '0');
- return get_results($lastkey,$results);
- }
- else
- {
- my $result;
- $headers_ptr->{'Cache-Control'} = 'no-cache';
- $headers_ptr->{'Pragma'} = "no-cache";
- $headers_ptr->{'Expires'} = '0';
- if ($headers_ptr->{'Content-Type'} eq 'text/html')
- {
- $result = get_results_html($results);
- }
- else
- {
- $result = get_results_prop($results);
- if ($enc)
- {
- $result = decode($result,$enc);
- }
- }
- return $result;
- }
-}
-
-sub list #list all the stylesheet loaded
-{
- my $cont="";
- my $ind = 0;
- foreach $key (keys %stylesheet_hash)
- {
- $cont .= ok_replace("$list\n",$key,$stylesheet_hash{$key}[0]);
- $ind++;
- }
- if ($ind > 0) { return ok_print($cont); }
- else { return ok_print($empty); }
-}
-
-sub home #return Dispay active
-{
- if ($_[0] ne "") { return synerror_print($error{"home_qs"},$all_usage); }
- else {
- return ok_print($home_message.$all_usage);
- }
-}
-
-sub help #return html help
-{
- if ($_[0] ne "") { return synerror_print($error{"help_qs"},$help_usage); }
- return ok_print($help_message.$all_usage);
-}