[插件交流] 回覆預覽 1.0 For D5 [20061216] [1P]

回覆預覽 1.0 For D5 [20061216]

插件創意來自 Discuz! NT.
我一直覺得這個功能很實用, 但沒發現有人做出來, 於是就自己寫了一個, 分享給大家.
這個程序用到 AJAX. 我在 IE 和 Firefox 下面測試, 使用一切正常.

插件名稱: 回覆預覽
插件版本: 1.0.0 build 20061216
插件作者: CharlesW
適應版本: Discuz! 5.0.0
修改模板: forumdisplay.htm
增加文件: ajaxread.php, ajaxread.js
數據升級: 無

最後更新:
最後更新於 2006-12-16 18:56
下面是更新列表:
  • 優化代碼, 使得部分代碼的條理更加清晰
  • 修復頁數處理的一個 bug
  • 增加自動刪除回覆的帖子最後修改信息的功能
  • 增加回覆的帖子修改識別
  • 增加回覆的帖子的評分識別
  • 增加重新更新列表的功能


最後更新於 2006-12-9 16:53
下面是更新列表:
  • 修改帖子排列方式, 按照發帖時間升序排列
  • 修改帖子列表樣式, 使其更加美觀
  • 增加有附件的回覆的帖子的支持
  • 修改有標題的帖子的顯示方式
  • 修復帖子鏈接頁碼錯誤
  • 優化程序, 減少 2 次查詢
  • 修改部分代碼.





升級方法 I:
(本方式適合從 20061209 升級至 20061216)

1. 下載附件, 覆蓋所有文件.
2. 更新緩存, 升級完成.

升級方式 II:
(本方式適合從 20061208 升級至 20061209)

1. 下載附件, 覆蓋除圖片外的所有文件.
2. 打開模板文件, 查找:
 

<img id="thread_$thread[tid]_img" src="images/common/thread_show.gif" align="absmiddle" alt="展開帖子列表" onClick="readthread($thread[tid], 1, true);" style="cursor: pointer;" /&gt;
替換為:
 

<img id="thread_$thread[tid]_img" src="images/common/thread_show.gif" alt="展開帖子列表" onClick="readthread($thread[tid], 'end', true);" style="cursor: pointer;" /&gt;
再找:
 

<tr><td class="altbg2"><div id="thread_$thread[tid]_data" style="margin-left: 40px;"></div></td></tr&gt;
替換為:
 

<tr><td class="altbg2" id="thread_$thread[tid]_data"></td></tr&gt;
3. 更新緩存, 升級完成.


全新安裝:

1. 下載附件並解壓縮, 上傳裡面的文件.

ajaxread.rar (8.86 KB (9077 Bytes))

2. 打開模板文件 forumdisplay.htm, 查找:
 

{template header}
在下面添加:
<script type="text/javascript"><!--

var formhash = '{FORMHASH}';

--></script>

<script type="text/javascript" src="include/ajaxread.js"></script>
再找:
 

                <!--{if $thread['digest']}-->

                        <img src="{IMGDIR}/digest_$thread[digest].gif" alt="{lang thread_digest} $thread[digest]" />

                <!--{/if}-->
在下面添加:
 

                <img id="thread_$thread[tid]_img" src="images/common/thread_show.gif" alt="展開帖子列表" onClick="readthread($thread[tid], 'end', true);" style="cursor: pointer;" />
再找:
 

        <!--{/loop}-->

        </div></div>
在上面添加:
 

                <table cellspacing="{INNERBORDERWIDTH}" cellpadding="{TABLESPACE}" class="row" id="thread_$thread[tid]_table" style="display: none;">

                        <tr><td class="altbg2" id="thread_$thread[tid]_data"></td></tr>

                </table>
3. 更新緩存, 安裝完成!


卸載方法: 刪除增加的文件及代碼即可.
複製這篇網址分享給朋友: http://discuz.bluelovers.net/thread-1069-1.html#pid1307
套一句黃小琥說過的話:「你可以點歌,但是我可以選歌」

[改良] 回覆預覽 For discuz 5.5 by bluelovers

回覆預覽 1.0 For D5 [20061216]

插件名稱: 回覆預覽
插件版本: 1.0.0 build 20061216
插件作者: CharlesW
適應版本: Discuz! 5.0.0
修改模板: forumdisplay.htm
增加文件: ajaxread.php, ajaxread.js
數據升級: 無


For Discuz 5.5 由 bluelovers 修正並改良
增加文件: header_forumdisplay.htm

全新安裝:

1. 下載附件並解壓縮, 上傳裡面的文件.

ajaxread_d5.5.rar (12.59 KB (12897 Bytes))

打開模板語言文件 templates.lang.php 查找:
'thread_nonewpost' => '無新回復',
在下面添加:
        'thread_ajaxread_show' => '展開帖子列表',



        'thread_ajaxread_hide' => '隱藏帖子列表',



        'thread_note' => '備註',
打開模板文件 forumdisplay.htm, 查找:
 {template header}
在下面添加:
{template header_forumdisplay}
再找:
<!--{if $thread['digest']}-->



                        <img src="{IMGDIR}/digest_$thread[digest].gif" alt="{lang thread_digest} $thread[digest]" />



                <!--{/if}-->
在下面添加:
<!--{if $thread[replies] }-->



                        <img id="thread_$thread[tid]_img" src="images/common/thread_show.gif" alt="{lang thread_ajaxread_show}" onClick="readthread($thread[tid], 'end', true);" style="cursor: pointer;" />



                <!--{/if}-->
再找:
<!--{/loop}-->



        </div></div>
在上面添加:
                <table cellspacing="{INNERBORDERWIDTH}" cellpadding="{TABLESPACE}" class="row" id="thread_$thread[tid]_table" style="display: none;">



                        <tr><td class="altbg2" id="thread_$thread[tid]_data"></td></tr>



                </table>
更新緩存, 安裝完成!

卸載方法: 刪除增加的文件及代碼即可.
複製這篇網址分享給朋友: http://discuz.bluelovers.net/thread-1069-1.html#pid2436

本篇的內容不含引用除另有聲明外,如符合 CC授權條款 則套用 姓名標示-非商業性-相同方式分享 3.0 通用版

TOP

ajaxread.php - 修改支援隱藏以及出售

ajaxread.php - 修改支援隱藏以及出售

回覆預覽現在可以過濾隱藏以及出售內容

如果還有問題 歡迎提出

下載解壓縮 ajaxread.rar 上傳取代原本的 ajaxread.php


或者 複製以下文字取代原本的 ajaxread.php 內容
<?php

/*
        [Discuz!] (C) 2006-? CharlesW
        This is NOT a freeware, use is subject to license terms

        $RCSfile: ajaxread.php, v $
        $Revision: 1.1.17.22 $
        $Date: 2006/12/16 $
*/

define('CURSCRIPT', 'viewthread');

require_once './include/common.inc.php';
include language('misc');
//include language('templates');

$openwin = false;                        // Open window to read with a new window
$textlen = 80;                                // Thread's subject and message length

$tid                = intval($tid);
$formhash        = trim($formhash);
$pages                = array();

$openwin         = $openwin ? ' target="_blank"' : '';
$data                 = '<div class="spaceborder" style="width: 100%;">'.
                '<table cellspacing="0" cellpadding="4" width="100%">'.
                '<tr class="altbg1" align="center"><td width="65%">標題/內容</td><td width="10%">作者</td><td width="15%">時間</td><td width="10%">備注</td></tr>';

!$headercharset && @header('Content-Type: text/html; charset='.$charset);
(!$tid || !$formhash || $formhash <> FORMHASH) && ajax_exit(403);

$query = $db->query("SELECT * FROM {$tablepre}threads WHERE tid='$tid' AND displayorder>='0'");
(!$thread = $db->fetch_array($query)) && ajax_exit(404);

$page                = $page == 'end' ? ceil(($thread['replies'] - 1) / $ppp) : $page;

$page = max(1, intval($page));

$start_limit        = $numpost = ($page - 1) * $ppp;
$all_id                = $this_id = 0;

if(empty($forum['allowview'])) {
        (!$forum['viewperm'] && !$readaccess) && ajax_exit(403);
        ($forum['viewperm'] && !forumperm($forum['viewperm'])) && ajax_exit(403);
}

($thread['readperm'] && $thread['readperm'] > $readaccess && !$forum['ismoderator'] && $thread['authorid'] != $discuz_uid) && exit('<center><strong>您的閱讀權限不足, 不能閱讀這個帖子</strong></center>');

$start_limit = $numpost = ($page - 1) * $ppp;
if($start_limit > $thread['replies']) {
        $start_limit = $numpost = 0;
        $page = 1;
}

//$query = $db->query("SELECT * FROM {$tablepre}posts WHERE tid='$tid' AND invisible='0' ORDER BY dateline ASC;");
//$count = $db->num_rows($query) - 1;

