⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 attachadmin.cgi

📁 一个linux论坛
💻 CGI
📖 第 1 页 / 共 3 页
字号:
	}
	if($attachcount == 0){
		print qq~
		<tr><td align="center" colspan="5" height="30" valign="middle"><br><br>最少选择一个需要删除的附件<br><br><br></td></tr>
		~;
	}else{
		if($start ne "checked"){
		print qq~<tr><td align="center" colspan="3" bgcolor="#DDDDDD">需要删除附件 $allattachcount 个</td><td align="center" bgcolor="#DDDDDD" colspan="2"><input type="submit" name="Submit" value="确定删除"></td></tr>~;
		}else{
		print qq~<tr><td align="center" colspan="3" bgcolor="#DDDDDD">共删除附件 $allattachcount 个</td><td align="center" bgcolor="#DDDDDD" colspan="2">已上附件已被完全删除</td></tr>~;
		}
	}
	print qq~
	</table></form>
	</td>
	</tr>
	<tr><td bgcolor="#FFFFFF" align="center" valign="middle" colspan="2" height="50">--<a href="$thisprog?forum=$forum&eachp=$eachp">返回</a>--</td></tr>~;
}
sub toppage{
	$attachdir="${imagesdir}usr/$forum";
	if($forum ne ""){
		if(!-d $attachdir){
	&errorout("管理程式出错","找不到附件目录 - $attachdir");return;
		}
	}
	print qq~
	<tr>
	<td bgcolor="#EEEEEE" align=center>
	<font color="#990000"><b>使用说明</b>
	</td>
	</tr>
	<tr>
	<td bgcolor="#FFFFFF" align=center>
	  本程序的是为了管理文章附件而设,在这里可快速删除和检查附件。<p>
	  请在使用前注意以下几点:<p>
	<table width=80%>
	<tr><td><ol type="1">
	<li>基本变量设置中,路径的配置是否使用绝对路径。如果不是,请改成绝对路径。<p>
	<li>检查 ${imagesdir}usr 目录是否设置为可读写。如果不是,请设为可读写。<p></ol>
	</td></tr>
	</table>
	</td>
	</tr>
	<tr>
	<td bgcolor="#EEEEEE" align=center>
	<font color="#990000"><b>附件管理设置</b>
	</td>
	</tr>
	<tr>
	<td bgcolor="#FFFFFF" align=center colspan=2>
	~;
	$eachp=20 if(!$eachp);
my $filetoopen = "$lbdir" . "data/allforums.cgi";
$filetoopen = &stripMETA($filetoopen);
open(FILE, "$filetoopen");
flock(FILE, 2) if ($OS_USED eq "Unix");
my @forums = <FILE>;
close(FILE);
chomp @forums;
$forumlist=(join("\n",@forums))."\n";
$forumlist=~s/(.+?)\t(.+?)\t(.+?)\t(.+?)\t(.+?)\n/<option value="$1">$4<\/option>/g;
$forumlist =~ s/option value=\"$forum\"/option value=\"$forum\" selected style='color:#990000'>>/g if($forum ne "");
$selectsort{$sortt}=" selected";
$selectaord{$aord}=" selected";
	print qq~
	<table width=100%><form action="$thisprog" method=get name=form><tr><td align="right" width="15%">选择分论坛:</td><td width="*"><select name="forum" style="width:100%">$forumlist</select></td><td align="right" width="10%">每页显示:</td><td width="15%"><input type="text" name="eachp" value="$eachp" style="width:80%"> 个</td><td width="25%"><select name="sortt" style="width:65%"><option value="name"$selectsort{name}>依主题编号</option><option value="size"$selectsort{size}>依附件容量</option><option value="lastmod"$selectsort{lastmod}>依上传日期</option></select><select name="aord" style="width:35%"><option value="d"$selectaord{d}>降序</option><option value="a"$selectaord{a}>升序</option></select></td><td width="10%" align="center"><input type="submit" value="查看附件"></td></tr></form></table>
	</td>
	</tr>
	~;
	if($forum ne ""){
	print qq~
<script language="JavaScript" type="text/javascript">
var wincount=1;
function admin(forumid,topicid,replyid,countid,action){
var Win=window.open("$thisprog?action="+action+"&forum="+forumid+"&topic="+topicid+"&reply="+replyid+"&count="+countid,"openScript"+wincount,'width=400,height=200,resizable=0,scrollbars=0,menubar=0,status=1');
wincount++;
if(wincount>9999)wincount=1;
}
</script>
	<tr>
	<td bgcolor="#FFFFFF" align=center colspan=2><form action="$thisprog" method=post name=form>
	<input type="hidden" name="forum" value="$forum">
	<input type="hidden" name="start" value="unchecked">
	<input type="hidden" name="pageaction" value="1">
	<input type="hidden" name="action" value="multdelete">
	<input type="hidden" name="sortt" value="$sortt">
	<input type="hidden" name="aord" value="$aord">
	<input type="hidden" name="eachp" value="$eachp">
	<table width=90% cellspacing="0" cellpadding="2">
	<tr><td align="center" bgcolor="#DDDDDD"><b style="color:blue">附件名称</b></td><td align="center" width="20%" bgcolor="#DDDDDD"><b style="color:blue">附件容量</b></td><td align="center" width="20%" bgcolor="#DDDDDD"><b style="color:blue">上傳日期</b></td><td align="center" width="30%" bgcolor="#DDDDDD"><b style="color:blue">相关操作</b></td><td align="center" width="5" bgcolor="#DDDDDD"><b style="color:blue">选</b></td></tr>~;
opendir(DIR,"$attachdir");
@attachfiles=grep(/^$forum\_/,readdir(DIR));
closedir(DIR);
	chomp @attachfiles;
	if($sortt eq "lastmod"){
	@attachfiles=sort lastmod @attachfiles
	}elsif($sortt eq "size"){
	@attachfiles=sort size @attachfiles
	}else{
	@attachfiles=sort name @attachfiles
	}
	@attachfiles = reverse(@attachfiles) if ($aord eq "a");
	$allattachcount=@attachfiles;
	$start=0 if(!$start);
	$end=$start+$eachp;
	$end=$allattachcount if($end > $allattachcount);
	$attachcount=0;
	$numberofpages = $allattachcount / $eachp;
	($integer,$decimal) = split(/\./,$numberofpages);
	if ($decimal > 0) { $numberofpages = $integer + 1; }
	$mypages=$numberofpages;
	$count	 = (($start/$eachp)+1);
	$countstart= $count-4;
	$countend  = $count+4;
	if($countstart <= 0){
		$addendcount=0-$countstart;
		$countstart=1;
		$countend+=$addendcount;
		$countend++;
	}
		if($countend >= ($mypages+1)){
		$addstartcount=$countend-($mypages+1);
		$countend=($mypages+1);
		$countstart-=$addstartcount;
	}
	@page_array=("",$countstart .. $countend,"");
	$pages=join("\t\t",@page_array);
	$pages=~s/\t([-0-9]+)\t/
		my $page=$+;
		my $pagestart=($page-1)*$eachp;
		my $p_link;
		if($page eq $count){
			$p_link=qq~<font color="#990000"><B>$page<\/B><\/font> ~;
		}else{
			$p_link=qq~<a href="$thisprog?forum=$forum&start=$pagestart&sortt=$sortt&aord=$aord&eachp=$eachp" class=hb>$page<\/a> ~;
		}
		$p_link="" if(int($page) <= 0 || $pagestart >= $allattachcount);
		$p_link;
	/ge;
	if ($start > "0") { 
	$beginpage=qq~<a href="$thisprog?forum=$forum&start=0&sortt=$sortt&aord=$aord&eachp=$eachp" title="首 页" ><font face=webdings >9</font></a>~; 
	$pageup=$count-1;
	$pageup1=($pageup-1)*$eachp;
	$showup = qq~<a href="$thisprog?forum=$forum&start=$pageup1&sortt=$sortt&aord=$aord&eachp=$eachp" title="第$pageup页" ><font face=webdings >7</font></a>~;
	} else {
	$beginpage=qq~<font color="#990000"><font face=webdings >9</font></font>~;
	$showup = qq~<font color="#990000"><font face=webdings >7</font></font>~;
	}
	$showend=($mypages-1)*$eachp;
	if ($count ne $mypages) { 
	$endpage=qq~<a href="$thisprog?forum=$forum&start=$showend&sortt=$sortt&aord=$aord&eachp=$eachp" title="尾 页" ><font face=webdings >:</font></a>~; 
	$pagedown=$count+1;
	$pagedown1=$count*$eachp;
	$showdown = qq~<a href="$thisprog?forum=$forum&start=$pagedown1&sortt=$sortt&aord=$aord&eachp=$eachp" title="第$pagedown页" ><font face=webdings >8</font></a> ~; 
	} else { 
	$endpage=qq~<font color="#990000"><font face=webdings >:</font></font>~;
	$showdown = qq~<font color="#990000"><font face=webdings >8</font></font>~;
	}
	$topicpages = qq~<font color=$menufontcolor>$beginpage $showup [ $pages ] $showdown $endpage</font>~;
	$j=$start+1;
	$k=$start;
	for($i=$start;$i<$end;$i++){
		$filefullname=$attachfiles[$i];
		next if($filefullname eq "");
		$filepath="$attachdir/".$filefullname;
		my @filename=split(/\./,$filefullname);
		$fileext=pop(@filename);
		$filename=join(".",@filename);
		$filecount=$filename[1];
		$filecount=0 if(!$filecount);
		$filesize=(stat("$filepath"))[7];
		$filelastmod=(stat("$filepath"))[9];
		$lastmoddate=&longdate($filelastmod);
		my($forumid,$topicid,$relyid)=split(/\_/,$filename[0]);
		$relyid=0 if(!$relyid);
		@checktopic=&getpl($forumid,$topicid);
		if($#checktopic == 0){
			$topiclink=qq([丢失]);
		}else{
			($topictitle,$topisstarter,$topicposttime,$topicreply,$topicview)=@checktopic;
			$topicstart=0;$orelyid=$relyid;
			if($relyid > $maxtopics){
				my ($crelyid,undef)=split(/\./,($relyid/$maxtopics));
				$topicstart=$crelyid*$maxtopics;
			}
			$relyid="bottom" if($relyid eq $topicreply);
			$topicpostdata=(!$topicpostdata)?"Unknown":&dateformat("$topicposttime");
			$topiclink=qq(<a href="topic.cgi?forum=$forumid&topic=$topicid&start=$topicstart#$relyid" target="_blank" TITLE="$topictitle&nbsp;\n发布时间: $topicpostdata&nbsp;\n主题作者: $topisstarter&nbsp;">[文章]</a>);
		}
	print qq~
	<tr><td align="left"><a href="$imagesurl/usr/$forum/$filefullname" title="下载附件" target="_blank">$filefullname</a></td><td align="right">$filesize bytes</td><td align="right">$lastmoddate</td><td align="center">$topiclink <a href="javascript:admin($forumid,$topicid,$orelyid,$filecount,'moveattach')">[移动]</a> <a href="javascript:admin($forumid,$topicid,$orelyid,$filecount,'copyattach')">[复制]</a> <a href="javascript:admin($forumid,$topicid,$orelyid,$filecount,'deleteattach')">[删除]</a></td><td align="center" width="5"><input type="checkbox" name="delete_array" value="$filefullname"></td></tr>
	~;
		$attachcount++;
		$k++;
	}
	if($attachcount == 0){
	print qq~
	<tr><td align="center" colspan="5" height="30" valign="middle"><br><br><br><br>该分论坛没有任何附件</td></tr>
	~;
	}else{
	print qq~
	<tr><td align="center" colspan="4" bgcolor="#EEEEEE"><a href="$thisprog?action=delete_no_topic&forum=$forum&eachp=$eachp&pageaction=1">删除本论坛中主题丢失的附件</a></td><td align="center" width="5" bgcolor="#EEEEEE"><input type="submit" name="Submit" value="删"></td></tr>
	<tr><td align="center" colspan="3" bgcolor="#DDDDDD">该分论坛共有附件 $allattachcount 个 [$j - $k]</td><td align="center" bgcolor="#DDDDDD" colspan="2">$topicpages</td></tr>
	~;
	}
	print qq~</table></form>
	</td>
	</tr>~;
	}
}
sub moveattach{
	print qq~<tr><td bgcolor="#333333" height="20"><font color="#FFFFFF">
	<b>论坛管理中心 / 移动文章附件</b>
	</td></tr>~;
	if($forum eq "" || $topic eq ""){
	&erroroutsmall("分论坛与主题编号不能为空!");return;
	}
	$attachdir="${imagesdir}usr/$forum";
	if(!-d $attachdir){
	&erroroutsmall("找不到附件目录 - $attachdir");return;
	}
opendir(DIR,"$attachdir");
	if($count == 0){
@attachfiles=grep(/^$forum\_$topic\./,readdir(DIR)) if($reply == 0);
@attachfiles=grep(/^$forum\_$topic\_$reply\./,readdir(DIR)) if($reply > 0);
	}else{
@attachfiles=grep(/^$forum\_$topic\.$count\./,readdir(DIR)) if($reply == 0);
@attachfiles=grep(/^$forum\_$topic\_$reply\.$count\./,readdir(DIR)) if($reply > 0);
	}
closedir(DIR);
chomp @attachfiles;
	if($#attachfiles < 0){
	&erroroutsmall("找不到该附件!");return;
	}
my $filetoopen = "$lbdir" . "data/allforums.cgi";
$filetoopen = &stripMETA($filetoopen);
open(FILE, "$filetoopen");
flock(FILE, 2) if ($OS_USED eq "Unix");
my @forums = <FILE>;
close(FILE);
chomp @forums;
	if($start eq "checked"){
	if($nforum eq "" || $ntopic eq ""){
	&erroroutsmall("新分论坛与主题编号不能为空!");return;
	}
	if($forum eq $nforum && $topic eq $ntopic && $reply eq $nreply){
	&erroroutsmall("新分论坛不能和旧编号相同!");return;
	}
	@checktopic=&getpl($nforum,$ntopic);
	if($#checktopic == 0){
	&erroroutsmall("找不到该主题");return;
	}elsif($nreply > $checktopic[3]){
	&erroroutsmall("找不到该回覆");return;
	}
	$nattachdir="${imagesdir}usr/$nforum";
	@oldfilename=split(/\./,$attachfiles[0]);
	$fileext=pop(@oldfilename);
	$newfilename="$nforum\_$ntopic";
	$newfilename.="\_$nreply" if($nreply > 0);
	$newfilename.=".$count" if($count > 0);
	$newfilename.=".$fileext";
	if(-e "$nattachdir/$newfilename"){
	&erroroutsmall("该文章已有附件存在!");return;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -