smarty分页程序,模板小改进

作者 : admin 于 2009年07月27日, 15:11:04
2009
07-27

增加了:跳转到第几页的功能

模板部分

  1. <div id="page">
  2. <table>
  3.     <tr>
  4.     <td>
  5. 共{{$page.count}}条数据 每页{{$page.pagesize}}条  共{{$page.pagecount}}页 当前第{{$page.page}}页
  6.                 <!-- 新加的跳转功能  start -->
  7.                 跳转到第
  8.                 <select onchange="window.location.href='{{$page.baseurl}}&page='+this.options[this.selectedIndex].value">
  9.                 {{section name=pagejump loop=4 start=0 step=1 max=4}}
  10.                 <option value="{{$smarty.section.pagejump.index+1}}">{{$smarty.section.pagejump.index+1}}</option>
  11.                 {{/section}}
  12.                 </select> 页
  13.                 <!-- 新加的跳转功能  start -->
  14. </td>
  15. <td>
  16. {{if $page.pagecount>1}}
  17. {{if $page.first eq 1}}
  18. <a href="{{$page.baseurl}}">首页</a>
  19. {{else}}
  20. 首页
  21. {{/if}}
  22. {{if $page.pre eq 1}}
  23. <a href="{{$page.baseurl}}&page={{$page.page-1}}">上一页</a>
  24. {{else}}
  25. 上一页
  26. {{/if}}
  27. {{foreach from=$page.pagelist item=vols}}
  28.     {{if ($vols.page > 0 ) && ($vols.page < = $page.pagecount) }}
  29. {{if $vols.link eq 1}}
  30. <a href="{{$page.baseurl}}&page={{$vols.page}}">[{{$vols.page}}]
  31. {{else}}
  32. [{{$vols.page}}]
  33. {{/if}}
  34. {{/if}}
  35. {{/foreach}}
  36. {{if $page.next eq 1}}
  37. <a href="{{$page.baseurl|default:"?"}}&page={{$page.page+1}}">下一页</a>
  38. {{else}}
  39. 下一页
  40. {{/if}}
  41. {{if $page.last eq 1}}
  42. <a href="{{$page.baseurl|default:"?"}}&page={{$page.pagecount}}">尾页</a>
  43. {{else}}
  44. 尾页
  45. {{/if}}
  46. {{/if}}
  47. </td>
  48. </tr>
  49. </table>
  50. </div>

其实我在做的时候又出现个问题,如果是url重写了,如何来做这个baseurl变量。问题解决方法是,把url当做模板,比如/blog/index/%d

使用成语的文字验证码

作者 : admin 于 2009年07月24日, 21:48:44
2009
07-24

上次写的nb验证码程序,遭到了大部分人的唾弃,因为我使用了中国汉字全集,而大部分中国人对汉字了解还只能占其一半,也就是四个汉字中经常出现生僻字,造成无法使用。

这次使用成语作为汉字验证码(其实已经发现其他网站再用),则中文用户识别的几率就大得多。

demo:

程序下载:点击下载

密码保护:不冷静的思考——我要退出了

作者 : admin 于 2009年07月24日, 13:58:11
2009
07-24

这是一篇受密码保护的文章。您需要提供访问密码:


apache自动生成目录文件列表配置

作者 : admin 于 2009年07月22日, 19:13:00
2009
07-22

由于种种原因,服务器给卖掉了,因此,我做的源码目录也就没了。这里把该目录的配置属性介绍一下:

  1. <directory /home/sunboyu/www_source.sunboyu.cn>
  2.         MaxConnPerIP 1
  3.         ReadmeName foot.html        #页面的头
  4.         HeaderName top.html          #页面的脚
  5.         IndexIgnore top.html foot.html    #列目录的时候,忽略这些文件
  6.         ServerSignature Off       #关闭服务器标志
  7.         IndexOptions FancyIndexing VersionSort FoldersFirst SuppressLastModified NameWidth=* Charset=UTF-8
  8.         Options FollowSymLinks
  9.         Options +Indexes
  10.         AllowOverride all
  11.         Order deny,allow
  12.         Allow from all
  13.  </directory>