$query = $db->query("SELECT * FROM {$tablepre}posts WHERE tid='$tid' AND invisible='0' ORDER BY dateline LIMIT $start_limit, $ppp");
//$count = $db->num_rows($query) - 1;

$count = $thread['replies'];

if($count > 0 && $db->num_rows($query)) {
        
        $data .= "<tr class=\"altbg1\"><td colspan=\"3\">".ajax_multi($count, $ppp, $page, $tid)."</td><td align=\"right\"><img src=\"images/ajaxread/reload.gif\" align=\"absmiddle\" alt=\"重新加載數據\" style=\"cursor: pointer;\" onClick=\"javascript: $('thread_{$tid}_data').innerHTML = '<center><strong>數據正在讀取中, 請稍後...</strong></center>'; readthread($tid, $page);\" /></td></tr>";

        while($post = $db->fetch_array($query)) {

//                if($all_id > $start_limit && $this_id < $ppp) {

                        $note = '';
                        $note .= preg_match($language['post_edit_regexp'], $post['message']) ? '<img src="images/ajaxread/edit.gif" align="absmiddle" alt="本帖已被修改" /> ' : '';
                        $note .= $post['attachment'] ? '<img src="images/ajaxread/attachment.gif" align="absmiddle" alt="本帖包含附件" /> ' : '';
                        $note .= $post['rate'] ? '<img src="images/ajaxread/'.($post['rate'] > 0 ? 'agree' : 'disagree').'.gif" align="absmiddle" alt="本帖已被評分" /> ' : '';

//                        $post['message'] = preg_replace($language['post_edit_regexp'], '', $post['message']);
                        
                        $post['message'] = preg_replace(
                                array(
                                        $language['post_edit_regexp'],
                                        "/\[hide=(\d+)\]\s*(.+?)\s*\[\/hide\]/ies",
                                        "/\[hide\]\s*(.+?)\s*\[\/hide\]/is",
                                        "/\[sell=(\d+)\]\s*(.+?)\s*\[\/sell\]/ies",
                                        "/\[sell\]\s*(.+?)\s*\[\/sell\]/is",
                                        "/\[attach\]\s*(.+?)\s*\[\/attach\]/is"
                                ), array(
                                        '',
                                        '',
                                        '',
                                        '',
                                        '',
                                        ''
                                )
                                , $post['message']
                        );
                        
                        $post['message'] = preg_replace("/\[(\w+)[^\]]*?\](.*?)\[\/\\1\]/is", "\\2", $post['message']);
                        
                        $post['message'] = cutstr($post['message'], $textlen);
                        
//                        for($i = 0; $i < 5; $i++) {
//                                $string = preg_replace("/\[(\w+)[^\]]*?\](.*?)\[\/\\1\]/is", "\\2", $string);
//                        }

                        $url = '';
                        
                        if (in_array($rewritestatus, array(2, 3))) {
                                $url = "thread-$tid-1-$page.html#pid$post[pid]";
                        } else {
                                $url = "viewthread.php?tid=$tid&page=$page#pid$post[pid]";
                        }

                        $data .= "<tr class=\"altbg2\">".
                                "<td><a href=\"$url\" $openwin>".($post['subject'] ? "<span class=\"bold\">$post[subject]</span></a><br />$post[message]" : "$post[message]</a>")."</td>".
                                "<td align=\"center\"><a href=\"viewpro.php?uid=$post[authorid]\" target=\"_blank\">$post[author]</a></td>".
                                "<td align=\"center\">".gmdate("$dateformat $timeformat", $post['dateline'] + $timeoffset * 3600)."</td>".
                                "<td align=\"center\">".trim($note)."</td></tr>";

//                        $this_id++;
//
//                }
//
//                $all_id++;

        }

        $data .= "<tr class=\"altbg1\"><td colspan=\"3\">".ajax_multi($count, $ppp, $page, $tid)."</td><td align=\"right\"><img src=\"images/ajaxread/reload.gif\" align=\"absmiddle\" alt=\"重新加載數據\" style=\"cursor: pointer;\" onClick=\"javascript: $('thread_{$tid}_data').innerHTML = '<center><strong>數據正在讀取中, 請稍後...</strong></center>'; readthread($tid, $page);\" /></td></tr>";
        $data .= "</table></div>";

        exit($data);

} elseif ($count == 0) {
        exit('<center><span class="bold">該帖子沒有回覆</span></center>');
} else {
        exit('<center><span class="bold">該帖子已經損壞, 無法打開</span></center>');
}

