Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

首页横排,自定义页面,复制加版权,繁体简体互转,标签tag加别的搜索参数

[复制链接]
mc008 发表于 2009-1-15 12:17:52 | 显示全部楼层 |阅读模式
本帖最后由 mc008 于 2009-2-6 11:20 编辑

申明:鄙人不懂网页代码,接触PHP也就四五个月时间,都是胡搞的,不要鸡蛋我。
文中方法大部分为本人原创,所有涉及到7.0版本的方法均为安装在本地127.0.0.1上测试,未上传至服务器测试,如果采纳,请慎重!并经多次测试、备份原文件后方上传至服务器!修改后是否存在安全问题,请大家多多指正!
文章导读:
一、加载自定义页头、页脚的方法;
二、添加自定义php页面;(很多人需要的自定义的页面,比如"关于我们","如何汇款","论坛图库","IP查询"等页面)
三、利用其他的CMS系统生成htm页面让DZ论坛加载运行;
四、JS复制加版权:1、复制后只在最后另起一行加版权;2、复制后在每个段落后都加版权,在最后一段另起一行加来源地址;3、复制后在指定的字符后面加版权和来源地址。
五、关于防复制的打印页面的处理;
六、给页面添加繁体和简体互转功能(适合任何网站);
七、首页横排:给首页每个栏目加上自定义二级栏目动态,如最新回复等功能(前提是开启横排),在后台的内部数据调用方式实现。
1、首页横排只调用主题;
2、首页横排主题+图片主题(图片主题取代栏目图片)。
八、给帖子标签加上其他的搜索参数及连接。
------------------------------------------
一、加载自定义页头、页脚的方法。适用范围:6.1、7.0 。演示站点:www.cjbee.cn
如果我们需要自定义的页头、页脚,怎么办呢?方法:例如我们就把“header.htm”另存为新的名字,如cjbee.htm(稍微修改,改为你想要的页面头部,<div id="menu">下面的最好不要修改,会员登陆栏的),把这文件存在默认的/templates/default/包下(有FTP功能的直接上传即可,不需要在后台添加模板,系统自动找到此文件;没有FTP功能的可在后台添加模板方法即可),那么就可以加载{subtemplate cjbee},首页discuz.htm、帖子的viewthread.htm加载的话就把{subtemplate header}改为{subtemplate cjbee};需要加载自定义页面部分方法一样。自定义脚部footer.htm的同理(里面的代码{eval output();}等最好不要少,如果没有的话,会员登陆后又自动退出或其他的)。
{subtemplate cjbee}与{template cjbee}少了sub也是一样的,但是区别在哪里我也不清楚,估计是default包内与包外调用区别吧。

二、添加自定义页面,类型:php。适用范围:6.1、7.0。我想这个功能应该有很多人需要的。
有时我们需要添加一些自定义的页面,比如“关于我们”、“如何汇款”、“论坛图库”、“IP查询”等自定义页面,方法如下:把代码
  1. <?php
  2. require_once './include/common.inc.php';
  3. include template('bee');
  4. ?>
复制代码
另存为你想要的自定义名字,如bee.php,注意,代码中的“bee”为加载/templates/default/模块目录中的bee.htm,bee.htm模块里的代码为:
  1. {subtemplate header}
  2. <div id="nav"><a href="$indexname">$bbname</a> &raquo; <a href="bee.php">自定义名字</a>
  3. </div>
  4. {subtemplate XXX1}
  5. {subtemplate XXX2}
  6. {eval request('aaa');}
  7. {subtemplate footer}
复制代码
代码说明:
1、{subtemplate header}为页面头部,支持自定义页头,最好加载这个,因为这样会员信息就同步了;
2、<div id="nav"><a href="$indexname">$bbname</a> &raquo; <a href="bee.php">自定义名字</a> </div>  为方位导航(你也可以不要这个);
3、{subtemplate XXX1}、{subtemplate XXX2}为自定义页面中部,方法同上;
4、{eval request('aaa');}为阁下在后台所添加的主题列表或主题附件;
5、{subtemplate footer}为页面脚部,支持自定义页脚。
下来我们要做的就是在菜单导航条上添加自定义页面的连接了,方法论坛上有,我就不重复了。

