本页主题: 优秀好用的PHPWIND字号(字体大小)选择插件 打印 | 加为IE收藏 | 复制链接 | 收藏主题 | 上一主题 | 下一主题

Mike
群熵工程师
级别: 管理员


精华: 7
发帖: 951
威望: 714 点
金钱: 6601 RMB
贡献值: 0 点
好评度: 611 点
在线时间:1405(小时)
注册时间:2003-11-28
最后登录:2018-11-04

 优秀好用的PHPWIND字号(字体大小)选择插件

图片:
插件名称:字号(字体大小)调节插件

习惯网上看小说、新闻的网友喜欢大些的字体,这样看起来轻松;习惯网上交谈聊天的网友喜欢小些的字体,这样一目十行读起来更快。真是众口难调啊!所以字号选择功能现在大部分门户网站都具备了,这已经是基本功能,不能算插件了。对论坛来说,这种插件也比较多。我之所以再做这样一个东西是觉得以前的有些不足之处,我也希望phpwind下一个版本能集成这个功能而不必使用任何插件。毕竟,看小字体的长篇大论是很不舒服的,还是可以自由选择的好。

功能简介:可以用简单的操作方式任意调节所有楼层帖子的正文显示字号。字号选择插件比较多,但是本插件的优势就是
1. 可以简单的按大、中、小方式选择,也可以任意精确的选择任何大小字号(使用<<、>>链接);
2. 一次选择可以适用于所有楼层,而不必各个楼层反复设置;
3. 具有记忆功能,以后无需再次设置;
4. 记忆功能使用Cookie方式,无需更改任何代码数据表,安全高效,即使是游客也可以使用此功能;
5. 避免使用IE特有的JS写法,可以支持其他浏览器如FireFox、NetScape。

最新更新(12/27):因PW4新增了AJAX免提交编辑正文的功能,这个功能和现有的字号调节功能相冲突,也有使用者反映了。经检查代码后发现是HTML标签的ID冲突。为了照顾将来版本的PW AJAX功能有可能不仅可以直接编辑发贴正文,还可能会直接编辑回帖正文;考虑到有些用户关闭了AJAX功能;因此我改写了插件的写法,彻底放弃了使用标签的ID属性,这样无论是否开启AJAX功能,都不会引起冲突。并且新的写法还减少了一处修改代码的地方,安装更简单。

新的写法在IE和FireFox下测试通过。


适用版本:PHPWIND任意版本都可以,但安装示例仅按照PHPWIND3.0.x版本。因插件不涉及数据库和程序代码,仅修改模板,因此很容易安装到其他版本。

作  者:Mike Zhang (phpwind.net注册用户:mike519)

修改文件:无

修改模板:在template\wind\read.htm里找到
| <a href=# onClick="Addtoie('$db_bbsurl/read.php?fid=$fid&tid=$tid','$db_bbsname_a--$favortitle')">加为IE收藏</a>
在前面加上
Copy code
【选择字体:<a href='javascript:void()' onclick="setFontSize('+')"><<</a> <a href='javascript:void()' onclick="setFontSize('big')">大</a> <a href='javascript:void()' onclick="setFontSize('middle')">中</a> <a href='javascript:void()' onclick="setFontSize('small')">小</a> <a href='javascript:void()' onclick="setFontSize('-')">>></a>】
<script>
_defaultFontSize = 13;
function setFontSize(cmd)
{
  SC = document.body.getElementsByTagName("SPAN");
  if (cmd=="+"||cmd=="-") {
    for (i=0; i<SC.length; i++)
        if (SC[i].className == "tpc_content") {
          size = SC[i].style.fontSize.length==0? _defaultFontSize : parseInt(SC[i].style.fontSize.replace(/[^0-9]/g,''));
          break;
        }
    size += cmd=="+"? 1 : -1;
  }
  else
    size = cmd=="big"? 18 : (cmd=="middle"? 14 : 12);
  for (i=0; i<SC.length; i++)
    if (SC[i].className == "tpc_content")
        SC[i].style.fontSize = size+"px";
  var expdate = new Date();
  expdate.setTime(expdate.getTime() + (3600*1000*24*365));
  document.cookie = "fontSize=" + size + "; expires=" + expdate.toGMTString() + "; path=/";  
}
</script>

template\wind\header.htm里找到header("Content-Type: text/html; charset=gb2312");(在PW4里这句header()已被去掉,可以放在第一行<!--<?php的下面一行)
在后面加入
Copy code
$tpc_content_size = isset($_COOKIE['fontSize'])? $_COOKIE['fontSize']:13;

找到.tpc_content { font-size: 13px;}
更改为
Copy code
.tpc_content { font-size: {$tpc_content_size}px;}


新的写法里不再需要做第四处修改了,这里保留做个纪念
在template\wind\read.htm里找到
找到<span class='tpc_content'>$read[content]</span>
改成<span class='tpc_content' id=text$read[lou]>$read[content]</span>
(第三点经xyz8051等几位网友提示,才发现是忘记写,现在补上)


做这样三处修改就可以了,就是这么简单!

添加文件:无

安装难度:容易

演示地址: http://dssc.brchina.net的任意一篇帖子。

增加查询:无

注意事项: “_defaultFontSize = 13;”和“$_COOKIE['fontSize']:13;”两处的13是默认的字体大小。这也是phpwind的默认设置。
插件默认设置是“大中小”中的小字体,也就是13px。如果修改过默认字号的论坛需要注意这一点,更改一下就可以了。
顶端 Posted: 05-11-23 17:55 | [楼 主]
秦静晨
级别: 骑士


精华: 0
发帖: 15
威望: 16 点
金钱: 151 RMB
贡献值: 0 点
好评度: 115 点
在线时间:4(小时)
注册时间:2005-12-11
最后登录:2009-03-25

 

谢谢。
顶端 Posted: 05-12-25 12:02 | 1 楼
帖子浏览记录 版块浏览记录
群熵信息 - 技术讨论区 » WEB脚本技术进阶

Total 0.010115(s) query 5, Time now is:12-17 00:09, Gzip enabled
Powered by PHPWind v6.3.2 Certificate Code © 2003-08 PHPWind.com Corporation

上海服务器租用 杭州世导双线服务器托管 云主机 VPS