function ajax_exit($errid) {

        @header('HTTP/1.1 '.$errid.' '.($errid == 404 ? 'Not Found' : 'Forbidden'));
        exit;

}

function ajax_multi($num, $perpage, $curpage, $tid) {
        global $ppp;

        $multipage = '';

        if($num > $perpage) {

                $page = 10;
                $offset = $ppp;

                $pages = @ceil($num / $perpage);

                if($page > $pages) {
                        $from = 1;
                        $to = $pages;
                } else {
                        $from = $curpage - $offset;
                        $to = $from + $page - 1;
                        if($from < 1) {
                                $to = $curpage + 1 - $from;
                                $from = 1;
                                if($to - $from < $page) {
                                        $to = $page;
                                }
                        } elseif($to > $pages) {
                                $from = $pages - $page + 1;
                                $to = $pages;
                        }
                }

                $multipage = ($curpage - $offset > 1 && $pages > $page ? '<a class="p_redirect" href="javascript: readthread('.$tid.', 1);">|‹</a>' : '').
                        ($curpage > 1 ? '<a class="p_redirect" href="javascript: readthread('.$tid.', '.($curpage - 1).');">‹‹</a>' : '');
                for($i = $from; $i <= $to; $i++) {
                        $multipage .= $i == $curpage ? '<a class="p_curpage">'.$i.'</a>' :
                                '<a href="javascript: readthread('.$tid.', '.$i.');" class="p_num">'.$i.'</a>';
                }

                $multipage .= ($curpage < $pages ? '<a class="p_redirect" href="javascript: readthread('.$tid.', '.($curpage + 1).');">››</a>' : '').
                        ($to < $pages ? '<a class="p_redirect" href="javascript: readthread('.$tid.', '.$pages.');">›|</a>' : '').
                        ($pages > $page ? '<a class="p_pages" style="padding: 0px"><input class="p_input" type="text" name="custompage" ></a>' : '');

                $multipage = $multipage ? '<div class="p_bar"><a class="p_total"> '.$num.' </a><a class="p_pages"> '.$curpage.'/'.$pages.' </a>'.$multipage.'</div>' : '';

        }

        return $multipage;
}

?>
複製這篇網址分享給朋友: http://discuz.bluelovers.net/thread-1069-1.html#pid2485

本篇的內容不含引用除另有聲明外,如符合 CC授權條款 則套用 姓名標示-非商業性-相同方式分享 3.0 通用版

TOP

RE: [插件交流] 回覆預覽 1.0 For D5 [20061216] [1P]

很不錯的功能 但我的問題還是無法解決
不過謝謝版主分享這麼好的插件 造福人群感謝~
複製這篇網址分享給朋友: http://discuz.bluelovers.net/thread-1069-1.html#pid12058

本篇的內容不含引用除另有聲明外,如符合 CC授權條款 則套用 姓名標示-非商業性-相同方式分享 3.0 通用版

TOP

RE: [插件交流] 回覆預覽 1.0 For D5 [20061216] [1P]

複製這篇網址分享給朋友: http://discuz.bluelovers.net/thread-1069-1.html#pid12059

本篇的內容不含引用除另有聲明外,如符合 CC授權條款 則套用 姓名標示-非商業性-相同方式分享 3.0 通用版

TOP

RE: [插件交流] 回覆預覽 1.0 For D5 [20061216] [1P]

請問管理員有打算發佈這個插件的6.0版嗎?
複製這篇網址分享給朋友: http://discuz.bluelovers.net/thread-1069-1.html#pid12767

本篇的內容不含引用除另有聲明外,如符合 CC授權條款 則套用 姓名標示-非商業性-相同方式分享 3.0 通用版

TOP

RE: [插件交流] 回覆預覽 1.0 For D5 [20061216] [1P]

6.0 跟 5.5 的安裝方法 是差不多的
先試著去改 然後出錯了 在回來問
這樣 以後久了 任何插件 在修改時 你都能夠有辦法除錯

本站比較傾向這方面
複製這篇網址分享給朋友: http://discuz.bluelovers.net/thread-1069-1.html#pid12786

本篇的內容不含引用除另有聲明外,如符合 CC授權條款 則套用 姓名標示-非商業性-相同方式分享 3.0 通用版

TOP

RE: [插件交流] 回覆預覽 1.0 For D5 [20061216] [1P]