三、利用其他的CMS系统生成htm页面让DZ论坛加载运行(前提是CMS与论坛安装在同一空间)。演示站点:www.cjbee.cn

如果你有CMS系统安装在与论坛同一空间目录下,想在论坛的页面边栏上加载CMS生成的htm页面(例如最新文章、热门点击等),可以用JS方法调用,但是不利于收录。所以我们得在后台把最新文章、热门点击等生成“自定义页面”htm文件,这样调用就利于收录了。这里我拿动易SiteWeaver的在栏目主题列表页面的forumdisplay.php来演示:
在动易后台:系统设置->自定义页面管理->添加自定义页面,页面路径:/templates/default/ ;文件名称:cjbee.htm;页面内容:6.1版的:
  1. <div class="box">
  2. <H4>最新文章</H4><div style="margin: 5px;">
  3. {$GetArticleList....)}</div></div>
复制代码
7.0版的
  1. <hr class="shadowline"/><div class="sidebox">
  2. <h4>最新文章</h4>
  3. {$GetArticleList...}
  4. </div>
复制代码
在边栏最上面显示的就把<hr class="shadowline"/>放在</div>后面;
{$GetArticleList.....}为阁下所调用CMS的内容,注意代码里不要<!--和-->   CMS后台添加代码后鼠标不要在编辑栏里点击,这样CMS又会自动添加“<--   -->”的。

6.1版本的添加方法:在templates/default/forumdisplay.htm里找到
  1. {eval request($infosidestatus, 1, 0);}
复制代码
添加代码: {subtemplate cjbee} ,在其后面为边栏下面显示;在其前面则是边栏上面显示,红色部分为阁下后台所生成的文件名。
7.0版本的添加方法:添加代码: {subtemplate cjbee} 。在templates/default/forumdisplay.htm里找到{eval request($infosidestatus, 1, 0);}其下面有</div><!--{/if}-->,在<!--{/if}-->后面添加为最下面显示;再找到<!--{if $infosidestatus[0]}-->,在其前面添加则为最上面显示。

其他页面的htm加载方法以此类推,希望此办法对阁下有所帮助。

四、复制加版权方法有很多,我喜欢用JS方式,因为不影响收录。使用范围:任何网站。演示站点:www.cjbee.cn
现介绍JS方式的,此方法适合任何网站;用此方法后,在IE下复制时只能复制网页文字,不带网页的表格、图片等格式。
1、复制后只在最后一段另起一行加来源地址,代码:
  1. <script language="javascript">
  2. document.body.oncopy=function(){
  3. event.returnValue=false;
  4. var t=document.selection.createRange().text;
  5. var s="来自{$bbname},原文:"+location.href;
  6. clipboardData.setData('Text',t+'\r\n'+s);
  7. }
  8. </script>
复制代码
这个很一般,呵呵。复制时添加的原文地址为用户浏览时的地址。此代码在Firefox下无效。
2、复制后在每个段落后都加版权,在最后一段另起一行加来源地址,代码:
  1. <script language="javascript">
  2. document.body.oncopy=function()
  3. {
  4. event.returnValue=false;
  5. var d=document.selection.createRange().text;
  6. d=d.replace(/\r\n/g," 文章来自{$bbname}{$boardurl}\r\n");
  7. if(d.charAt(d.length-1)!='\n')
  8. d=d+"\r\n 原文地址:"+location.href;
  9. clipboardData.setData("Text",d);
  10. }
  11. </script>
复制代码
感觉这个有点特别,就是版权加得太频繁了,有的人会反感的。
复制时添加的原文地址为用户浏览时的地址。此代码在Firefox下无效。

