1############################################################################### 2# ModuleChecker.pm # 3# $Date: 12.02.14 $ # 4############################################################################### 5# YaBB: Yet another Bulletin Board # 6# Open-Source Community Software for Webmasters # 7# Version: YaBB 2.6.11 # 8# Packaged: December 2, 2014 # 9# Distributed by: http://www.yabbforum.com # 10# =========================================================================== # 11# Copyright (c) 2000-2014 YaBB (www.yabbforum.com) - All Rights Reserved. # 12# Software by: The YaBB Development Team # 13# with assistance from the YaBB community. # 14############################################################################### 15use strict; 16#use warnings; 17use CGI::Carp qw(fatalsToBrowser); 18use English qw(-no_match_vars); 19our $VERSION = '2.6.11'; 20 21our $modulecheckerpmver = 'YaBB 2.6.11 $Revision: 1611 $'; 22our ( $action, $yymain, %modulecheck ); 23if ( $action eq 'detailedversion' ) { return 1; } 24 25my $script_root = $ENV{'SCRIPT_FILENAME'}; 26if ( !$script_root ) { 27 $script_root = $ENV{'PATH_TRANSLATED'}; 28} 29 30my ( $checker_output, $i ); 31 32my @modules = qw(Digest::MD5 Time::HiRes Time::Local DateTime DateTime::TimeZone File::Find CGI Net::SMTP Net::SMTP::TLS Net::DNS Mail::CheckUser Compress::Zlib Compress::Bzip2 Archive::Tar Archive::Zip MIME::Lite LWP::UserAgent HTTP::Request::Common Crypt::SSLeay IO::Socket::INET Digest::HMAC_MD5 Carp bytes integer English URI::Escape); 33 34foreach my $module ( @modules ) { 35 eval "require $module;"; 36 my $dont_continue_setup = q{}; 37 38 if ($EVAL_ERROR) { 39 if ( $module eq 'Digest::MD5' ) { $dont_continue_setup = 1; } 40 $i = $modulecheck{'8'}; 41 my $e = $EVAL_ERROR; 42 43 # IE does display the @INC path it in one line :-( 44 # If you use IE and don't like what you see, remove the 45 # comment (#) in next line. 46 # $e =~ s/\//\\/g; 47 $checker_output .= qq~<tr> 48 <td class="windowbg2"><span class="important">$module</span></td> 49 <td class="windowbg2"> 50 $modulecheck{'5'}<br /> 51 <br />$e 52 </td> 53 <td class="windowbg2">$modulecheck{"$module"}</td> 54 </tr>~; 55 } 56 else { 57 if ( $module eq 'DateTime::TimeZone' ) { 58 my $version = $module->VERSION; 59 my $myversion = ( 60 "%s %s is\n %s\n", 61 $module, ( defined $version ? $version : '<NO $VERSION>' ), 62 ); 63 $checker_output .= qq~<tr> 64 <td class="windowbg2"><span class="good">$module</span></td> 65 <td class="windowbg2" colspan="2">$modulecheck{'6'} $modulecheck{'DateTime::TimeZone2'} <b>$myversion</b></td> 66 </tr>~; 67 } 68 else { 69 $checker_output .= qq~<tr> 70 <td class="windowbg2"><span class="good">$module</span></td> 71 <td class="windowbg2" colspan="2">$modulecheck{'6'}</td> 72 </tr>~; 73 } 74 } 75} 76my $perlver = $]; 77 78if ( $script_root !~ /ModuleChecker[.]\w+$/xsm ) { 79 $yymain .= qq~ 80 <div class="bordercolor rightboxdiv" style="float: left; margin-top:.5em"> 81 <table class="border-space pad-cell"> 82 <tr> 83 <td class="titlebg" colspan="3"><b>$modulecheck{'1'}</b></td> 84 </tr><tr> 85 <td class="catbg" colspan="3"> 86 <span class="small">$modulecheck{'2'}</span> 87 </td> 88 </tr><tr> 89 <td class="catbg" colspan="3"> 90 <b>$modulecheck{'perlver'}</b>: $perlver 91 </td> 92 </tr>~ . ( 93 $i 94 ? qq~<tr> 95 <td class="windowbg2"> 96 <span class="important"><b>$modulecheck{'7'}</b></span> 97 </td> 98 <td class="windowbg2" colspan="2">$i</td> 99 </tr>~ 100 : q{} 101 ) 102 . qq~<tr> 103 <td class="catbg center"><b>$modulecheck{'3'}</b></td> 104 <td class="catbg center" colspan="2"><b>$modulecheck{'4'}</b></td> 105 </tr> 106 $checker_output 107 </table> 108 </div>~; 109 110} 1111; 112