請問一下, 我下載2樓的附件, 但無法解縮
檔案應該有下載完全, 是12.5KB

我用 winrar3.71 解壓縮
但每次都顯示 "這個檔案不是未知的格式就是損壞"
重新下載過也還是無法解壓縮,

能請管理員查看一下或重新上傳附件嗎? 感謝!!
複製這篇網址分享給朋友: http://discuz.bluelovers.net/thread-1069-1.html#pid15846

本篇的內容不含引用除另有聲明外,如符合 CC授權條款 則套用 姓名標示-非商業性-相同方式分享 3.0 通用版

TOP

從主題外那個"+"號預覽內文

請問下ADMIN 此論壇的是否您有修改過使其支援6.0?

因為我把原本的5.5改上去之後會發生移位問題 @@ OTZ
複製這篇網址分享給朋友: http://discuz.bluelovers.net/thread-1069-1.html#pid19048

本篇的內容不含引用除另有聲明外,如符合 CC授權條款 則套用 姓名標示-非商業性-相同方式分享 3.0 通用版

TOP

RE: [插件交流] 回覆預覽 1.0 For D5 [20061216] [1P]

1. 基本上 不會回答沒有按照規定填寫個人資料的
2. 當然是有改過囉 不然我怎麼可以用XD
1

評價次數

+2

Points

  • System Message

2008-1-20 16:24:09 聲望 + 1 點 幸運 + 1 點 獎勵訊息:小玩樂透、很幸運中獎了

複製這篇網址分享給朋友: http://discuz.bluelovers.net/thread-1069-1.html#pid19055

本篇的內容不含引用除另有聲明外,如符合 CC授權條款 則套用 姓名標示-非商業性-相同方式分享 3.0 通用版

我活在我自己織的網上
擁有屬於我蜘蛛的一塊網
請不要打擾我 因為我喜歡獨處
請原諒我吃了份你 因為我要生存

TOP

RE: [插件交流] 回覆預覽 1.0 For D5 [20061216] [1P]

QQ 這真是抱歉了  沒看清楚規則就發文 <(__)>

那可以在請問此功能在AL8 OR DZ官方有更新嗎? 我找不到
複製這篇網址分享給朋友: http://discuz.bluelovers.net/thread-1069-1.html#pid19063

本篇的內容不含引用除另有聲明外,如符合 CC授權條款 則套用 姓名標示-非商業性-相同方式分享 3.0 通用版

TOP

RE: [插件交流] 回覆預覽 1.0 For D5 [20061216] [1P]

那有興趣發10篇 不屬於DZ 笑話 心測
並且 有填寫TAG標籤的文來交換嗎?

好了之後 一兩天會發佈D6版
複製這篇網址分享給朋友: http://discuz.bluelovers.net/thread-1069-1.html#pid19079

本篇的內容不含引用除另有聲明外,如符合 CC授權條款 則套用 姓名標示-非商業性-相同方式分享 3.0 通用版

TOP

RE: [插件交流] 回覆預覽 1.0 For D5 [20061216] [1P]

想請問一下管理員一個修改的問題

自己利用5.5版的插件去修改了以後
算是可以正常使用在6.0版
不過有個問題一直不知該怎麼去修改
就是展開帖子列表後會直接開到最後回覆的那一頁
(例如此主題有2頁回覆,展開之後就會直接開到第2頁)
這點怎麼試就是試不出來@@"
所以想來請教一下修改的方法^^"
謝謝

因為我本身並沒建立論壇
所以就沒個人網站了@@
只是自己在電腦裡安裝DZ6.0版而已

我5.5版的只修改ajaxread.php跟forumdisplay.htm
下面是我修改後的ajaxread.php
我想問題主要的修改處也是在這個檔案吧

※※ 本文隱藏的內容需要積分高於 9999999 才可瀏覽 ※※
複製這篇網址分享給朋友: http://discuz.bluelovers.net/thread-1069-1.html#pid22066

本篇的內容不含引用除另有聲明外,如符合 CC授權條款 則套用 姓名標示-非商業性-相同方式分享 3.0 通用版

TOP

RE: [插件交流] 回覆預覽 1.0 For D5 [20061216] [1P]

搵左好耐既野
複製這篇網址分享給朋友: http://discuz.bluelovers.net/thread-1069-1.html#pid39502

本篇的內容不含引用除另有聲明外,如符合 CC授權條款 則套用 姓名標示-非商業性-相同方式分享 3.0 通用版

TOP