Diff for /loncom/interface/lonsearchcat.pm between versions 1.2 and 1.3

version 1.2, 2001/03/08 13:32:04 version 1.3, 2001/03/08 16:45:22
Line 8  package Apache::lonsearchcat; Line 8  package Apache::lonsearchcat;
 use strict;  use strict;
 use Apache::Constants qw(:common);  use Apache::Constants qw(:common);
   
   my %language;
   my $scrout;
   my %metadatafields;
   my %cprtag;
   my %mimetag;
   
 sub handler {  sub handler {
     my $r = shift;      my $r = shift;
     $r->content_type('text/html');      $r->content_type('text/html');
     $r->send_http_header;      $r->send_http_header;
     return OK if $r->header_only;      return OK if $r->header_only;
   
       %metadatafields=();
   
   # ------------------------------------------------ First, check out environment
       $metadatafields{'owner'}=$ENV{'user.name'}.'@'.$ENV{'user.domain'};
   
       
       %language=();
       $language{'any'}='Any language';
       {
    my $fh=Apache::File->new($r->dir_config('lonTabDir').'/language.tab');
    map {
       $_=~/(\w+)\s+([\w\s\-]+)/;
       $language{$1}=$2;
    } <$fh>;
       }
   
       %cprtag=();
       $cprtag{'any'}='Any copyright/distribution';
       {
    my $fh=Apache::File->new($r->dir_config('lonIncludes').'/copyright.tab');
    map {
       $_=~/(\w+)\s+([\w\s\-]+)/;
       $cprtag{$1}=$2;
    } <$fh>;
       }
   
       %mimetag=();
       $mimetag{'any'}='Any type';
       {
    my $fh=Apache::File->new($r->dir_config('lonTabDir').'/filetypes.tab');
    map {
       $_=~/(\w+)\s+(\w+)\s+([\w\s\-]+)/;
       $mimetag{$1}=".$1 $3";
    } <$fh>;
       }
   
       $scrout="";
       $scrout.=&searchphrasefield('Limit by title','title',
    '');
   
       $scrout.=&searchphrasefield('Limit by author','author',
    '');
   
       $scrout.=&searchphrasefield('Limit by subject','subject',
    '');
   
       $scrout.=&searchphrasefield('Limit by notes','notes',
    '');
   
       $scrout.=&searchphrasefield('Limit by abstract','abstract',
    '');
   
       $scrout.=&selectbox('Limit by MIME type','mime',
    'notxxx',%mimetag);
   
       $scrout.=&selectbox('Limit by language','language',
    'any',%language);
       
       $scrout.=<<CREATIONDATEEND;
   <p>
   <font color="#800000" face="helvetica"><b>LIMIT BY CREATION DATE RANGE:</b>
   </font>
   <br>
   between:<select name="creationdatemonthstart">
   <option value="01"> </option>
   <option value="01">January</option>
   <option value="02">February</option>
   <option value="03">March</option>
   <option value="04">April</option>
   <option value="05">May</option>
   <option value="06">June</option>
   <option value="07">July</option>
   <option value="08">August</option>
   <option value="09">September</option>
   <option value="10">October</option>
   <option value="11">November</option>
   <option value="12">December</option>
   </select>
   <select name="creationdatedaystart">
   <option value="1"> </option>
   <option value=1>1</option>
   <option value=2>2</option>
   <option value=3>3</option>
   <option value=4>4</option>
   <option value=5>5</option>
   <option value=6>6</option>
   <option value=7>7</option>
   <option value=8>8</option>
   <option value=9>9</option>
   <option value=10>10</option>
   <option value=11>11</option>
   <option value=12>12</option>
   <option value=13>13</option>
   <option value=14>14</option>
   <option value=15>15</option>
   <option value=16>16</option>
   <option value=17>17</option>
   <option value=18>18</option>
   <option value=19>19</option>
   <option value=20>20</option>
   <option value=21>21</option>
   <option value=22>22</option>
   <option value=23>23</option>
   <option value=24>24</option>
   <option value=25>25</option>
   <option value=26>26</option>
   <option value=27>27</option>
   <option value=28>28</option>
   <option value=29>29</option>
   <option value=30>30</option>
   <option value=31>31</option>
   </select>
   <select name="creationdateyearstart">
   <option value=1976> </option>
   <option value=1976>1976</option>
   <option value=1977>1977</option>
   <option value=1978>1978</option>
   <option value=1979>1979</option>
   <option value=1980>1980</option>
   <option value=1981>1981</option>
   <option value=1982>1982</option>
   <option value=1983>1983</option>
   <option value=1984>1984</option>
   <option value=1985>1985</option>
   <option value=1986>1986</option>
   <option value=1987>1987</option>
   <option value=1988>1988</option>
   <option value=1989>1989</option>
   <option value=1990>1990</option>
   <option value=1991>1991</option>
   <option value=1992>1992</option>
   <option value=1993>1993</option>
   <option value=1994>1994</option>
   <option value=1995>1995</option>
   <option value=1996>1996</option>
   <option value=1997>1997</option>
   <option value=1998>1998</option>
   <option value=1999>1999</option>
   <option value=2000>2000</option>
   <option value=2001>2001</option>
   <option value=2002>2002</option>
   <option value=2003>2003</option>
   <option value=2004>2004</option>
   <option value=2005>2005</option>
   <option value=2006>2006</option>
   <option value=2007>2007</option>
   <option value=2008>2008</option>
   <option value=2009>2009</option>
   <option value=2010>2010</option>
   <option value=2011>2011</option>
   <option value=2012>2012</option>
   <option value=2013>2013</option>
   <option value=2014>2014</option>
   <option value=2015>2015</option>
   <option value=2016>2016</option>
   <option value=2017>2017</option>
   <option value=2018>2018</option>
   <option value=2019>2019</option>
   <option value=2020>2020</option>
   <option value=2021>2021</option>
   <option value=2022>2022</option>
   <option value=2023>2023</option>
   <option value=2024>2024</option>
   <option value=2025>2025</option>
   <option value=2026>2026</option>
   <option value=2027>2027</option>
   <option value=2028>2028</option>
   <option value=2029>2029</option>
   <option value=2030>2030</option>
   <option value=2031>2031</option>
   <option value=2032>2032</option>
   <option value=2033>2033</option>
   <option value=2034>2034</option>
   <option value=2035>2035</option>
   <option value=2036>2036</option>
   <option value=2037>2037</option>
   <option value=2038>2038</option>
   <option value=2039>2039</option>
   <option value=2040>2040</option>
   <option value=2041>2041</option>
   <option value=2042>2042</option>
   <option value=2043>2043</option>
   <option value=2044>2044</option>
   <option value=2045>2045</option>
   <option value=2046>2046</option>
   <option value=2047>2047</option>
   <option value=2048>2048</option>
   <option value=2049>2049</option>
   <option value=2050>2050</option>
   <option value=2051>2051</option>
   </select>
   and:<select name="creationdatemonthend">
   <option value="12"> </option>
   <option value="01">January</option>
   <option value="02">February</option>
   <option value="03">March</option>
   <option value="04">April</option>
   <option value="05">May</option>
   <option value="06">June</option>
   <option value="07">July</option>
   <option value="08">August</option>
   <option value="09">September</option>
   <option value="10">October</option>
   <option value="11">November</option>
   <option value="12">December</option>
   </select>
   <select name="creationdatedayend">
   <option value=28> </option>
   <option value=1>1</option>
   <option value=2>2</option>
   <option value=3>3</option>
   <option value=4>4</option>
   <option value=5>5</option>
   <option value=6>6</option>
   <option value=7>7</option>
   <option value=8>8</option>
   <option value=9>9</option>
   <option value=10>10</option>
   <option value=11>11</option>
   <option value=12>12</option>
   <option value=13>13</option>
   <option value=14>14</option>
   <option value=15>15</option>
   <option value=16>16</option>
   <option value=17>17</option>
   <option value=18>18</option>
   <option value=19>19</option>
   <option value=20>20</option>
   <option value=21>21</option>
   <option value=22>22</option>
   <option value=23>23</option>
   <option value=24>24</option>
   <option value=25>25</option>
   <option value=26>26</option>
   <option value=27>27</option>
   <option value=28>28</option>
   <option value=29>29</option>
   <option value=30>30</option>
   <option value=31>31</option>
   </select>
   <select name="creationdateyearend">
   <option value=2051> </option>
   <option value=1976>1976</option>
   <option value=1977>1977</option>
   <option value=1978>1978</option>
   <option value=1979>1979</option>
   <option value=1980>1980</option>
   <option value=1981>1981</option>
   <option value=1982>1982</option>
   <option value=1983>1983</option>
   <option value=1984>1984</option>
   <option value=1985>1985</option>
   <option value=1986>1986</option>
   <option value=1987>1987</option>
   <option value=1988>1988</option>
   <option value=1989>1989</option>
   <option value=1990>1990</option>
   <option value=1991>1991</option>
   <option value=1992>1992</option>
   <option value=1993>1993</option>
   <option value=1994>1994</option>
   <option value=1995>1995</option>
   <option value=1996>1996</option>
   <option value=1997>1997</option>
   <option value=1998>1998</option>
   <option value=1999>1999</option>
   <option value=2000>2000</option>
   <option value=2001>2001</option>
   <option value=2002>2002</option>
   <option value=2003>2003</option>
   <option value=2004>2004</option>
   <option value=2005>2005</option>
   <option value=2006>2006</option>
   <option value=2007>2007</option>
   <option value=2008>2008</option>
   <option value=2009>2009</option>
   <option value=2010>2010</option>
   <option value=2011>2011</option>
   <option value=2012>2012</option>
   <option value=2013>2013</option>
   <option value=2014>2014</option>
   <option value=2015>2015</option>
   <option value=2016>2016</option>
   <option value=2017>2017</option>
   <option value=2018>2018</option>
   <option value=2019>2019</option>
   <option value=2020>2020</option>
   <option value=2021>2021</option>
   <option value=2022>2022</option>
   <option value=2023>2023</option>
   <option value=2024>2024</option>
   <option value=2025>2025</option>
   <option value=2026>2026</option>
   <option value=2027>2027</option>
   <option value=2028>2028</option>
   <option value=2029>2029</option>
   <option value=2030>2030</option>
   <option value=2031>2031</option>
   <option value=2032>2032</option>
   <option value=2033>2033</option>
   <option value=2034>2034</option>
   <option value=2035>2035</option>
   <option value=2036>2036</option>
   <option value=2037>2037</option>
   <option value=2038>2038</option>
   <option value=2039>2039</option>
   <option value=2040>2040</option>
   <option value=2041>2041</option>
   <option value=2042>2042</option>
   <option value=2043>2043</option>
   <option value=2044>2044</option>
   <option value=2045>2045</option>
   <option value=2046>2046</option>
   <option value=2047>2047</option>
   <option value=2048>2048</option>
   <option value=2049>2049</option>
   <option value=2050>2050</option>
   <option value=2051>2051</option>
   </select>
   </p>
   CREATIONDATEEND
   
       $scrout.=<<LASTREVISIONDATEEND;
   <p>
   <font color="#800000" face="helvetica"><b>LIMIT BY LAST REVISION DATE RANGE:
   </b></font>
   <br>between:<select name="lastrevisiondatemonthstart">
   <option value="00"> </option>
   <option value="01">January</option>
   <option value="02">February</option>
   <option value="03">March</option>
   <option value="04">April</option>
   <option value="05">May</option>
   <option value="06">June</option>
   <option value="07">July</option>
   <option value="08">August</option>
   <option value="09">September</option>
   <option value="10">October</option>
   <option value="11">November</option>
   <option value="12">December</option>
   </select>
   <select name="lastrevisiondatedaystart">
   <option value=1> </option>
   <option value=1>1</option>
   <option value=2>2</option>
   <option value=3>3</option>
   <option value=4>4</option>
   <option value=5>5</option>
   <option value=6>6</option>
   <option value=7>7</option>
   <option value=8>8</option>
   <option value=9>9</option>
   <option value=10>10</option>
   <option value=11>11</option>
   <option value=12>12</option>
   <option value=13>13</option>
   <option value=14>14</option>
   <option value=15>15</option>
   <option value=16>16</option>
   <option value=17>17</option>
   <option value=18>18</option>
   <option value=19>19</option>
   <option value=20>20</option>
   <option value=21>21</option>
   <option value=22>22</option>
   <option value=23>23</option>
   <option value=24>24</option>
   <option value=25>25</option>
   <option value=26>26</option>
   <option value=27>27</option>
   <option value=28>28</option>
   <option value=29>29</option>
   <option value=30>30</option>
   <option value=31>31</option>
   </select>
   <select name="lastrevisiondateyearstart">
   <option value=1976> </option>
   <option value=1976>1976</option>
   <option value=1977>1977</option>
   <option value=1978>1978</option>
   <option value=1979>1979</option>
   <option value=1980>1980</option>
   <option value=1981>1981</option>
   <option value=1982>1982</option>
   <option value=1983>1983</option>
   <option value=1984>1984</option>
   <option value=1985>1985</option>
   <option value=1986>1986</option>
   <option value=1987>1987</option>
   <option value=1988>1988</option>
   <option value=1989>1989</option>
   <option value=1990>1990</option>
   <option value=1991>1991</option>
   <option value=1992>1992</option>
   <option value=1993>1993</option>
   <option value=1994>1994</option>
   <option value=1995>1995</option>
   <option value=1996>1996</option>
   <option value=1997>1997</option>
   <option value=1998>1998</option>
   <option value=1999>1999</option>
   <option value=2000>2000</option>
   <option value=2001>2001</option>
   <option value=2002>2002</option>
   <option value=2003>2003</option>
   <option value=2004>2004</option>
   <option value=2005>2005</option>
   <option value=2006>2006</option>
   <option value=2007>2007</option>
   <option value=2008>2008</option>
   <option value=2009>2009</option>
   <option value=2010>2010</option>
   <option value=2011>2011</option>
   <option value=2012>2012</option>
   <option value=2013>2013</option>
   <option value=2014>2014</option>
   <option value=2015>2015</option>
   <option value=2016>2016</option>
   <option value=2017>2017</option>
   <option value=2018>2018</option>
   <option value=2019>2019</option>
   <option value=2020>2020</option>
   <option value=2021>2021</option>
   <option value=2022>2022</option>
   <option value=2023>2023</option>
   <option value=2024>2024</option>
   <option value=2025>2025</option>
   <option value=2026>2026</option>
   <option value=2027>2027</option>
   <option value=2028>2028</option>
   <option value=2029>2029</option>
   <option value=2030>2030</option>
   <option value=2031>2031</option>
   <option value=2032>2032</option>
   <option value=2033>2033</option>
   <option value=2034>2034</option>
   <option value=2035>2035</option>
   <option value=2036>2036</option>
   <option value=2037>2037</option>
   <option value=2038>2038</option>
   <option value=2039>2039</option>
   <option value=2040>2040</option>
   <option value=2041>2041</option>
   <option value=2042>2042</option>
   <option value=2043>2043</option>
   <option value=2044>2044</option>
   <option value=2045>2045</option>
   <option value=2046>2046</option>
   <option value=2047>2047</option>
   <option value=2048>2048</option>
   <option value=2049>2049</option>
   <option value=2050>2050</option>
   <option value=2051>2051</option>
   </select>
   and:<select name="lastrevisiondatemonthend">
   <option value="12"> </option>
   <option value="01">January</option>
   <option value="02">February</option>
   <option value="03">March</option>
   <option value="04">April</option>
   <option value="05">May</option>
   <option value="06">June</option>
   <option value="07">July</option>
   <option value="08">August</option>
   <option value="09">September</option>
   <option value="10">October</option>
   <option value="11">November</option>
   <option value="12">December</option>
   </select>
   <select name="lastrevisiondatedayend">
   <option value=28> </option>
   <option value=1>1</option>
   <option value=2>2</option>
   <option value=3>3</option>
   <option value=4>4</option>
   <option value=5>5</option>
   <option value=6>6</option>
   <option value=7>7</option>
   <option value=8>8</option>
   <option value=9>9</option>
   <option value=10>10</option>
   <option value=11>11</option>
   <option value=12>12</option>
   <option value=13>13</option>
   <option value=14>14</option>
   <option value=15>15</option>
   <option value=16>16</option>
   <option value=17>17</option>
   <option value=18>18</option>
   <option value=19>19</option>
   <option value=20>20</option>
   <option value=21>21</option>
   <option value=22>22</option>
   <option value=23>23</option>
   <option value=24>24</option>
   <option value=25>25</option>
   <option value=26>26</option>
   <option value=27>27</option>
   <option value=28>28</option>
   <option value=29>29</option>
   <option value=30>30</option>
   <option value=31>31</option>
   </select>
   <select name="lastrevisiondateyearend">
   <option value=2051> </option>
   <option value=1976>1976</option>
   <option value=1977>1977</option>
   <option value=1978>1978</option>
   <option value=1979>1979</option>
   <option value=1980>1980</option>
   <option value=1981>1981</option>
   <option value=1982>1982</option>
   <option value=1983>1983</option>
   <option value=1984>1984</option>
   <option value=1985>1985</option>
   <option value=1986>1986</option>
   <option value=1987>1987</option>
   <option value=1988>1988</option>
   <option value=1989>1989</option>
   <option value=1990>1990</option>
   <option value=1991>1991</option>
   <option value=1992>1992</option>
   <option value=1993>1993</option>
   <option value=1994>1994</option>
   <option value=1995>1995</option>
   <option value=1996>1996</option>
   <option value=1997>1997</option>
   <option value=1998>1998</option>
   <option value=1999>1999</option>
   <option value=2000>2000</option>
   <option value=2001>2001</option>
   <option value=2002>2002</option>
   <option value=2003>2003</option>
   <option value=2004>2004</option>
   <option value=2005>2005</option>
   <option value=2006>2006</option>
   <option value=2007>2007</option>
   <option value=2008>2008</option>
   <option value=2009>2009</option>
   <option value=2010>2010</option>
   <option value=2011>2011</option>
   <option value=2012>2012</option>
   <option value=2013>2013</option>
   <option value=2014>2014</option>
   <option value=2015>2015</option>
   <option value=2016>2016</option>
   <option value=2017>2017</option>
   <option value=2018>2018</option>
   <option value=2019>2019</option>
   <option value=2020>2020</option>
   <option value=2021>2021</option>
   <option value=2022>2022</option>
   <option value=2023>2023</option>
   <option value=2024>2024</option>
   <option value=2025>2025</option>
   <option value=2026>2026</option>
   <option value=2027>2027</option>
   <option value=2028>2028</option>
   <option value=2029>2029</option>
   <option value=2030>2030</option>
   <option value=2031>2031</option>
   <option value=2032>2032</option>
   <option value=2033>2033</option>
   <option value=2034>2034</option>
   <option value=2035>2035</option>
   <option value=2036>2036</option>
   <option value=2037>2037</option>
   <option value=2038>2038</option>
   <option value=2039>2039</option>
   <option value=2040>2040</option>
   <option value=2041>2041</option>
   <option value=2042>2042</option>
   <option value=2043>2043</option>
   <option value=2044>2044</option>
   <option value=2045>2045</option>
   <option value=2046>2046</option>
   <option value=2047>2047</option>
   <option value=2048>2048</option>
   <option value=2049>2049</option>
   <option value=2050>2050</option>
   <option value=2051>2051</option>
   </select>
   </p>
   LASTREVISIONDATEEND
   
       $scrout.=&searchphrasefield('Limit by publisher/owner','owner',
    $metadatafields{'owner'});
   
       $scrout.=&selectbox('Limit by copyright/distribution','copyright',
    'any',%cprtag);
   
 # ---------------------------------------------------------------- Print screen  # ---------------------------------------------------------------- Print screen
     $r->print(<<ENDDOCUMENT);      $r->print(<<ENDDOCUMENT);
 <html>  <html>
Line 22  sub handler { Line 619  sub handler {
 </head>  </head>
 <body bgcolor="#FFFFFF">  <body bgcolor="#FFFFFF">
 <h1>Search Catalog</h1>  <h1>Search Catalog</h1>
 <body bgcolor="#AAFFAA"><form>  <form method="post" action="/adm/searchcat">
 <img src="/adm/lonKaputt/lonconstruct.gif">  <hr>
 <table width="100%">  <h3>Basic Search</h3>
 <tr><td><b>Resource Library Search</b></td>  <p>
 <td align=right><input type=button value="Close"  Enter terms or phrases separated by search operators
  onClick="javascript:opener.srchclose();"></td>  such as AND or OR then press SEARCH below.  Terms should be specific
 </tr></table>  to the title, author, subject, notes, or abstract information associated
 <table bgcolor="#ffffff">  with a resource.
 <tr><td><b>title</b> </td>  <br>
 <td><INPUT TYPE="TEXT" NAME="title"></td>  <input type="text" name="basicexp">
 </tr><tr><td><b>author</b> </td>  <input type="checkbox" name="titleonly">
 <td><INPUT TYPE="TEXT" NAME="author"></td>  <font color="#800000">Title only</font>
 </tr><tr><td><b>subject</b> </td>  <br>
 <td><INPUT TYPE="TEXT" NAME="subject"></td>  <input type="submit" name="basicsubmit" value="SEARCH">
 </tr><tr><td><b>notes</b> </td>  </p>
 <td><INPUT TYPE="TEXT" NAME="notes"></td>  <hr>
 </tr><tr><td><b>abstract</b> </td>  <h3>Advanced Search</h3>
 <td><INPUT TYPE="TEXT" NAME="abstract"></td>  $scrout
 </tr><tr><td><b>mime</b> </td>  <p>
 <td><INPUT TYPE="TEXT" NAME="mime"></td>  <input type="submit" name="advancedsubmit" value="SEARCH">
 </tr><tr><td><b>language</b> </td>  </p>
 <td><INPUT TYPE="TEXT" NAME="language"></td>  </form>
 </tr><tr><td><b>creationdate</b> </td>  
 <td><INPUT TYPE="TEXT" NAME="creationdate"></td>  
 </tr><tr><td><b>lastrevisiondate</b> </td>  
 <td><INPUT TYPE="TEXT" NAME="lastrevisiondate"></td>  
 </tr><tr><td><b>owner</b> </td>  
 <td><INPUT TYPE="TEXT" NAME="owner"></td>  
 </tr><tr><td><b>copyright</b> </td>  
 <td><INPUT TYPE="TEXT" NAME="copyright"></td>  
 </tr>  
 </table>  
 </body>  </body>
 </html>  </html>
 ENDDOCUMENT  ENDDOCUMENT
     return OK;      return OK;
 }   } 
   
   # --------------------------------------------------------- Various form fields
   
   sub textfield {
       my ($title,$name,$value)=@_;
       return "\n<p><b>$title:</b><br>".
              '<input type=text name="'.$name.'" size=80 value="'.$value.'">';
   }
   
   sub searchphrasefield {
       my ($title,$name,$value)=@_;
       my $instruction=<<END;
   Enter terms or phrases separated by search operators such
   as AND or OR.
   END
       my $uctitle=uc($title);
       return "\n<p><font color=\"#800000\" face=\"helvetica\"><b>$uctitle:</b>".
      ":</FONT> $instruction<br>".
              '<input type=text name="'.$name.'" size=80 value="'.$value.'">';
   }
   
   sub selectbox {
       my ($title,$name,$value,%options)=@_;
       my $uctitle=uc($title);
       my $selout="\n<p><font color=\"#800000\" face=\"helvetica\"><b>$uctitle:".
    "</b></font><br>".'<select name="'.$name.'">';
       map {
           $selout.='<option value="'.$_.'"';
           if ($_ eq $value) { $selout.=' selected'; }
           $selout.='>'.$options{$_}.'</option>';
       } sort keys %options;
       return $selout.'</select>';
   }
   
 1;  1;
 __END__  __END__

Removed from v.1.2  
changed lines
  Added in v.1.3


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