Diff for /loncom/interface/lonsearchcat.pm between versions 1.278 and 1.279

version 1.278, 2006/12/06 22:22:37 version 1.279, 2007/01/19 14:23:23
Line 832  sub print_advanced_search_form{ Line 832  sub print_advanced_search_form{
 $closebutton  $closebutton
 END  END
     my $srchtype = 'Catalog';      my $srchtype = 'Catalog';
       my $jscript;
     if ($env{'form.area'} eq 'portfolio') {      if ($env{'form.area'} eq 'portfolio') {
         $srchtype = 'Portfolio';          $srchtype = 'Portfolio';
           $jscript = '<script type="text/javascript">
   function additional_metadata() {
       if (document.advsearch.newfield.checked) {
           document.advsearch.phase.value = "disp_adv";
           document.advsearch.numaddedfields.value = parseInt(document.advsearch.numaddedfields.value) +1;
           document.advsearch.submit();
     }      }
     my $scrout= &Apache::loncommon::start_page("Advanced $srchtype Search");  }
   </script>';
       }
       my $scrout= &Apache::loncommon::start_page("Advanced $srchtype Search",
                                                  $jscript);
     $scrout .= <<"ENDHEADER";      $scrout .= <<"ENDHEADER";
 $bread_crumb  $bread_crumb
 <form method="post" action="/adm/searchcat" name="advsearch">  <form method="post" action="/adm/searchcat" name="advsearch">
Line 935  ENDHEADER Line 946  ENDHEADER
           
     if ($env{'form.area'} eq 'portfolio') {      if ($env{'form.area'} eq 'portfolio') {
         # Added fields          # Added fields
           my $curnumadd = $env{'form.numaddedfields'};
           if ($curnumadd eq '') {
               $curnumadd = 1;
           }
         $scrout .= '<h3>'.&mt('Custom Metadata fields').'</h3>';          $scrout .= '<h3>'.&mt('Custom Metadata fields').'</h3>';
         $scrout .= "<table>\n";          $scrout .= "<table>\n";
         $scrout .= '<tr><td>&nbsp;</td><td align="center">'.          $scrout .= '<tr><td>&nbsp;</td><td align="center">'.
                    &mt('Field Name').'</td>'.'<td align="center">'.                     &mt('Field Name').'</td>'.'<td align="center">'.
                    &mt('Field Value(s)').'</td></tr>'.                     &mt('Field Value(s)').'</td></tr>';
                    '<tr><td>'.&mt('1: ').  
                    '</td><td align="center">'.          for (my $j=0; $j<$curnumadd; $j++) {
                    '<input type="text" name="addedfield_0" size="10" /></td>'.  
                    '<td align="center"><input type="text" '.  
                    'name="addedvalues_0" size="15" /></td></tr>';  
         for (my $j=1; $j<=$env{'form.numaddedfields'}; $j++) {  
             my $num = $j+1;              my $num = $j+1;
             $scrout .= '<tr><td>'.&mt('Custom metadata [_1]: ',$num).              $scrout .= '<tr><td>'.&mt('Custom metadata [_1]: ',$num).
                        '</td><td align="center">'.                         '</td><td align="center">'.
                        '<input type="text" name="addedfield_'.$j.                         '<input type="text" name="addedfield_'.$j.
                        '" size="10" /></td>'.                         '" size="10" value="'.$env{'form.addedfield_'.$j}.
                          '" /></td>'.
                        '<td align="center"><input type="text" '.                         '<td align="center"><input type="text" '.
                        'name="addedvalues_'.$j.'" size="15" /></td></tr>';                         'name="addedvalues_'.$j.'" size="15" value="'.
                          $env{'form.addedvalues_'.$j}.'" /></td></tr>';
         }          }
         my $numadded = 1 + $env{'form.numaddedfields'};          $scrout .= '<tr><td align="left" colspan="3"><label>'.
         $scrout .= '<tr><td colspan="3">&nbsp;</td></tr>'.                     '<input type="checkbox" name="newfield" '.
                    '<tr><td align="left" colspan="3">'.                     'value="1" onclick="javascript:additional_metadata()" />'.
                    '<input type="button" name="newfield" '.                     &mt('Another custom field/value pair?').'</label>'.
                    'value="Additional custom field/value" '.                     '<input type="hidden" name="numaddedfields" value="'.
                    'onclick="javascript:additional_metadata()" />'.                     $curnumadd.'" /></td></tr></table>';
                    '<input type="hidden" name="numaddedfelds" value="'.  
                    $numadded.'" /></td></tr></table>';  
     } else {      } else {
         #          #
         # Dynamic metadata          # Dynamic metadata
Line 1413  sub parse_advanced_search { Line 1424  sub parse_advanced_search {
             $fillflag++;              $fillflag++;
         }          }
     }      }
       if ($env{'form.area'} eq 'portfolio') {
           # Added metadata fields
           for (my $i=0; $i<$env{'form.numaddedfields'} ; $i++) {
               my $field = $env{'form.addedfield_'.$i};
               $field =~ s/^\s*(\S*)\s*$/$1/;
               $field =~ s/\W/_/g;
               if ($field ne '') {
                   $fillflag++;
               }
           }
       }
     if (! $fillflag) {      if (! $fillflag) {
  &output_blank_field_error($r,$closebutton,   &output_blank_field_error($r,$closebutton,
                                   'phase=disp_adv',$hidden_fields);                                    'phase=disp_adv',$hidden_fields);
Line 1503  sub parse_advanced_search { Line 1525  sub parse_advanced_search {
         #          #
         # Added metadata fields          # Added metadata fields
         for (my $i=0; $i<$env{'form.numaddedfields'} ; $i++) {          for (my $i=0; $i<$env{'form.numaddedfields'} ; $i++) {
             if (($env{'form.addedfield_'.$i} ne '') &&               my $field = $env{'form.addedfield_'.$i};
                 ($env{'form.addedvalue_'.$i} ne '')) {              $field =~ s/^\s*(\S*)\s*$/$1/;
                 my $stuff = 1; #FIXME               $field =~ s/\W/_/g;
               $field =~ tr/A-Z/a-z/; 
               if ($field ne '') {
                   my $value = $env{'form.addedvalues_'.$i};
                   if ($value ne '') {
                       $value =~ s/'/''/g;
                       my ($error,$query) = 
                           &process_phrase_input($value,0,'pf.value');
                       if (!defined($error)) {
                           push(@queries,"pf.field = '$field' AND $query");
                           $pretty_search_string .=
                               $font.$field.'</font>: '.
                               $env{'form.addedvalues_'.$i}.'<br />';
                       }
                   } else {
                       push(@queries,"pf.field = '$field' AND pf.value IS NULL");
                   }
             }              }
         }          }
     } else {      } else {
Line 1598  sub parse_advanced_search { Line 1636  sub parse_advanced_search {
     #      #
     if (@queries) {      if (@queries) {
         if ($env{'form.area'} eq 'portfolio') {          if ($env{'form.area'} eq 'portfolio') {
             $query ="SELECT pm.*,pa.keynum,pa.scope FROM portfolio_metadata pm, portfolio_access pa  WHERE (pm.url = pa.url AND (pa.start < NOW() AND (pa.end IS NULL OR pa.end > NOW())) AND (".join(') AND (',@queries).'))';              $query ="SELECT pm.*,pa.keynum,pa.scope FROM portfolio_metadata pm, portfolio_access pa, portfolio_addedfields pf WHERE (pm.url = pa.url AND pf.url = pm.url AND (pa.start < NOW() AND (pa.end IS NULL OR pa.end > NOW())) AND (".join(') AND (',@queries).'))';
         } else {          } else {
     $query="SELECT * FROM metadata WHERE (".join(") AND (",@queries).')';      $query="SELECT * FROM metadata WHERE (".join(") AND (",@queries).')';
         }          }

Removed from v.1.278  
changed lines
  Added in v.1.279


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