3、复制后在指定的字符后面加版权和来源地址,这个方法为变量的,只要出现第一个字符后就加版权(只加一次版权),这个方法有利也有避,如果文章中没有这个字符的话就不加版权。代码如下:
  1. <script language="JavaScript">
  2. document.body.oncopy=function()
  3. {
  4. event.returnValue=false;
  5. var s=document.selection.createRange().text;
  6. y = "。";
  7. t = s.replace(y,"。来自{$bbname},原文地址:"+location.href);
  8. clipboardData.setData("Text",t);
  9. }
  10. </script>
复制代码
其中的y = ""; 是在文章中第一个“。”后面加版权,也可以把它定为“, 、 :;?”或者任何字以及字符都可以,例如y = ""; 那么下面的那段也对应的改为t = s.replace(y,"来源:{$bbname},原文地址:"+location.href);  如果不想加原文地址,只加网站名字的话,改为t = s.replace(y,"我 来自{$bbname}"); 即可;如果y = " "的话就是第一个空格后加版权。
这种方法比较隐蔽,不细心的人根本不会发现加了版权,即使是细心的人也要找一找才发现。
复制时添加的原文地址为用户浏览时的地址。此代码在Firefox下无效。

五、关于防复制的打印页面的处理:适用范围:6.1。
在打印页面下的模板是没有加版权的,我们可能有很多人用不到打印这个功能,可以删除这个功能(删不删除由你了),方法如下:
1、viewthread.htm模块里大概第78行,如果阁下修改过那就不知了,找到下面的代码,将其删除:
  1. <a href="viewthread.php?action=printable&tid=$tid" target="_blank" <!--{if !$forum['ismoderator']}-->class="notabs"<!--{/if}-->>{lang thread_printable}</a>
复制代码
2、上面的打印连接没有了,但是在网址后输入viewthread.php?action=printable&tid=XXX(XXX为文章ID)还是会显示打印页面的,所以再找viewthread.php里大概408~410行,3行都删除掉就OK了。如果修改过的请找到代码:
  1. elseif($action == 'printable' && $tid) {

  2. require_once DISCUZ_ROOT.'./include/printable.inc.php';

  3. }
复制代码
将上面代码删除掉就好了。
六、给页面添加繁体和简体互转功能(适合任何网站):演示站点:www.cjbee.cn
当我发现有不少台湾同胞浏览鄙人小站时都要用Google的繁体转换功能,比较麻烦。故此就利用动易SiteWeaver6.6的繁简体转换功能,测试了一下,在DZ论坛也能用。方法如下:
1、需要转换繁体的页面加入代码:
  1. <a href="#" id="StranLink">繁体中文</a><script language='javascript' src='/js/gb_big5.js'></script>
复制代码
gb_big5.js下载地址,上传到空间,然后加载gb_big5.js即可。如果你的网页没有FTP功能那也不要急,可以找一个用动易程序的网站,在此网站下的“JS”包内应该有gb_big5.js,一般情况下很少有人删除掉的,直接加载其的gb_big5.js来为自己网站进行繁简体转换,那么加载的代码就是:
  1. <a href="#" id="StranLink">繁体中文</a><script language='javascript' src='http://www.npsjfy.com/js/gb_big5.js'></script>
复制代码
呵呵,利用别人的东西为自己服务,有意思吧。但是千万不要让他发现,如果他发现后把这文件换成病毒就麻烦了...
此方法在Firefox下无效。
2、这方法在IE和Firefox下都有效,任何网站都能用,下载这JS后放在网站合适的地方,然后在网页中加入代码即可:
  1. <a id="StranLink">繁體中文</a><script src="/js/gb_big5.js" type="text/javascript" language="JavaScript"></script></a>
