|
-- 作者: 5555
-- 發表時間: 2003/08/23 06:01pm
[secret=pop] 各個版面獨立設置,允許進入的名單或限制不許進入的名單 if (($allowusers ne "")&&(($membercode ne "ad")&&($membercode ne 'smo'))) { $allow=0; @allowusers=split(/,/,$allowusers); foreach (@allowusers) { $allow=1 if ($inmembername eq $_); } &error("進入論壇&你不允許進入該論壇!") if ($allow==0); } if ($noallowusers ne "") { @noallowusers=split(/,/,$noallowusers); foreach (@noallowusers) { &error("進入論壇&你不允許進入該論壇!") if ($inmembername eq $_); } } 把上面的代碼加到 forms.cgi 中
if ($action eq "resetposts") { $currenttime = time; $currenttime = $currenttime+10; $mv=1; &setlastvisit("$inforum,$currenttime"); $forumlastvisit= time; } 前面 同樣的代碼再加入到 topic.cgi 中 if (($privateforum eq "yes" && $allowed ne "yes")) { &error("進入私有論壇&對不起, 您沒有權限進入該私有論壇!"); } 後面 在 forumstyles.cgi 中找到 <tr> <td bgcolor=#FFFFFF colspan=2> <font color=#333333>自動刷新論壇的時間間隔(秒)<BR>配合上面參數一起使用</font> </td> <td bgcolor=#FFFFFF> <input type=text name="autofreshtime" value="$autofreshtime" size= 5 maxlength=4> 一般設置 5 分鐘,就是 300 秒。</td> </tr> 在後面加上 <tr> <td bgcolor=#FFFFFF colspan=2> <font color=#333333>不允許進入本版面的用戶名<BR>用戶名之間用 , 號連接, 如果沒有,請不要填寫。壇主、總版主不受限制</font></td> <td bgcolor=#FFFFFF> <input type=text name="noallowusers" value="$noallowusers" ></td> </tr> <tr> <td bgcolor=#FFFFFF colspan=2> <font color=#333333>只允許以下用戶進入本版面<BR>用戶名之間用 , 號連接, 如果希望向全體開放,請不要填寫</font></td> <td bgcolor=#FFFFFF> <input type=text name="allowusers" value="$allowusers" ></td> </tr>
這不是我寫的!是找到的一篇教學! 在1201認證版∼這段教學可用! 只是沒辦法像私有論壇一樣 對帖子有保密作用(這個會顯示帖子標題) 首頁如果調用論壇新帖的話!也會顯示!(目前的私有論壇不會顯示) 目前已打算升級3.08a版了!麻煩pop大了!^^ 讓你剩下短短幾天還要這麼忙! :em06: [/secret] 由於此功能還不是很完整!所以先隱藏! 可以的話!大家等pop大大的完整教學吧! 我論壇目前也在修改此功能! 如果有成功!也會貼出來!!
-- 作者: POP
-- 發表時間: 2003/08/23 06:58pm
剩下最後回覆的顯示及論壇最新文章的顯示還未加密嗎?? 那應該剩下一點才對...
-- 作者: 5555
-- 發表時間: 2003/08/23 07:30pm
對!所以還在摸索中!
-- 作者: POP
-- 發表時間: 2003/08/25 07:38pm
[這篇文章最後由POP在 2003/08/25 11:38pm 第 1 次編輯]
1.論壇最新文章不顯示 post.cgi 找到 if (($privateforum ne "yes")&&($startnewthreads ne "pay")) { $filetomakeopen = "$lbdir" . "data/recentpost.cgi"; 改成 if (($privateforum ne "yes")&&($startnewthreads ne "pay")&&(!$allowusers)) { $filetomakeopen = "$lbdir" . "data/recentpost.cgi"; 2.最後回覆的不顯示 leoboard.cgi 找到 else { $lastpost = ""; } 加上 require "data/styles{$forumid}.cgi"; if ($allowusers) { $forumlastpost = qq~<font color=$lastpostfontcolor> 保密論壇</font>~; $lastposterby = ""; $lastpost = ""; } forums.cgi 找到 else { $lastpost = ""; } 加上 require "data/styles{$cforumid}.cgi"; if ($allowusers) { $forumlastpost = qq~<font color=$lastpostfontcolor> 保密論壇</font>~; $clastposterby = ""; $lastpost = ""; } 還沒測試喔....
-- 作者: o0隨風飄逸0o
-- 發表時間: 2003/08/25 07:58pm
..................奇怪了 不是指定pop才能看 我怎麼看的見 難道是bug
-- 作者: POP
-- 發表時間: 2003/08/25 11:36pm
[quote][b]下面引用由[u]o0隨風飄逸0o[/u]在 [i]2003/08/25 07:58pm[/i] 發表的內容:[/b] ..................奇怪了 不是指定pop才能看 我怎麼看的見 難道是bug [/quote] 不要忘了.... 你是本版版主....
-- 作者: 5555
-- 發表時間: 2003/08/26 11:08am
[quote][b]下面引用由[u]POP[/u]在 [i]2003/08/25 07:38pm[/i] 發表的內容:[/b] forums.cgi 找到 else { $lastpost = ""; } 加上 require "data/styles{$cforumid}.cgi"; if ($allowusers) { $forumlastpost = qq~<font color=$lastpostfontcolor> 保密論壇</font>~; $clastposterby = ""; $lastpost = ""; } [/quote] pop大在幫幫忙 3.08a找不到這一段 該加在哪裡?? 附上3.08a的forums.cgi檔
-- 作者: 5555
-- 發表時間: 2003/08/26 11:13am
leoboard---也會出錯 改了之後顯示這樣(3.08a版) Can't locate data/styles{1}.cgi in @INC (@INC contains: E:/web/freetalk.com/lb E:/web/freetalk.com/lb/cgi-bin C:/usr/lib C:/usr/site/lib .) at E:\web\freetalk.com\lb\cgi-bin\leoboard.cgi line 704
-- 作者: o0隨風飄逸0o
-- 發表時間: 2003/08/26 04:11pm
[quote][b]下面引用由[u]POP[/u]在 [i]2003/08/25 11:36pm[/i] 發表的內容:[/b] 不要忘了.... 你是本版版主.... [/quote] 又剛尬了 :em19: 我還以為只要改暱稱就好了勒
-- 作者: POP
-- 發表時間: 2003/08/26 06:39pm
我現在才發現3.08和3.01真的不一樣 先測試leoboard是否會通過好了 leoboard.cgi 找到 else { $lastpost = ""; } 加上 if (open(FILE, "${lbdir}data/styles$forumid.cgi")) { require "data/styles$forumid.cgi"; if ($allowusers) { $forumlastpost = qq~<font color=$lastpostfontcolor> 保密論壇</font>~; $lastposterby = ""; $lastpost = ""; } } 多加一個風格檔驗證步驟....有才執行避免錯誤發生 forums.cgi讓我在研究研究
-- 作者: 5555
-- 發表時間: 2003/08/26 11:25pm
[quote][b]下面引用由[u]POP[/u]在 [i]2003/08/26 06:39pm[/i] 發表的內容:[/b] 我現在才發現3.08和3.01真的不一樣 先測試leoboard是否會通過好了 leoboard.cgi 找到 ... [/quote] 執行上∼沒問題ㄟ 只是還是沒辦法隱藏 不知是不是我論壇新帖的調用法有關?? 以下是我首頁的調用法 leoboard.cgi 找到: $output .= qq~<br><table cellpadding=0 cellspacing=0 width=$tablewidth bgcolor=$tablebordercolor align=center><tr><td><table cellpadding=6 cellspacing=1 width=100%>~; 在後面加入: if ($maxpersontopic && $inmembername ne "客人") { $myposts = &getmytopic("post"); $myreplys = &getmytopic("reply"); $newtopics = &getmytopic("all"); $output .= qq~<tr><td bgcolor=$titlecolor width=30%><b>-=> 我被回復的主題:</b></td><td bgcolor=$titlecolor width=30%><b>-=> 我參與討論的主題:</b></td><td bgcolor=$titlecolor width=*><b>-=> 論壇最新發表主題:</b></td></tr><tr><td bgcolor=$forumcolorone valign=top style="line-height: 130%">$myposts</td><td bgcolor=$forumcolortwo valign=top style="line-height: 130%">$myreplys</td><td bgcolor=$forumcolortwo valign=top style="line-height: 130%">$newtopics</td></tr></table></td></tr></table>~; $output .= qq~<br><table cellpadding=0 cellspacing=0 width=$tablewidth bgcolor=$tablebordercolor align=center><tr><td><table cellpadding=6 cellspacing=1 width=100%>~; } 找到: END { if ($cpudisp eq "1") { $TT1 = new Benchmark; $td = Benchmark::timediff($TT1, $TT0); $td = Benchmark::timestr($td); $td =~ /(\d+)\s*wallclock secs \(\s*?(\d*?\.\d*?)\s*usr\s*\+\s*(\d*?\.\d*?)\s*sys/i; print "<center><font color=$#c0c0c0>程式佔用 CPU 時間:$2 usr + $3 sys"; } } 在前面加入: sub getmytopic { my $mode = shift; if ($mode eq "all") { $filetoopen = $lbdir . "data/recentpost.cgi"; } else { $filetoopen = $lbdir . "mytopic/" . $mode . "/" . $memberfilename . ".cgi"; $filetoopen = &stripMETA($filetoopen); } my @temptopics; if (-e $filetoopen) { open(FILE, $filetoopen); @temptopics = <FILE>; close(FILE); } my $mytopics = ""; if (@temptopics) { foreach (@temptopics) { chomp($_); my ($tempinforum, $tempintopic, $temptopictitle, $tempcurrenttime, $tempposticon, $tempmembername) = split(/\t/, $_); if (($tempposticon eq "") || ($tempposticon !~ /^[0-9]+\.gif$/i)) { $tempposticon = int(rand(23)); if ($tempposticon <10 ) { $tempposticon = "0$tempposticon.gif"; } else { $tempposticon = "$tempposticon.gif"; } } $temptopictitle =~ s/\&/\&/g; $temptopictitle =~ s/\"/\"/g; $temptopictitle =~ s/\</</g; $temptopictitle =~ s/\>/>/g; $temptopictitle =~ s/\ / /g; if (length($temptopictitle) > 30) { $temptopictitle = substr($temptopictitle, 0, 26); if ($temptopictitle =~ /^([\000-\177]|[\200-\377][\200-\377])*([\000-\177]|[\200-\377][\200-\377])$/) { $temptopictitle .= " ..."; } else { chop($temptopictitle); $temptopictitle .= " ..."; } } else { my $addspace = 30 - length($temptopictitle); for (my $i = 0; $i < $addspace; $i++) {$temptopictitle .= " ";} } $temptopictitle =~ s/\&/\&/g; $temptopictitle =~ s/\"/\"/g; $temptopictitle =~ s/</\</g; $temptopictitle =~ s/>/\>/g; $temptopictitle =~ s/ /\ /g; my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime($tempcurrenttime + $timezone * 3600 + $timedifferencevalue * 3600); $year += 1900; $mon++; $mon = "0$mon" if ($mon < 10); $mday = "0$mday" if ($mday < 10); $hour = "0$hour" if ($hour < 10); $min = "0$min" if ($min < 10); $tempcurrenttime = "$year/$mon/$mday $hour:$min"; if ($mode eq "all") { $mytopics .= qq~<img src=$imagesurl/posticons/$tempposticon border=0> <a href=$boardurl/topic.cgi?forum=$tempinforum&topic=$tempintopic target=_blank title="帖子發表時間: $tempcurrenttime">$temptopictitle</a>[<a href=profile.cgi?action=show&member=$tempmembername title="點擊查看$tempmembername的資料" target=_blank>$tempmembername</a>]<br>~; } elsif ($mode eq "post") { $mytopics .= qq~<img src=$imagesurl/posticons/$tempposticon border=0> <a href=$boardurl/topic.cgi?forum=$tempinforum&topic=$tempintopic target=_blank title="最後回復時間: $tempcurrenttime">$temptopictitle</a><br>~; } else { $mytopics .= qq~<img src=$imagesurl/posticons/$tempposticon border=0> <a href=$boardurl/topic.cgi?forum=$tempinforum&topic=$tempintopic target=_blank title="最後參與時間: $tempcurrenttime">$temptopictitle</a><br>~; } } } else { $mytopics = " 暫時沒有記錄"; } return $mytopics; }
-- 作者: POP
-- 發表時間: 2003/08/27 05:52pm
我指的是只有"論壇最新發表主題" 這一向不寫入記錄中 其他要再看看...
-- 作者: 5555
-- 發表時間: 2003/08/27 08:16pm
藍色框起來的部分是只有會員自己可以看到!所以每個人都會不一樣! 紅色框起來的部分是論壇新帖∼每個人都一樣∼改過後還是會顯示!
-- 作者: POP
-- 發表時間: 2003/08/27 10:48pm
改過以後因為記錄已經存在 所以當然還會顯示阿
-- 作者: 5555
-- 發表時間: 2003/08/28 00:27am
[quote][b]下面引用由[u]POP[/u]在 [i]2003/08/27 10:48pm[/i] 發表的內容:[/b] 改過以後因為記錄已經存在 所以當然還會顯示阿 [/quote] 不是....................................... :em13: 應該是說..改完後重新上傳更新檔案後! 在那發一個帖∼還是會顯示!!
-- 作者: POP
-- 發表時間: 2003/08/28 08:41pm
1.論壇最新文章不顯示 post.cgi 找到 if (($privateforum ne "yes")&&($startnewthreads ne "pay")) { $filetomakeopen = "$lbdir" . "data/recentpost.cgi"; 改成 if (($privateforum ne "yes")&&($startnewthreads ne "pay")&&([color=blue]$allowusers eq ""[/color])) { $filetomakeopen = "$lbdir" . "data/recentpost.cgi"; 2.最後回覆的不顯示 leoboard.cgi 找到 else { $lastpost = ""; } 加上 if (-e "${lbdir}data/style${forumid}.cgi") { require "${lbdir}data/style${forumid}.cgi"; if ($allowusers ne "") { $forumlastpost = qq~<font color=$lastpostfontcolor> 保密論壇</font>~; $lastposterby = ""; $lastpost = ""; } } 麻煩在試試看...
|