File:  [LON-CAPA] / loncom / auth / localstudentphoto.pm
Revision 1.4: download - view: text, annotated - select for diffs
Fri Feb 10 02:38:59 2006 UTC (18 years, 3 months ago) by raeburn
Branches: MAIN
CVS tags: version_2_8_X, version_2_8_2, version_2_8_1, version_2_8_0, version_2_7_X, version_2_7_99_1, version_2_7_99_0, version_2_7_1, version_2_7_0, version_2_6_X, version_2_6_99_1, version_2_6_99_0, version_2_6_3, version_2_6_2, version_2_6_1, version_2_6_0, version_2_5_X, version_2_5_99_1, version_2_5_99_0, version_2_5_2, version_2_5_1, version_2_5_0, version_2_4_X, version_2_4_99_0, version_2_4_2, version_2_4_1, version_2_4_0, version_2_3_X, version_2_3_99_0, version_2_3_2, version_2_3_1, version_2_3_0, version_2_2_X, version_2_2_99_1, version_2_2_99_0, version_2_2_2, version_2_2_1, version_2_2_0, version_2_1_X, version_2_1_99_3, version_2_1_99_2, version_2_1_99_1, version_2_1_99_0, version_2_1_3, HEAD, GCI_1
Allow for the addition of new subroutines to local*.pm packages in the future, in a way that will prevent errors if undefined subroutines are called in customized versions.

    1: # The LON-CAPA dummy student photo fetch mechnism
    2: #
    3: # $Id: localstudentphoto.pm,v 1.4 2006/02/10 02:38:59 raeburn Exp $
    4: #
    5: # Copyright Michigan State University Board of Trustees
    6: #
    7: # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
    8: #
    9: # LON-CAPA is free software; you can redistribute it and/or modify
   10: # it under the terms of the GNU General Public License as published by
   11: # the Free Software Foundation; either version 2 of the License, or
   12: # (at your option) any later version.
   13: #
   14: # LON-CAPA is distributed in the hope that it will be useful,
   15: # but WITHOUT ANY WARRANTY; without even the implied warranty of
   16: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   17: # GNU General Public License for more details.
   18: #
   19: # You should have received a copy of the GNU General Public License
   20: # along with LON-CAPA; if not, write to the Free Software
   21: # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
   22: #
   23: # /home/httpd/html/adm/gpl.txt
   24: #
   25: # http://www.lon-capa.org/
   26: #
   27: # 8/24 Guy Albertelli
   28: 
   29: 
   30: package localstudentphoto;
   31: use lib '/home/httpd/lib/perl/';
   32: use LONCAPA::Configuration;
   33: 
   34: sub fetch {
   35:     my ($domain,$user,$pid,$response)=@_;
   36:     my $temptxt = '';
   37:     unless (ref($response)) {
   38:         $response = \$temptxt;
   39:     }
   40:     if ($udom eq '' || $uname eq '') {
   41:         $$response = 'nouser';
   42:         return '';
   43:     }
   44:     return &main::propath($domain,$user).
   45: 	'/userfiles/internal/studentphoto.jpg';
   46: }
   47: 
   48: sub fetch_thumbnail {
   49:     my ($udom,$uname) = @_;
   50:     if ($udom eq '' || $uname eq '') {
   51:         return '';
   52:     }
   53:     my $userdir=&main::propath($udom,$uname);
   54:     my $filepath = '/userfiles/internal/studentphoto.jpg';
   55:     my $thumbnail = '/userfiles/internal/studentphoto_tn.gif';
   56:     my $source =  "$userdir/$filepath";
   57:     my $dest = "$userdir/$thumbnail";
   58:     if (-e $dest) {
   59:         return $dest;
   60:     } else {
   61:         if (!-e $source) {
   62:             my $file = &fetch($udom,$uname);
   63:         }
   64:         if (-e $source) {
   65:             my ($fullsize,$thumbsize)=&localstudentphoto::thumbsettings($udom);
   66:             if ($fullsize && $thumbsize) {
   67:                 system("convert -size $fullsize $source -thumbnail $thumbsize $dest");
   68:             }
   69:             if (-e $dest) {
   70:                 return $dest;
   71:             }
   72:         }
   73:     }
   74:     return '';
   75: }   
   76: 
   77: sub thumbsettings {
   78:     my ($dom) = @_;
   79:     my $fullsize = '240x240';
   80:     my $thumbsize = '40x40';
   81:     return ($fullsize,$thumbsize);
   82: }
   83: 
   84: ###############################
   85: # sub AUTOLOAD
   86: #
   87: # Incoming data: none
   88: # Returns ''
   89: #
   90: # Prevents errors when undefined subroutines are called in this package
   91: # Will allow new routines added in the future to be called from lond etc.
   92: # without the need for customized versions of local*.pm packages to be
   93: # modified to include the new subroutines immediately.
   94: #
   95: # See "Programming Perl" 3rd ed. pp 296-298.
   96: ###############################
   97:                                                                                 
   98: sub AUTOLOAD {
   99:     our $AUTOLOAD;
  100:     return '';
  101: }
  102: 
  103: 1;
  104: __END__

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