FancyIndexing 打开列表功能

VersionSort 同一文件不同版本分类列出

FoldersFirst 文件夹优先

SuppressLastModified 禁止列出最后修改时间

NameWidth=* 文件名长度 *当然是全部显示

Charset=UTF-8 页面输出编码

AddIcon /other/icons/exe.gif .bin .exe 给exe bin扩展名添加exe.gif图标

ScanHTMLTitles 如果有html文件,则度html的title为描述

图片动态缩放PHP与JS算法

作者 : admin 于 2009年07月20日, 08:19:05
2009
07-20

这个算法写好多次了,虽然简单,但每次都得想一次,这里做个备份。

因为GD函数进行缩放,必须有宽和高,而在浏览器中,会自动按照比率调整宽高,所以两个函数稍有区别。

  1. #PHP版
  2. # $s_width  原图宽
  3. # $s_height 原图高
  4. # $t_width  目标文件最大宽
  5. # $t_height 目标文件最大高
  6. function ReSizePic( $s_width , $s_height , $t_width , $t_height)
  7. {
  8. if( $s_width / $s_height > $t_width / $t_height && $s_width > $t_width)
  9. {
  10. $t_height = $s_height * $t_width / $s_width;
  11. $t_width = $t_width;
  12. }
  13. else if( $s_width / $s_height > $t_width / $t_height && $s_width < = $t_width)
  14. {
  15. $t_height = $s_height;
  16. $t_width  = $s_width;
  17. }
  18. else if( $s_width / $s_height < $t_width / $t_height && $s_height > $t_height)
  19. {
  20. $t_width = $s_width*$t_height/$s_height;
  21. $t_height = $t_height;
  22. }
  23. else if( $s_width / $s_height < $t_width / $t_height && $s_height <= $t_height)
  24. {
  25. $t_height = $s_height;
  26. $t_width  = $s_width;
  27. }
  28. return array( "width" => $t_width , "height" => $t_height );
  29. }
  30. #JS版
  31. # obj 图片对象
  32. # maxWidth 显示最大宽
  33. # maxHeight 显示最大高
  34. function ReSizePic( obj , maxWidth , maxHeight )
  35. {
  36. if( ( obj.width/obj.height >= maxWidth/maxHeight ) && obj.width > maxWidth )
  37. {
  38. obj.width = maxWidth;
  39. }
  40. else if( ( obj.width/obj.height < maxWidth/maxHeight ) && obj.height > maxHeight )
  41. {
  42. obj.height = maxHeight;
  43. }
  44. }

平民化的黑客

作者 : admin 于 2009年07月19日, 13:40:16
2009
07-19

每天下班,都有各式各样的IT人,能看到各种各样的IT文化衫:unix系列的,思科的网工,微软家族的,今天突然看到一黑客,令我肃然起敬-

hacker

火狐-真正的火狐-火狐美女

作者 : admin 于 2009年07月17日, 10:14:16
2009
07-17

firefox_dog 03335194_687cd90d890e65cb33a033222e8706cf a9478eb81fff17f4d4ae6aad9efba12d 600px-firefoxsvg firefox-experiment
sexy-firefox firefox_ie_desktop_1152x864 firefox_truth 07869039_5a9dfe7e171b31ad25835d0aa53ebbaf firefox-6
99011397_9c03c120284be9f90d4a5a33a4b0ac3b 07728881_31a56fc6d5a5ff4bad8118ddff455424 50142045_132702724976cd02112a878c516ddec0 firefox-ad 22133893_11a40388efcea416252e94a9fa264bc8
27477612_bbc2337c217d132528e0f679c7801cff google-girl-vs-firefox-girl-500x344 24496522_86ce154f0982b184dda72035e0eb003d 87095721_6c29888cb01bf8c9d71e83dc3f3f2c01 95252819_167efa8812638694e0e0d020d798aa0d

智联招聘的个人评测系统

作者 : admin 于 2009年07月16日, 04:56:56
2009
07-16

