#!/usr/bin/perl ######################################### # # # Gallery mod # # for YaBB SP1.1 and 1.31 # # Copyright by Le Trong Hoang # # # ######################################### $url=$ENV{'QUERY_STRING'}; $urlstd=$cgi.";action=gallery"; $sepe="     "; &init; my $albumdir="$galleryabs/$mbcode/$albumname"; my $muser=";moduser=$INFO{'moduser'}"; if(!$INFO{'moduser'}) { $muser=""; } sub Gallery { &readinfo; if($username eq "Guest") { if($allowgst==0) { &fatal_error("$txt{'223'}"); } else { $mbacc=1; } } else { if($mbacc==0 && $allowgst==0) { &fatal_error("$txt{'1'}"); } } $yymain .= qq~
 ~; if($username ne "Guest" && $mbacc) { if($mbupl || $mbmod) { $yymain .= qq~$galltxt{'39'}~; } if($INFO{'album'} && !$INFO{'pubalbum'}) { $yymain .= qq~$galltxt{'40'}~; if($mbupl || $mbmod) { $yymain .= qq~$galltxt{'41'}~; } if($mbpub || $mbmod) { $yymain .= qq~$galltxt{'34'}
~; } if($mbupl || $mbmod) { $yymain .= qq~$galltxt{'42'}~; } $yymain .= qq~$galltxt{'40'}~; if($mbupl || $mbmod) { $yymain .= qq~$galltxt{'41'}~; } $yymain .= qq~$galltxt{'44'}~; } } $yymain .= qq~
~; &showdescrip; $yymain .= qq~  
~; &showmain; $yymain .= qq~ ~; &showalbums; $yymain .= qq~

$galltxt{'32'} ~; if($mbacc) { $yymain .= qq~$galltxt{~; } else { $yymain .= qq~$galltxt{~; } $yymain .= qq~$sepe$galltxt{'33'} ~; if($mbupl) { $yymain .= qq~$galltxt{~; } else { $yymain .= qq~$galltxt{~; } $yymain .= qq~$sepe$galltxt{'34'} ~; if($mbpub) { $yymain .= qq~$galltxt{~; } else { $yymain .= qq~$galltxt{~; } $yymain .= qq~$sepe$galltxt{'35'} ~; if($mbmod) { $yymain .= qq~$galltxt{~; } else { $yymain .= qq~$galltxt{~; } $yymain .= qq~$sepe

~; &template; exit; } sub init { $descrip_on=$ad_descrip_on; $descrip=$ad_descrip; $fotograf_on=$ad_fotograf_on; $fotograf=$ad_fotograf; $caption_on=$ad_caption_on; $view_on=$ad_view_on; $ftheight=$ad_ft_height; $ftcol=$ad_ft_col; $thumbs_on=$ad_thumbs_on; $zip_on=$ad_zip_on; fopen(FILE,"$memberdir/gallerymb.txt"); @Gallerymb = ; chomp(@Gallerymb); close(FILE); foreach (@Gallerymb) { @Mbinfo=split(" ",$_); if($INFO{'useralbum'} eq $Mbinfo[0]) { $usercode=$Mbinfo[1]; } if($_ =~ /^$username /) { $mbcode=$Mbinfo[1]; $mbcodeo=$Mbinfo[1]; $mbacc=substr($Mbinfo[2],0,1); $mbupl=substr($Mbinfo[2],1,1); $mbpub=substr($Mbinfo[2],2,1); $mbmod=substr($Mbinfo[2],3,1); } } fopen(FILE,"$memberdir/galleryalb.txt"); @Galleryalb = ; chomp(@Galleryalb); close(FILE); fopen(FILE,"$memberdir/gallerypub.txt"); @Gallerypub = ; chomp(@Gallerypub); close(FILE); if($INFO{'useralbum'}) { foreach(@Gallerypub) { if($_ =~ /^$usercode /) { push(@Gpub,$_); } } @Gallerypub=@Gpub; } opendir(DIR, $galleryabs) || die "$galleryabs: $!"; @Mbalbums = readdir(DIR); closedir(DIR); foreach(@Mbalbums) { if($mbcode eq $_) { last; } else { mkdir("$galleryabs/$mbcode",0777); chmod(0777,"$galleryabs/$mbcode"); } } $mbdir="$galleryabs/$mbcode"; opendir(DIR, $mbdir) || die "$mbdir: $!"; @Albums = readdir(DIR); closedir(DIR); my @Albus=@Albums; $conalbum=0; $congalfoto=0; $congalsize=0; foreach(@Albus) { if($_ eq "." || $_ eq ".." || $_ eq "_vti_cnt") { splice(@Albums,$albnum,1); next; } else { if($INFO{'album'} eq $_) { $albumname=$_; } $conalbum++; } $albumdir="$mbdir/$_"; opendir(DIR, $albumdir) || die "$albumdir: $!"; my @Elements = readdir(DIR); closedir(DIR); foreach(@Elements) { if($_ ne "." && $_ ne ".." && $_ ne "_vti_cnt" && $_ !~ /^$ad_th_name/ && $_ !~ /\.zip/ && $_ !~ /\.tar/) { $congalfoto++; } my @Inf=stat("$albumdir/$_"); $congalsize+=$Inf[7]; } } if($mbmod && $INFO{'moduser'} && !$INFO{'useralbum'}) { $albumname=$INFO{'album'}; $guser=$INFO{'moduser'}; foreach(@Gallerymb) { if($_ =~ /^$guser /) { @Galluser=split(/ /,$_); $mbcode=$Galluser[1]; $mbdir="$galleryabs/$mbcode"; last; } } } } sub readinfo { if($ad_thumbs_on) { $thumbs=$ad_th_name; } else { $thumbs=""; } if($INFO{'pubalbum'}) { $albumname=$INFO{'pubalbum'}; foreach(@Gallerypub) { if(index($_,$albumname) >=0) { @Pubs=split(/ /,$_); $mbcode=$Pubs[0]; } } $albumdir="$galleryabs/$mbcode/$albumname"; } foreach(@Galleryalb) { if($_ =~ /$mbcode $albumname /) { @Albinfo=split(" ",$_); last; } } if($allowset) { $descrip_on=$Albinfo[2]; if($ad_descrip_on && $descrip_on) { if($Albinfo[3]) { $Albinfo[3] =~ s/_/ /g; $descrip=$Albinfo[3]; } } $fotograf_on=$Albinfo[4]; if($ad_fotograf_on && $fotograf_on) { if($Albinfo[5]) { $Albinfo[5] =~ s/_/ /g; $fotograf=$Albinfo[5]; } } $caption_on=$Albinfo[6]; $view_on=$Albinfo[7]; if($ad_view_on && $view_on) { $fotoheight=$Albinfo[8]; } if($ad_view_on && $view_on && $ftcol) { $fotocol=$Albinfo[9]; } $thumbs_on=$Albinfo[10]; if($ad_thumbs_on && $thumbs_on) { $thumbs=$ad_th_name; } else { $thumbs=""; } $zip_on=$Albinfo[11]; } @caps=split("°°°",$Albinfo[12]); foreach(@caps) { my @cp=split("°°",$_); push(@capfiles,$cp[0]); push(@captions,$cp[1]); } foreach(@captions) { $_ =~ s/°/ /g; } } sub showdescrip { $yymain .= qq~~; if($username eq "Guest" && $url eq "board=;action=gallery") { $fotograf=0; } if($ad_fotograf_on) { $yymain .= qq~
~; if($ad_descrip_on) { if($descrip_on && ($INFO{'album'} || $INFO{'pubalbum'})) { $yymain .= qq~$descrip~; } else { $yymain .= qq~$ad_descrip~; } } $yymain .= qq~~; if($ad_fotograf || $fotograf) { $yymain .= qq~$galltxt{'13'} ~; if($fotograf_on && ($INFO{'album'} || $INFO{'pubalbum'})) { $yymain .= qq~$fotograf~; } else { $yymain .= qq~$ad_fotograf~; } } $yymain .= qq~
~; } else { if($ad_descrip_on && $descrip_on) { $yymain .= qq~~; } } } sub showalbums { $pubstrg=" "; foreach(@Gallerypub) { @Pubs=split(/ /,$_); if($albumname eq $Pubs[1]) { $pubstrg .= "$galltxt{$albalt $_~; $albnum++; } } $yymain .= qq~$pubstrg~; if($mbmod && !$INFO{'useralbum'}) { my @Membnames; my @Membcodes; foreach(@Gallerymb) { @Membs=split(/ /,$_); push(@Membnames,$Membs[0]); push(@Membcodes,$Membs[1]); } $yymain .= qq~ ~; foreach(@Galleryalb) { @Allalbs=split(/ /,$_); for(my $p=0;$p<=$#Membcodes;$p++) { if($Membcodes[$p]==$Allalbs[0]) { foreach (@Gallerypub) { if($_ eq "$Allalbs[0] $Allalbs[1]") { $pubind="2"; $albalt="$galltxt{'47'}"; last; } else { $pubind=""; $albalt="$galltxt{'46'}"; } } $yymain .= qq~$albalt $Allalbs[1] [$Membnames[$p]]~; } } } } } sub showmain { if($url eq "board=;action=gallery" || ($INFO{'useralbum'} && !$INFO{'pubalbum'})) { $yymain .= qq~
~; } if($INFO{'pubalbum'}) { $albumdir="$galleryabs/$mbcode/$albumname"; } opendir(DIR, $albumdir) || die "$albumdir: $!"; my @Elements = readdir(DIR); closedir(DIR); $albumdir="$galleryrel/$mbcode/$albumname"; foreach(@Elements) { @Inf=stat("$albumdir/$_"); $size=$size+$Inf[7]; if($_ eq "." || $_ eq ".." || $_ eq "_vti_cnt" || $_ =~ /^$ad_th_name/) { next; } elsif($_ =~ /\.zip/ || $_ =~ /\.tar/) { $zip=$_; } else { push(@Fotos,$_); } } $confoto=@Fotos; $consize=$size; if($INFO{'modify'} eq "editinfo" && $allowset && $username ne "Guest" && $mbacc) { my $enable="$galltxt{"; my $disable="$galltxt{"; $yymain .= qq~
~; if(!$Albinfo[2]) { $onoff="unchecked"; } else { $onoff="checked"; } if(!$Albinfo[3]) { $Albinfo[3]=""; } if(!$ad_descrip_on) { $ad_descrip_on=$disable; } else { $ad_descrip_on=$enable; } if(!$ad_descrip) { $ad_descrip="$galltxt{'68'}"; } $yymain .= qq~~; if(!$Albinfo[4]) { $onoff="unchecked"; } else { $onoff="checked"; } if(!$Albinfo[5]) { $Albinfo[5]=""; } if(!$ad_fotograf_on) { $ad_fotograf_on=$disable; } else { $ad_fotograf_on=$enable; } if(!$ad_fotograf) { $ad_fotograf="$galltxt{'68'}"; } $yymain .= qq~~; if(!$Albinfo[6]) { $onoff="unchecked"; } else { $onoff="checked"; } if(!$ad_caption_on) { $ad_caption_on=$disable; } else { $ad_caption_on=$enable; } $yymain .= qq~~; if(!$Albinfo[7]) { $onoff="unchecked"; } else { $onoff="checked"; } if(!$ad_view_on) { $ad_view_on=$disable; } else { $ad_view_on=$enable; } if(!$Albinfo[8]) { $Albinfo[8]=""; } if(!$ad_ft_height) { $ad_ft_height="$galltxt{'68'}"; } $yymain .= qq~~; if(!$Albinfo[9]) { $Albinfo[9]=""; } $yymain .= qq~~; if(!$Albinfo[10]) { $onoff="unchecked"; } else { $onoff="checked"; } if(!$ad_thumbs_on) { $ad_thumbs_on=$disable; } else { $ad_thumbs_on=$enable; } $yymain .= qq~~; if(!$Albinfo[11]) { $onoff="unchecked"; } else { $onoff="checked"; } if(!$ad_zip_on) { $ad_zip_on=$disable; } else { $ad_zip_on=$enable; } $yymain .= qq~
$galltxt{'66'}$galltxt{'67'}
$galltxt{'10'}$ad_descrip_on
$galltxt{'11'}$ad_descrip
$galltxt{'12'}$ad_fotograf_on
$galltxt{'13'}$ad_fotograf
$galltxt{'14'}$ad_caption_on
$galltxt{'15'}$ad_view_on
$galltxt{'16'}$sepe$galltxt{'17'}$ad_ft_height
$galltxt{'18'}$ad_ft_col
$galltxt{'19'}$ad_thumbs_on
$galltxt{'22'}$ad_zip_on

~; } @Fotos=sort(@Fotos); my @capsort; my @capfilesort; my $count=0; foreach(@Fotos) { for(my $c=0;$c<=$#captions;$c++) { if($_ eq $capfiles[$c]) { $capsort[$count]=$captions[$c]; $capfilesort[$count]=$capfiles[$c]; } } $count++; } my @captions=@capsort; my @capfiles=@capfilesort; $findex=0; if(($INFO{'album'} && (!$INFO{'modify'} || $INFO{'modify'} eq "fotoren" || $INFO{'modify'} eq "fotodel" || $INFO{'modify'} eq "editinfo")) || $INFO{'pubalbum'}) { if($INFO{'modify'} eq "fotoren" && $username ne "Guest" && $mbacc) { $yymain .= qq~
~; } if($INFO{'modify'} eq "fotodel" && $username ne "Guest" && $mbacc && ($mbupl || $mbmod)) { $ad_zip_on=1; $zip_on=1; $yymain .= qq~~; } if($INFO{'modify'} eq "editinfo" && $username ne "Guest" && $mbacc && @Fotos) { $yymain .= qq~
$galltxt{'70'}

~; $zip_on=0; } $yymain .= qq~~; foreach(@Fotos) { $colum++; if($colum==1) { $yymain .= qq~~; } if($_ =~ /\.jpg/ || $_ =~ /\.png/ || $_ =~ /\.gif/) { $yymain .= qq~~; } if($INFO{'modify'} eq "fotodel" && $username ne "Guest" && $mbacc && ($mbupl || $mbmod)) { $yymain .= qq~

~; } if($captions[$findex] eq "0") { $captions[$findex]="" } if($INFO{'modify'} eq "editinfo" && $username ne "Guest" && $mbacc) { $yymain .= qq~


~; } else { if($ad_caption_on && $caption_on && !$INFO{'modify'}) { $yymain .= qq~

$captions[$findex]~; } $yymain .= qq~~; } if($colum==$fotocol) { $yymain .= qq~~; $colum=0; } $findex++; } if($ad_zip_on && $zip_on && $zip) { $yymain .= qq~

~; } if($INFO{'modify'} eq "fotoren" && $username ne "Guest" && $mbacc) { $yymain .= qq~


~; if($INFO{'modify'} eq "fotoren" && $username ne "Guest" && $mbacc) { $yymain .= qq~


~; } elsif($INFO{'modify'} eq "fotodel" && $username ne "Guest" && $mbacc && ($mbupl || $mbmod)) { $yymain .= qq~

~; } else { $yymain .= qq~~; } } else { $yymain .= qq~~; } if(($INFO{'modify'} eq "fotoren" || $INFO{'modify'} eq "fotodel") && $username ne "Guest" && $mbacc) { $yymain .= qq~ ~; if($INFO{'modify'} eq "fotoren") { $yymain .= qq~

$galltxt{'36'}$sepe$sepe~; $yymain .= qq~
~; } if($INFO{'modify'} eq "fotodel" && ($mbupl || $mbmod)) { $yymain .= qq~

$galltxt{'36'}$sepe$sepe~; $yymain .= qq~~; } } if($INFO{'modify'} eq "editinfo" && $username ne "Guest" && $mbacc && @Fotos) { $yymain .= qq~~; } } elsif($INFO{'modify'} eq "albcrt" && $username ne "Guest" && $mbacc && ($mbupl || $mbmod)) { if($maxalbum && $conalbum==$maxalbum) { fatal_error("$galltxt{'75'}"); } $yymain .= qq~
$galltxt{'51'}$sepe$sepe
~; } elsif($INFO{'modify'} eq "albren" && $username ne "Guest" && $mbacc) { $yymain .= qq~
$galltxt{'52'}$sepe$sepe$galltxt{'53'}$sepe$sepe
~; } elsif($INFO{'modify'} eq "albdel" && $username ne "Guest" && $mbacc && ($mbupl || $mbmod)) { $yymain .= qq~
$galltxt{'54'}$sepe$sepe
~; } elsif($INFO{'modify'} eq "albpub" && $username ne "Guest" && $mbacc && ($mbpub || $mbmod)) { if(!$mbpub && !$mbmod) { $yymain .= qq~
~; &fatal_error("$txt{'1'}"); } $unpub=$galltxt{'34'}; foreach(@Gallerypub) { if(index($_,$albumname) >= 0) { my @Pubs=split(/ /,$_); if($mbcode==$Pubs[0]) { $unpub=$galltxt{'56'}; } last; } } $unpub=lcfirst($unpub); $yymain .= qq~
$galltxt{'55'}$unpub$sepe$sepe
~; } elsif($INFO{'modify'} eq "fotoupl" && $username ne "Guest" && $mbacc && ($mbupl || $mbmod)) { $yymain .= qq~
$galltxt{'45'} $galltxt{'57'} $galltxt{'58'} $galltxt{'57'} $galltxt{'59'} $galltxt{'38'} $galltxt{'58'} $galltxt{'38'} $galltxt{'59'}
$galltxt{'60'} $maxalbum $maxfoto $maxsize $maxgalfoto $maxgalsize
$galltxt{'61'}$conalbum$confoto$consize$congalfoto$congalsize
~; if($ad_thumbs_on && $thumbs_on) { $yymain .= qq~
$galltxt{'73'} $ad_th_name~; } my $enupl; if((!$ad_zip_on || !$zip_on || $zip) && (($maxfoto && $confoto==$maxfoto) || ($maxgalfoto && $congalfoto==$maxgalfoto))) { $enupl=0; } else { $enupl=1; } if($enupl) { $yymain .= qq~
~; if($ad_zip_on && $zip_on && !$zip) { $yymain .= qq~~; } my $num=$confoto+1; if(!$maxfoto) { $maxfoto=5+$num; } if(!$maxgalfoto) { $maxgalfoto=$maxfoto; } for(my $x=1;$x<=5;$x++) { unless($num>$maxfoto || $num>$maxgalfoto) { my $inpname="uplfoto".$x; $yymain .= qq~~; $num++; } } $yymain .= qq~
$sepe$sepe$sepe$sepe$sepe$galltxt{'62'}
$galltxt{'63'} $sepe$sepe
$num $sepe$sepe
$sepe$sepe$sepe$sepe
~; } } } sub albcrt { $FORM{'crtalbum'} =~ s/.+\\([^\\]+)$|.+\/([^\/]+)$/$1/; $FORM{'crtalbum'} =~ s/[#%+,\/:.?"<>'|@°^();!§$=`\^°²³{\[\]}´*~]//g; $FORM{'crtalbum'} =~ s/ /_/g; $FORM{'crtalbum'} =~ s/ä/ae/g; $FORM{'crtalbum'} =~ s/ö/oe/g; $FORM{'crtalbum'} =~ s/ü/ue/g; $FORM{'crtalbum'} = lc($FORM{'crtalbum'}); foreach(@Galleryalb) { my @albs=split(" ",$_); if($albs[1] eq $FORM{'crtalbum'}) { $exist=1; last;} } if($exist) { &fatal_error("$galltxt{'71'}"); } mkdir("$galleryabs/$mbcode/$FORM{'crtalbum'}",0777); chmod(0777,"$galleryabs/$mbcode/$FORM{'crtalbum'}"); if(!$ad_descrip) { $ad_descrip="0"; } $ad_descrip =~ s/ /_/g; if(!$ad_fotograf) { $ad_fotograf="0"; } $ad_fotograf =~ s/ /_/g; if(!$ad_ft_height) { $ad_ft_height="0"; } $new="$mbcode $FORM{'crtalbum'} $ad_descrip_on $ad_descrip $ad_fotograf_on $ad_fotograf $ad_caption_on $ad_view_on $ad_ft_height $ad_ft_col 0 $ad_zip_on"; @Newalbs=@Galleryalb; $count=0; foreach(@Galleryalb) { my @albs=split(" ",$_); if($albs[0]==$mbcode) { splice(@Newalbs,$count,0,$new); $exist=1; last;} $count++; } if(!$exist) { push(@Newalbs,$new); } $count=0; foreach(@Galleryalb) { if($Newalbs[$count]) { $Newalbs[$count]="$Newalbs[$count]\n"; } $count++; } fopen(FILE,">$memberdir/galleryalb.txt"); print FILE @Newalbs; close(FILE); $yySetLocation = qq~$urlstd;album=$FORM{'crtalbum'}$muser~; &redirectexit; } sub albren { $FORM{'renalbum2'} =~ s/.+\\([^\\]+)$|.+\/([^\/]+)$/$1/; $FORM{'renalbum2'} =~ s/[#%+,\/:.?"<>'|@°^();!§$=`\^°²³{\[\]}´*~]//g; $FORM{'renalbum2'} =~ s/ /_/g; $FORM{'renalbum2'} =~ s/ä/ae/g; $FORM{'renalbum2'} =~ s/ö/oe/g; $FORM{'renalbum2'} =~ s/ü/ue/g; $FORM{'renalbum2'} = lc($FORM{'renalbum2'}); foreach(@Galleryalb) { my @albs=split(" ",$_); if($albs[1] eq $FORM{'renalbum2'}) { $exist=1; last;} } if($exist) { &fatal_error("$galltxt{'72'}"); } $rendir="$galleryabs/$mbcode/$FORM{'renalbum'}"; $rendir2="$galleryabs/$mbcode/$FORM{'renalbum2'}"; rename($rendir,$rendir2); @Newpubs=@Gallerypub; $count=0; foreach(@Gallerypub) { if(index($_,"$mbcode $FORM{'renalbum'}") >= 0) { $Newpubs[$count]="$mbcode $FORM{'renalbum2'}"; } if($Newpubs[$count]) { $Newpubs[$count]="$Newpubs[$count]\n"; } $count++; } fopen(FILE,">$memberdir/gallerypub.txt"); print FILE @Newpubs; close(FILE); @Albsinfo=@Galleryalb; $count=0; foreach(@Galleryalb) { if(index($_,"$mbcode $FORM{'renalbum'}") >= 0) { my @string=split(/ /,$_); $string[1]=$FORM{'renalbum2'}; my $new=join(" ",@string); splice(@Albsinfo,$count,1,$new); } if($Albsinfo[$count]) { $Albsinfo[$count]="$Albsinfo[$count]\n"; } $count++; } fopen(FILE,">$memberdir/galleryalb.txt"); print FILE @Albsinfo; close(FILE); $yySetLocation = qq~$urlstd;album=$FORM{'renalbum2'}$muser~; &redirectexit; } sub albdel { my $deldir="$galleryabs/$mbcode/$FORM{'delalbum'}"; opendir(DIR,$deldir) || die "$deldir: $!"; my @Elements = readdir(DIR); closedir(DIR); foreach(@Elements) { unlink("$deldir/$_"); } rmdir($deldir); my @Newpubs=@Gallerypub; my $count=0; foreach(@Gallerypub) { if(index($_,"$mbcode $FORM{'delalbum'}") >= 0) { splice(@Newpubs,$count,1); } if($Newpubs[$count]) { $Newpubs[$count]="$Newpubs[$count]\n"; } $count++; } fopen(FILE,">$memberdir/gallerypub.txt"); print FILE @Newpubs; close(FILE); my @Albsinfo=@Galleryalb; my $count=0; foreach(@Galleryalb) { if(index($_,"$mbcode $FORM{'delalbum'}") >= 0) { splice(@Albsinfo,$count,1); } if($Albsinfo[$count]) { $Albsinfo[$count]="$Albsinfo[$count]\n"; } $count++; } fopen(FILE,">$memberdir/galleryalb.txt"); print FILE @Albsinfo; close(FILE); $yySetLocation = qq~$urlstd~; &redirectexit; } sub albpub { my @Newpubs=@Gallerypub; my @pub=("$mbcode $FORM{'pubalbum'}\n"); $count=0; foreach(@Gallerypub) { if($_ eq "$mbcode $FORM{'pubalbum'}") { splice(@Newpubs,$count,1); $exist=1; } if($Newpubs[$count]) { $Newpubs[$count]="$Newpubs[$count]\n"; } $count++; } fopen(FILE,">$memberdir/gallerypub.txt"); if(!$exist) { push(@pub,@Newpubs); print FILE @pub; } else { print FILE @Newpubs; } close(FILE); $yySetLocation = qq~$urlstd;album=$FORM{'pubalbum'}$muser~; &redirectexit; } sub fotoupl { use CGI; my $query = new CGI; $uplalbum = $query->param('uplalbum'); my $upldir="$galleryabs/$mbcode/$uplalbum"; opendir(DIR,$upldir) || die "$upldir: $!"; my @Elements = readdir(DIR); closedir(DIR); my @Inf; foreach(@Elements) { @Inf=stat("$upldir/$_"); $size=$size+$Inf[7]; } $consize=$size; $zipfile = $query->param('uplzip'); my $zname = $zipfile; $zname =~ s/.*\\//g; $zname =~ s/[#%+,\/:?"<>'|@°^();!§$=`\^°²³{\[\]}´*~]//g; $zname =~ s/ /_/g; $zname =~ s/ä/ae/g; $zname =~ s/ö/oe/g; $zname =~ s/ü/ue/g; $zname=lc($zname); if($zname =~ /\.zip/ || $zname =~ /\.tar/) { $write_zip = "$upldir/$zname"; fopen(ZDAT,">$write_zip"); binmode $zipfile; binmode ZDAT; while (read($zipfile,my $buffer,1024)) { print ZDAT $buffer; } fclose(ZDAT); my @Inf=stat("$write_zip"); $consize=$consize+$Inf[7]; $congalsize=$congalsize+$Inf[7]; if(($maxsize && $consize>$maxsize) || ($maxgalsize && $congalsize>$maxgalsize)) { unlink("$write_zip"); fatal_error("$galltxt{'76'}"); } } my @Newfiles; for(my $x=1;$x<=5;$x++) { $feld = "uplfoto".$x; my $file = $query->param($feld); my $fname = $file; $fname =~ s/.*\\//g; $fname =~ s/[#%+\/:,?"<>'|@°^();!§$=`\^°²³{\[\]}´*~]//g; $fname =~ s/ /_/g; $fname =~ s/ä/ae/g; $fname =~ s/ö/oe/g; $fname =~ s/ü/ue/g; $fname=lc($fname); if($fname =~ /\.jpg/ || $fname =~ /\.gif/ || $fname =~ /\.png/) { push(@Newfiles,$fname); $write_file = "$upldir/$fname"; fopen(DAT,">$write_file"); binmode $file; binmode DAT; while (read($file,my $buffer,1024)) { print DAT $buffer; } fclose(DAT); } my @Inf=stat("$write_file"); $consize=$consize+$Inf[7]; $congalsize=$congalsize+$Inf[7]; if(($maxsize && $consize>$maxsize) || ($maxgalsize && $congalsize>$maxgalsize)) { unlink("$write_file"); fatal_error("$galltxt{'76'}"); } } for(my $x=0;$x<=$#Newfiles;$x++) { $Newfiles[$x]="$Newfiles[$x]°°0"; } my @Albsinfo=@Galleryalb; my $count=0; foreach(@Galleryalb) { if(index($_,"$mbcode $FORM{'modalbum'}") >= 0) { my @Alb=split(/ /,$_); if($Alb[12]) { my @caps=split(/°°°/,$Alb[12]); push(@caps,@Newfiles); @caps=sort(@caps); $Alb[12]=join("°°°",@caps); } $Albsinfo[$count]=join(" ",@Alb); } if($Albsinfo[$count]) { $Albsinfo[$count]="$Albsinfo[$count]\n"; } $count++; } fopen(FILE,">$memberdir/galleryalb.txt"); print FILE @Albsinfo; close(FILE); $yySetLocation = qq~$urlstd;album=$uplalbum$muser~; &redirectexit; } sub fotoren { $FORM{'renfoto2'} =~ s/.+\\([^\\]+)$|.+\/([^\/]+)$/$1/; $FORM{'renfoto2'} =~ s/[#%+\/:?"<>'|@°^();!§$=`\^°²³{\[\]}´*~]//g; $FORM{'renfoto2'} =~ s/ä/ae/g; $FORM{'renfoto2'} =~ s/ö/oe/g; $FORM{'renfoto2'} =~ s/ü/ue/g; my $rendir="$galleryabs/$mbcode/$FORM{'modalbum'}"; opendir(DIR,$rendir) || die "$rendir: $!"; my @Elements = readdir(DIR); closedir(DIR); foreach(@Elements) { if($_ ne "." && $_ ne ".." && $_ ne "_vti_cnt" && $_ !~ /^$ad_th_name/ && $_ !~ /\.tar/ && $_ !~ /\.zip/) { push(@Fotos,$_); } } @Fotos=sort(@Fotos); my @Rename=split(/, /,$FORM{'foto'}); my @Oldnames=split(/, /,$FORM{'renfoto'}); my @Newnames=split(/, /,$FORM{'renfoto2'}); foreach(@Newnames) { $_ =~ s/,//g; $_ =~ s/ /_/g; $_ = lc($_); if(index($FORM{'renfoto'},$_) >= 0 && ($_ =~ /\.jpg/ || $_ =~ /\.png/ || $_ =~ /\.gif/) ) { &fatal_error("$galltxt{'71'}"); } } my $type; foreach(@Rename) { $type=substr($Fotos[$_],length($Fotos[$_])-4,4); if($Newnames[$_] && $Newnames[$_] =~ /$type$/) { rename("$rendir/$Fotos[$_]","$rendir/$Newnames[$_]"); rename("$rendir/$ad_th_name$Fotos[$_]","$rendir/$ad_th_name$Newnames[$_]"); } else { $error=1; } } $FORM{'renzip2'} =~ s/.+\\([^\\]+)$|.+\/([^\/]+)$/$1/; $FORM{'renzip2'} =~ s/[#%+\/:,?"<>'|@°^();!§$=`\^°²³{\[\]}´*~]//g; $FORM{'renzip2'} =~ s/ä/ae/g; $FORM{'renzip2'} =~ s/ö/oe/g; $FORM{'renzip2'} =~ s/ü/ue/g; $type=substr($FORM{'renzip'},length($FORM{'renzip'})-4,4); if($FORM{'zip'} && $FORM{'renzip2'} =~ /$type$/) { rename("$rendir/$FORM{'renzip'}","$rendir/$FORM{'renzip2'}") } elsif($FORM{'renzip2'} !~ /$type$/ && $FORM{'renzip2'}) { $error=1; } my @Albsinfo=@Galleryalb; my $count=0; foreach(@Galleryalb) { if(index($_,"$mbcode $FORM{'modalbum'}") >= 0) { @Alb=split(/ /,$_); for(my $x=0;$x<=$#Newnames;$x++) { if($Newnames[$x]) { $Alb[12] =~ s/$Oldnames[$x]/$Newnames[$x]/g; } } $Albsinfo[$count]=join(" ",@Alb); } if($Albsinfo[$count]) { $Albsinfo[$count]="$Albsinfo[$count]\n"; } $count++; } fopen(FILE,">$memberdir/galleryalb.txt"); print FILE @Albsinfo; close(FILE); if($error) { &fatal_error("$galltxt{'72'}"); } $yySetLocation = qq~$urlstd;album=$FORM{'modalbum'}$muser;modify=fotoren~; &redirectexit; } sub fotodel { my $deldir="$galleryabs/$mbcode/$FORM{'modalbum'}"; opendir(DIR,$deldir) || die "$deldir: $!"; my @Elements = readdir(DIR); closedir(DIR); foreach(@Elements) { if($_ ne "." && $_ ne ".." && $_ ne "_vti_cnt" && $_ !~ /^$ad_th_name/ && $_ !~ /\.tar/ && $_ !~ /\.zip/) { push(@Fotos,$_); } } @Fotos=sort(@Fotos); @Delete=split(/, /,$FORM{'foto'}); foreach(@Delete) { unlink("$deldir/$Fotos[$_]"); unlink("$deldir/$ad_th_name$Fotos[$_]"); } if($FORM{'zip'}) { unlink("$deldir/$FORM{'zip'}"); } my @Albsinfo=@Galleryalb; my $count=0; foreach(@Galleryalb) { if(index($_,"$mbcode $FORM{'modalbum'}") >= 0) { my @Alb=split(/ /,$_); if($Alb[12]) { my @caps=split(/°°°/,$Alb[12]); for(my $x=0;$x<=$#Delete;$x++) { splice(@caps,$Delete[$x],1); } $Alb[12]=join("°°°",@caps); } $Albsinfo[$count]=join(" ",@Alb); } if($Albsinfo[$count]) { $Albsinfo[$count]="$Albsinfo[$count]\n"; } $count++; } fopen(FILE,">$memberdir/galleryalb.txt"); print FILE @Albsinfo; close(FILE); $yySetLocation = qq~$urlstd;album=$FORM{'modalbum'}$muser;modify=fotodel~; &redirectexit; } sub editinfo { my $albstr="$mbcode $FORM{'infalbum'}"; if($FORM{'use_descrip'}) { $albstr.=" $FORM{'use_descrip'}" } else { $albstr.=" 0" } if($FORM{'description'}) { $FORM{'description'} =~ s/"/'/g; $FORM{'description'} =~ s/ /_/g; $albstr.=" $FORM{'description'}"; } else { $albstr.=" 0" } if($FORM{'use_fotograf'}) { $albstr.=" $FORM{'use_fotograf'}" } else { $albstr.=" 0" } if($FORM{'fotografer'}) { $FORM{'fotografer'} =~ s/"/'/g; $FORM{'fotografer'} =~ s/ /_/g; $albstr.=" $FORM{'fotografer'}"; } else { $albstr.=" 0" } if($FORM{'use_caption'}) { $albstr.=" $FORM{'use_caption'}" } else { $albstr.=" 0" } if($FORM{'use_view'}) { $albstr.=" $FORM{'use_view'}" } else { $albstr.=" 0" } if($FORM{'ft_height'}) { if($FORM{'ft_height'} =~ /\D/) { $albstr.=" 0" } else { $albstr.=" $FORM{'ft_height'}"; } } else { $albstr.=" 0" } if($FORM{'rownum'}) { if($FORM{'rownum'} =~ /\D/) { $albstr.=" 0" } else { $albstr.=" $FORM{'rownum'}"; } } else { $albstr.=" 0" } if($FORM{'use_thumbs'}) { $albstr.=" $FORM{'use_thumbs'}" } else { $albstr.=" 0" } if($FORM{'use_zip'}) { $albstr.=" $FORM{'use_zip'}" } else { $albstr.=" 0" } my @Albsinfo=@Galleryalb; my $new=1; my $count=0; foreach(@Galleryalb) { if(index($_,"$mbcode $FORM{'infalbum'}") >= 0) { my @Old=split(/ /,$_); splice(@Albsinfo,$count,1,"$albstr $Old[12]\n"); $new=0; } if($Albsinfo[$count]) { $Albsinfo[$count]="$Albsinfo[$count]\n"; } $count++; } if($new==1) { push(@Albsinfo,"$albstr\n"); } fopen(FILE,">$memberdir/galleryalb.txt"); print FILE @Albsinfo; close(FILE); $yySetLocation = qq~$urlstd;album=$FORM{'infalbum'}$muser~; &redirectexit; } sub caption { my $capdir="$galleryabs/$mbcode/$FORM{'modalbum'}"; opendir(DIR,$capdir) || die "$capdir: $!"; my @Elements = readdir(DIR); closedir(DIR); foreach(@Elements) { if($_ ne "." && $_ ne ".." && $_ ne "_vti_cnt" && $_ !~ /^$ad_th_name/ && $_ !~ /\.tar/ && $_ !~ /\.zip/) { push(@Fotos,$_); } } @Fotos=sort(@Fotos); $FORM{'capfoto'} =~ s/[°]//g; my @cpts=split(/\, /,$FORM{'capfoto'}); my @cptfiles=split(/, /,$FORM{'foto'}); my @newcaps; for(my $x=0;$x<=$#cptfiles;$x++) { if(!$cpts[$x]) { $cpts[$x]=0 } $newcaps[$x]="$cptfiles[$x]°°$cpts[$x]"; } my $new=join("°°°",@newcaps); my @Inform=@Galleryalb; $count=0; foreach(@Galleryalb) { if(index($_,"$mbcode $FORM{'modalbum'}") >= 0) { my @Albinf=split(" ",$_); splice(@Albinf,12,1,$new); $Albinf[12] =~ s/ /°/g; $Albinf[12] =~ s/"/'/g; my $infstr=join(" ",@Albinf); splice(@Inform,$count,1,$infstr); } if($Inform[$count]) { $Inform[$count]="$Inform[$count]\n"; } $count++; } fopen(FILE,">$memberdir/galleryalb.txt"); print FILE @Inform; close(FILE); $yySetLocation = qq~$urlstd;album=$FORM{'modalbum'}$muser~; &redirectexit; } 1;