插件名称:帖子书签(完全版)
插件类型:功能扩展
数据库升级:有
插件作者:习明(IFS-Simon)
演示地址:http://bbs.1001year.net/
制作时间:2007/04/18
适用版本:Discuz!5.5(GBK)
插件功能:为单个回复插入书签,便于下次阅读时跳过已读的楼层。
说明:完全版可以统一设置用户的最大书签数目,除了主题列表页面的书签跳转外,在“我的”功能里增加了“我的书签”,方便用户使用 安装步骤:
1. 数据库升级:- CREATE TABLE `cdb_bookmarks` (
- `uid` mediumint(8) unsigned NOT NULL default '0',
- `tid` mediumint(8) unsigned NOT NULL default '0',
- `pid` int(10) unsigned NOT NULL default '0',
- KEY `uid` (`uid`,`tid`,`pid`)
- )
复制代码
卸载请执行:- DROP TABLE IF EXISTS `cdb_bookmarks`;
复制代码
2. 导入插件配置文件:discuz_plugin_bookmark.txt
3. 修改文件:forumdisplay.php (需修改3处)
找到
- $db->query("SELECT t.* FROM {$tablepre}threads t
复制代码
替换为
- $db->query("SELECT t.*,b.pid FROM {$tablepre}threads t
- left join {$tablepre}bookmarks b on t.tid=b.tid and b.uid='$discuz_uid'
复制代码
4. 修改文件:my.php
找到最后一处
在其前加入
- //bookmark add by IFS-Simon begin
- elseif($item == 'bookmark') {
- include_once DISCUZ_ROOT."./forumdata/cache/plugin_bookmark.php";
- $maxmarks=$_DPLUGIN['bookmark']['vars']['maxmarks'];
- if(($tid && $pid) && !submitcheck('marksubmit')) {
- $query = $db->query("SELECT COUNT(*) FROM {$tablepre}bookmarks WHERE uid='$discuz_uid'");
- if($db->result($query, 0) >= $maxmarks && $maxmarks ) {
- showmessage('bookmarks_is_full', 'my.php?item=bookmark');
- }
- $query = $db->query("SELECT pid FROM {$tablepre}bookmarks WHERE uid='$discuz_uid' AND tid='$tid' LIMIT 1");
- if($db->result($query, 0)) {
- $db->query("update {$tablepre}bookmarks set pid='$pid' where uid='$discuz_uid' AND tid='$tid' LIMIT 1");
- } else {
- $db->query("INSERT INTO {$tablepre}bookmarks (uid, tid, pid) VALUES ('$discuz_uid', '$tid', '$pid')");
- }
- showmessage('bookmark_add_succeed', dreferer());
- } elseif(!$tid && !$pid) {
- if(!submitcheck('marksubmit')) {
- $marklist = array();
- $query = $db->query("SELECT COUNT(*) FROM {$tablepre}bookmarks b, {$tablepre}threads t
- WHERE b.uid = '$discuz_uid' AND b.tid=t.tid AND t.displayorder>='0'");
- $num = $db->result($query, 0);
- $multipage = multi($num, $tpp, $page, "my.php?item=bookmark");
- $query = $db->query("SELECT t.tid, t.fid, t.subject, t.replies, t.lastpost, t.lastposter, f.name, b.pid
- FROM {$tablepre}bookmarks b, {$tablepre}threads t, {$tablepre}forums f
- WHERE b.tid=t.tid AND t.displayorder>='0' AND b.uid='$discuz_uid' AND t.fid=f.fid
- ORDER BY t.lastpost DESC LIMIT $start_limit, $tpp");
- while($mark = $db->fetch_array($query)) {
- $mark['lastposterenc'] = rawurlencode($mark['lastposter']);
- $mark['lastpost'] = gmdate("$dateformat $timeformat", $mark['lastpost'] + $timeoffset * 3600);
- $marklist[] = $mark;
- }
- } else {
- if($ids = implodeids($delete)) {
- $db->query("DELETE FROM {$tablepre}bookmarks WHERE uid='$discuz_uid' AND tid IN ($ids)", 'UNBUFFERED');
- }
- showmessage('bookmark_update_succeed', dreferer());
- }
- }
- }
- //bookmark add by IFS-Simon end
复制代码
5. 修改文件:templates/default/viewthread.htm
找到
- <div class="right t_number"><a href="###" class="bold" title="{lang post_copylink}" onclick="setcopy('{$boardurl}viewthread.php?tid=$tid&page=$page$fromuid#pid$post[pid]', '{lang post_copied}')">#$post[number]</a></div>
复制代码
在其后加入
- <!--{if !$post['first']}--><div class="right t_number"><a href="my.php?item=bookmark&tid=$tid&pid=$post[pid]" id="ajax_bm_$post[count]" onclick="ajaxmenu(event, this.id, 10000)"><span style="color:red">{lang add_bookmark}</span></a></div><!--{/if}-->
复制代码
6. 修改文件:templates/default/forumdisplay.htm
找到:
- <a href="viewthread.php?tid=$thread[tid]&extra=$extra"$thread[highlight]>$thread[subject]</a>
复制代码
替换为
- <a href="viewthread.php?tid=$thread[tid]&extra=$extra"$thread[highlight]>$thread[subject]</a><!--{if $thread['pid']}--><a href="redirect.php?goto=findpost&pid=$thread['pid']&ptid=$thread['tid']"><span style="color:red">{lang bookmark}</span></a><!--{/if}-->
复制代码
7. 修改文件:templates/default/templates.lang.php
找到
在后边加入
-
- 'add_bookmark' => '插入书签',
- 'bookmark' => '【书签】',
- 'my_bookmark' => '我的书签',
- 'nomarks' => '目前没有书签。',
复制代码
8. 修改文件:templates/default/messages.lang.php
找到
在后边加入
- 'bookmarks_is_full' => '您的书签库已满,请在继续操作前删除一些不用的书签。',
- 'bookmark_add_succeed' => '书签已成功插入',
- 'bookmark_update_succeed' => '书签库已成功更新,现在将转入更新后的书签库。',
复制代码
9. 修改文件:templates/default/jsmenu.htm
找到:
- <tr><td class="popupmenu_option"><a href="my.php?item=favorites&type=thread">{lang my_favorites}</a></td></tr>
复制代码
在后边加入
- <tr><td class="popupmenu_option"><a href="my.php?item=bookmark">{lang my_bookmark}</a></td></tr>
复制代码
10. 修改文件:templates/default/my.htm
找到:
- <!--{elseif $item == 'promotion'}-->{lang post_my_advisit}
复制代码
在后边加入
- <!--{elseif $item == 'bookmark'}-->{lang my_bookmark}
复制代码
找到
- <tbody>
- <tr class="tdunderline" style="background: {ALTBG1}"><td width="10" align="center"><a href="###" onclick="toggle_collapse('menu_mysubscriptions')"><img id="menu_mysubscriptions_img" <!--{if $item == 'subscriptions' || !isset($_COOKIE['discuz_collapse']) || strpos($_COOKIE['discuz_collapse'], 'menu_mysubscriptions ') === FALSE}-->src="{IMGDIR}/menu_collapsed_no.gif"<!--{else}-->src="{IMGDIR}/menu_collapsed_yes.gif"<!--{/if}--> border="0" alt="" /></a></td><td><a href="###" onclick="toggle_collapse('menu_mysubscriptions')">{lang my_subscriptions}</a></td></tr>
复制代码
在前边加入
-
- <tbody>
- <tr class="tdunderline" style="background: {ALTBG1}"><td width="10" align="center"><a href="###" onclick="toggle_collapse('menu_mybookmark')"><img id="menu_mybookmark_img" <!--{if $item == 'bookmark' || !isset($_COOKIE['discuz_collapse']) || strpos($_COOKIE['discuz_collapse'], 'menu_mybookmark ') === FALSE}-->src="{IMGDIR}/menu_collapsed_no.gif"<!--{else}-->src="{IMGDIR}/menu_collapsed_yes.gif"<!--{/if}--> border="0" alt="" /></a></td><td><a href="###" onclick="toggle_collapse('menu_mybookmark')">{lang my_bookmark}</a></td></tr>
- </tbody>
- <tbody id="menu_mybookmark" <!--{if $item == 'bookmark' || !isset($_COOKIE['discuz_collapse']) || strpos($_COOKIE['discuz_collapse'], 'menu_mybookmark ') === FALSE}--><!--{else}-->style="display: none"<!--{/if}-->>
- <!--{if $item == 'bookmark'}-->
- <tr class="bold"><td width="10"></td><td> {lang my_bookmark}</td></tr>
- <!--{else}-->
- <tr><td width="10"></td><td> <a href="my.php?item=bookmark">{lang my_bookmark}</a></td></tr>
- <!--{/if}-->
- </tbody>
复制代码
找到
在后边加入
- <!--{elseif $item == 'bookmark'}-->
- {template my_bookmark}
复制代码
11. 上传my_bookmark.htm至templates/default/
12. 系统设置-扩展设置-插件设置-插件参数设置 设置用户最大书签数
13. 进入系统设置更新缓存
可选修改:此处修改mini版、完全版均可选进行。不进行此修改不会影响本功能的使用;但修改后可以很大程度的提高论坛某些跳转功能(包括本功能)的有效性。即使不安装本功能也可以进行此修改。
修改文件:redirect.php
找到
- $query = $db->query("SELECT tid, dateline FROM {$tablepre}posts WHERE pid='$pid'");
- if($post = $db->fetch_array($query)) {
复制代码 替换为
- $query = $db->query("SELECT tid, dateline,pid FROM {$tablepre}posts WHERE ".(intval($ptid) ? "pid<='$pid' and tid='".intval($ptid)."' order by pid desc limit 1" : "pid='$pid'"));
- if($post = $db->fetch_array($query)) {
- $pid=$post['pid'];
复制代码
附件都在顶楼
[ 本帖最后由 习明 于 2007-4-22 12:34 编辑 ] |