以純文字方式查看主題

- 周氏家族:::...Chous family (https://chous.100webspace.net/bbs/cgi-bin/leobbs.cgi)
-- 『 家 族 視 聽 娛 樂 間 』 (https://chous.100webspace.net/bbs/cgi-bin/forums.cgi?forum=18)
--- 『 雷傲論壇討論區 』 (https://chous.100webspace.net/bbs/cgi-bin/forums.cgi?forum=19)
---- [討論]各個版面獨立設置,允許進入的名單或限制不許進入的名單 (https://chous.100webspace.net/bbs/cgi-bin/topic.cgi?forum=19&topic=314)


-- 作者: 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 = "";
}
}

麻煩在試試看...


© 周氏家族:::...Chous family Since 2002 繁體版權所有:摩尼網  程式翻譯:auron  版本: LeoBBS X Build090208