Diff for /loncom/interface/lonsearchcat.pm between versions 1.1 and 1.5

version 1.1, 2001/01/03 16:20:59 version 1.5, 2001/03/08 16:55:43
Line 1 Line 1
 # The LearningOnline Network  # The LearningOnline Network
 # Search Catalog  # Search Catalog
 #  #
 # (Internal Server Error Handler  # 03/08/2001 Scott Harrison
 #  
 # (Login Screen  
 # 5/21/99,5/22,5/25,5/26,5/31,6/2,6/10,7/12,7/14,  
 # 1/14/00,5/29,5/30,6/1,6/29,7/1,11/9 Gerd Kortemeyer)  
 #  
 # 3/1/1 Gerd Kortemeyer)  
 #  
 # 3/1 Gerd Kortemeyer  
 #  #
 package Apache::lonsearchcat;  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;
   
 # --------------------------------------------------- Print login screen header      %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
     $r->print(<<ENDDOCUMENT);      $r->print(<<ENDDOCUMENT);
 <html>  <html>
 <head>  <head>
 <title>The LearningOnline Network with CAPA</title>  <title>The LearningOnline Network with CAPA</title>
 </head>  </head>
 <body bgcolor="#FFFFFF">  <body bgcolor="#FFFFFF">
   <img align=right src=/adm/lonIcons/lonlogos.gif>
 <h1>Search Catalog</h1>  <h1>Search Catalog</h1>
 <img src="/adm/lonKaputt/lonconstruct.gif">  <form method="post" action="/adm/searchcat">
   <hr>
   <h3>Basic Search</h3>
   <p>
   Enter terms or phrases separated by search operators
   such as AND or OR then press SEARCH below.  Terms should be specific
   to the title, author, subject, notes, or abstract information associated
   with a resource.
   <br>
   <input type="text" name="basicexp">
   <input type="checkbox" name="titleonly">
   <font color="#800000">Title only</font>
   <br>
   <input type="submit" name="basicsubmit" value="SEARCH">
   </p>
   <hr>
   <h3>Advanced Search</h3>
   $scrout
   <p>
   <input type="submit" name="advancedsubmit" value="SEARCH">
   </p>
   </form>
 </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.1  
changed lines
  Added in v.1.5


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