朋友发给我智联招聘一个个人评测系统,进行了职业兴趣,IQ,EQ的测试,经过一中午的测试,我发现这个测试还是蛮有道理的,对我的分析大体如下:

职业兴趣:研究型、社会型。 从小不喜欢学习,但喜欢玩弄点高深的东西,让只看分数的老师们头疼不已。分数不高,难题倒解得非常出色,让我想起了爱因斯坦(狂晕)。中学往后一直在学校担任领导干部,估计是社会型性格的由来。

智商102,平均水平。看来真是一般人。其中对数字的敏感很强,排到了82%,估计我天生是搞计算机的命。不过我更喜欢研究hack。

情商不高,不喜欢研究人,估计长期跟计算机打交道的结构。不过沟通能力语言能力情绪控制能力挺强。在情商分支看来我也偏科。我是很理智的人。

————————————-

人的发展还是取决于个人和环境,测试权当一参考。

为FCKEditor增加图片附件管理功能

作者 : admin 于 2009年07月15日, 13:38:10
2009
07-15

其实好久没用过FCKEeditor了,因为将近两年没写过CMS,今天突然人品大爆发,想起了这个问题。

fckeditor是一个非常棒的所见即所得在线编辑器,包括一些门户网站都在使用。fckeditor有个问题,就是上传图片默认为一个文件夹,当然这个问题早已经解决,我们可以用cookie或者session的方式给参数 $Config['UserFilesPath'] 就可以定制上传路径。而后在文章保存的过程中即可保存图片地址。

然后在使用过程中又出现一个问题,虽然我们知道图片在哪个文件夹,但我们却不能动态的去知道具体文件夹内有哪几个图片,预览是什么。而且,我们在写CMS的时候经常需要调用其中一张图片做封面,原来的机制显然无法去满足这些需求(当然你也可以查看编辑器内的源代码来查看图片地址,不过对于外行似乎有点困难)。

突然看到了discuz的附件机制,相出这么个损招:每张图片上传都给他存储在数据库中,打上guid(或者唯一的地址)进行标识,当我们保存的时候,图片会跟文章关联,在使用之前还可以用ajax动态调用预览,可谓一举两得。

文章保存后,图片进入数据库,另外还可以方便找出编辑遗留的垃圾,因为很多时候一个已经传了文章的草稿没有保存,而遗留很多的临时文件。

最近的fck版本好像升级了,配置文件放从根目录迁移了,不过fck代码非常规整,做这么个改造不是很难,就没写demo。

———————————————-

文章很冗余,骗稿费?

Linux配置几个关键点需要注意

作者 : admin 于 2009年07月15日, 04:30:16
2009
07-15

前两天机房断电,弄得兄弟我太郁闷。机房网管居然直接硬关机,这么来回弄了两三次,问技术,不是那一拨,问销售,没啥解释,人家说不知道……

一分钱一分货有道理,结果我机器挂了,机房那边说linux启动,中间卡死了。因为那个机房没有懂linux的网管,所以,我开车(捷安特)去了机房。

后发现,其实没什么问题,卡在了一个依赖python的启动进程上,另外mysql貌似也没有启动。

我用ubuntu live版的cd进入系统(有点像win下的PE的思路),修改了python设置:

原来python默认是2.3版本,我升级到了2.5,默认关联的是2.5版的,但这样会有一些问题,比如yum对版本依赖性很强,修改后则其不工作,所以我修改了yum的配置,让其寻找2.3版本。而另一下对python有依赖的模块我却没有发现,造成down机后无法启动。

mysql无法自启动,没找出是哪的问题,不过,我在ubuntu下加载了原来的分区,修改了rc.local配置,灭了mysql,系统顺利启动。

总结:ubuntu live cd的作用跟我修理xp时候的pe功能相似,系统挂掉的时候修改个配置啥的还是很好用的。

除非很了解软件之间的依赖性,否则不要随意修改那些配置,否则会造成依赖性问题。

事发现场图片

server-mysql

 Page 9 of 45  « First  ... « 7  8  9  10  11 » ...  Last »