Diff for /loncom/lonsql between versions 1.73 and 1.77

version 1.73, 2006/02/08 17:11:46 version 1.77, 2006/05/11 17:53:22
Line 102  the database. Line 102  the database.
 use strict;  use strict;
   
 use lib '/home/httpd/lib/perl/';  use lib '/home/httpd/lib/perl/';
   use LONCAPA;
 use LONCAPA::Configuration;  use LONCAPA::Configuration;
 use LONCAPA::lonmetadata();  use LONCAPA::lonmetadata();
   
Line 444  sub make_new_child { Line 445  sub make_new_child {
                     $locresult = &localenroll::fetch_enrollment($dom,\%affiliates,\%replies);                      $locresult = &localenroll::fetch_enrollment($dom,\%affiliates,\%replies);
                 } elsif ($query eq 'institutionalphotos') {                  } elsif ($query eq 'institutionalphotos') {
                     my $crs = &unescape($arg2);                      my $crs = &unescape($arg2);
                     $locresult = &localenroll::institutional_photos($dom,$crs,\%affiliates,\%replies,'update');      eval {
    local($SIG{__DIE__})='DEFAULT';
    $locresult = &localenroll::institutional_photos($dom,$crs,\%affiliates,\%replies,'update');
       };
       if ($@) {
    $locresult = 'error';
       }
                 }                  }
                 $result = &escape($locresult.':');                  $result = &escape($locresult.':');
                 if ($locresult) {                  if ($locresult) {
Line 466  sub make_new_child { Line 473  sub make_new_child {
                 }                  }
             } else {              } else {
                 # Do an sql query                  # Do an sql query
                 $result = &do_sql_query($query,$arg1,$arg2);                  $result = &do_sql_query($query,$arg1,$arg2,$searchdomain);
             }              }
             # result does not need to be escaped because it has already been              # result does not need to be escaped because it has already been
             # escaped.              # escaped.
Line 517  sub process_file { Line 524  sub process_file {
 }  }
   
 sub do_sql_query {  sub do_sql_query {
     my ($query,$custom,$customshow) = @_;      my ($query,$custom,$customshow,$searchdomain) = @_;
 #    &logthis('doing query '.$query);  
   #
   # limit to searchdomain if given and table is metadata
   #
       if (($searchdomain) && ($query=~/FROM metadata/)) {
    $query.=' HAVING (domain="'.$searchdomain.'")';
       }
   #    &logthis('doing query ('.$searchdomain.')'.$query);
   
   
   
     $custom     = &unescape($custom);      $custom     = &unescape($custom);
     $customshow = &unescape($customshow);      $customshow = &unescape($customshow);
     #      #
Line 708  sub reply { Line 725  sub reply {
 }  }
   
 ########################################################  ########################################################
 ########################################################  
   
 =pod  
   
 =item &escape  
   
 Escape special characters in a string.  
   
 Inputs: string to escape  
   
 Returns: The input string with special characters escaped.  
   
 =cut  
   
 ########################################################  
 ########################################################  
 sub escape {  
     my $str=shift;  
     $str =~ s/(\W)/"%".unpack('H2',$1)/eg;  
     return $str;  
 }  
   
 ########################################################  
 ########################################################  
   
 =pod  
   
 =item &unescape  
   
 Unescape special characters in a string.  
   
 Inputs: string to unescape  
   
 Returns: The input string with special characters unescaped.  
   
 =cut  
   
 ########################################################  
 ########################################################  
 sub unescape {  
     my $str=shift;  
     $str =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;  
     return $str;  
 }  
   
 ########################################################  
 ########################################################  ########################################################
   
 =pod  =pod

Removed from v.1.73  
changed lines
  Added in v.1.77


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>