复制代码
七、给首页每个栏目加上自定义二级栏目动态,如最新回复等功能(前提是开启横排),在后台的内部数据调用方式实现。
适用范围:6.1、7.0 。演示站点:www.cjbee.cn(这方法目前在论坛上没找到)。
6.1方法如下
1、先在后台数据调用添加主题列表,列表名称为lb1、lb2、lb3、lb4或者其他的,有一点必须注意“lb”可以随便定名,但是后面的数字为栏目的ID号,调用数据ID也是对应的栏目;调用数据框填 {subject}<br />;调用主题标题字数最好设得合适即可22~30个左右。
2、在templates/default/discuz.htm里,找到代码:
  1. </th>
  2. <!--{/loop}-->
  3. $cat['endrows']
复制代码
(直接查找$cat['endrows'] 得了,7.0把代码格式打乱了)在</th>前面加:
{eval request('lb'.$forum['fid']);}
代码里的.$forum['fid']是栏目ID。
如果这样不美观的话就加上CSS样式,那么在其前面加的就是:
  1. <div style="background-image: url(images/th_lb.gif);"><p style="padding-left:20px;line-height: 20px;">{eval request('lb'.$forum['fid']);}</p></div>
复制代码
th_lb.gif图片点这里右键另存为,放在images目录下。
3、打开templates\default\css_common.htm,找到
.forumlist tbody th { background-image: url({IMGDIR}/forum.gif); background-repeat: no-repeat; background-position: 13px 50%; }
以及
.forumlist tbody th.new { background-image: url({IMGDIR}/forum_new.gif); }
将以上两段代码删除掉。
最后找到:
.forumlist th { padding-left: 55px !important; }
这个55px是二级栏目的横排方框填充左边的距离,可以改为0--20px或把这段删除。
4、如果其他风格包里的css_append.htm也有以上代码请按此方法修改;
5、后台更新CSS缓存即可看到效果。
7.0修改方法:
1、与6.1的第1点一样;
2、打开templates\default\discuz.htm,找到第二个</th>,在其前面添加的代码与6.1的一样;
3、打开templates\default\css_common.htm,删除掉:
.list th.new { background-image: url({IMGDIR}/forum_new.gif); }
再把:
.list th { background: url({IMGDIR}/forum.gif) 5px 10px no-repeat; padding-left: 45px !important; }
改为:
.list th{padding-left:15px !important;}
这个15px是二级栏目的横排方框填充左边的距离,可以改为0--20px或把这段删除。
4、如果其他风格包里的css_append.htm也有以上代码请按此方法修改;
5、后台更新CSS缓存即可看到效果。

同理,我们还可以调用图片附件功能,把每个栏目下帖子里的图片调到首页,代替首页栏目图片,这样首页就不在枯燥乏味了。方法如下:
1、跟6.1的第1点差不多,只不过添加的不是主题列表,而是主题附件:调用数据框填{image} ;模块名称:tp1、tp2、tp3(数字为栏目对应的ID);显示数据条数:1;图片最大宽度(像素):100;图片最大高度(像素):75(宽和高由你们定);
2、方法同上,只不过所加的代码为:
  1. <div style="background-image: url(images/th_lb.gif);"><div style="float: left;margin-right: 5px;">{eval request('tp'.$forum['fid']);}</div><p style="padding-left:20px;line-height: 20px;">{eval request('lb'.$forum['fid']);}</p></div>
复制代码
如果觉得不美观的话,请自行在css_common.htm写写CSS,改成适合自己的样式,到这里来的大多数是站长,就不多说了,应该都知道的~~
调用图片后的连接问题:调用图片附件后,不想让其点击图片后直奔图片所属楼层ID,那么打开include/request.func.php,找到:
redirect.php?goto=findpost&ptid=$data[tid]&pid=$data[pid]
改为:
viewthread.php?tid=$data[tid]
这样我们点击图片时直奔主题(动静态自适应),而非图片所属楼层ID。6.1和7.0版本修改方法相同。注意,修改后论坛的所有图片附件连接地址均为改后的设置,其他附件调用不变。


这个功能的好处一是工程量不大;二是在后台就可以灵活的改变每个栏目的主题条目数、主题排序方式、主题字数等,在首页看到的主题排列就不是千篇一律的了。
注意:修改后的请给每个二级板块添加版块图标,这样打开分区大类时/index.php?gid=2等就好看些。

八、给帖子标签加上其他的搜索参数及连接;适用范围:通用版。演示站点:www.cjbee.cn
6.1修改方法:viewthread.htm里找到代码:
  1. <!--{if $relatedkeywords}--><span class="postkeywords">$relatedkeywords</span><!--{/if}-->
  2. </p>
复制代码
在</p>后面添加:
  1. <script language="JavaScript">
  2. var kw;
  3. kw="$metakeywords";
  4. var temp
  5. temp=kw.split(",")
  6. document.write ("<font color=red>搜本站文章:</font>");
  7. for(i=0;i<temp.length;i++){
  8. document.write("<a href=/sou.asp?search=0&match=2&searWords="+temp+">"+temp+"</a>");
  9. }
  10. document.write("");
  11. </script>
复制代码
7.0修改方法:viewthread_node.htm里找到代码:
  1. <!--{if $relatedkeywords}--><span class="postkeywords">$relatedkeywords</span><!--{/if}-->
复制代码
在其下面添加的代码与6.1添加的一样。7.0如想另起一行添加的话,那么在:
  1. <!--{if $relatedkeywords}--><span class="postkeywords">$relatedkeywords</span><!--{/if}-->
  2. </div>
复制代码
</div>后面添加代码:
  1. <script language="JavaScript">
  2. var kw;
  3. kw="$metakeywords";
  4. var temp
  5. temp=kw.split(",")
  6. document.write ("<div class='threadtags'><font color=blue>搜索站内关于:</font>");
  7. for(i=0;i<temp.length;i++){
  8. document.write("<a href=/sou.asp?search=0&match=2&searWords="+temp+">"+temp+"</a>");
  9. }
  10. document.write("的文章</div>");
  11. </script>
复制代码
代码说明:
1、$metakeywords :标签TAG,如果用在其他CMS程序请改为对应的关键词标签;
2、temp=kw.split(",")  中的“,”为TAG分割符,如果用在其他CMS程序请改为对应的分割符(例如动易的关键词分割符为“|”);
3、<div class='threadtags'><font color=blue>搜本站文章:</font> 以及“的文章</div>”在TAG前面和后面所添加的文字;
4、也可以定制里面的连接样式和方式,如<a class='aaa' target='_blank' href=/sou.asp?search=......
注意:自定义内容里的代码不能有双引号 "  ,只能用 '
--------------------------------------------------

评分

1

查看全部评分

回复

使用道具 举报

 楼主| mc008 发表于 2009-1-15 12:21:49 | 显示全部楼层
沙发自己坐了~~
回复

使用道具 举报

51xiangxun 发表于 2009-1-15 12:50:07 | 显示全部楼层
学习了!谢谢啊
回复

使用道具 举报

zhangminlol 发表于 2009-1-16 16:55:08 | 显示全部楼层
哈哈` 收了  谢谢LZ
回复

使用道具 举报

 楼主| mc008 发表于 2009-1-19 13:05:23 | 显示全部楼层
怎么没人需要吗?
回复

使用道具 举报

xq168 发表于 2009-1-19 21:00:56 | 显示全部楼层
好东西,我支持你
回复

使用道具 举报

280564290 发表于 2009-1-19 21:08:31 | 显示全部楼层
非常好,,,,支持
回复

使用道具 举报

 楼主| mc008 发表于 2009-1-26 15:52:43 | 显示全部楼层
大年初一的牛年来就顶~~~
回复

使用道具 举报

xf_joan 发表于 2009-1-29 03:58:18 | 显示全部楼层
非常好,,,,支持
回复

使用道具 举报

xf_joan 发表于 2009-1-29 04:00:47 | 显示全部楼层
授人以鱼,不如授之以渔
非常支持....
顶死你啊..!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-9-11 04:13 , Processed in 0.121661 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表