你的位置:快乐忆站 \ 技术 \ 文章正文

emlog加入“手气不错”按钮

刚刚考完一门DT的考试,虽然没怎么考好,但是心情还是挺不错的,我们有经验的兄弟说了,补考只要你去考,就肯定会过的。此兄弟为补考砖家,他的话还是有一点点权威的,那么我就不用担心了,直接重修是不可能了,准备补考吧~好久不写日志,感觉手都生了,今天分享一点小功能:“手气不错”按钮。

我本人加入这个按钮已经很久了,仿的是谷歌的,其实也是从别人那里看来的。废话就不多说了,emlog的想加这个按钮的请看过来。按钮分两种版本:1.和我一样的,点击后得到随机的文章列表;2.和枫雪小盆友一样的,点击后随机得到一篇文章。

先说第一种:打开emlog根目录下的index.php,找到大约第80行代码:

$logs = $emBlog->getLogsForHome($sqlSegment, $page, $index_lognum);

在其上面加入如下代码:

if(isset($_GET['random'])){
    $blogtitle = '随机日志';//页面标题,可自行修改之
    $sqlSegment ="ORDER BY rand()";
}

然后在你想要添加按钮的地方添加一个超链接,地址为:你博客的地址/?random。例如我的:

<a href="http://xiaosong.org/?random" target="_blank">手气不错</a>

至此,功能已经实现了。

再说第二种:还是打开index.php,在第8行require_once 'common.php';下一行加入如下代码:

if(isset($_GET['random'])){
    global $DB,$isurlrewrite;
    list($rnd) = $DB->fetch_array($DB->query("SELECT gid FROM ".DB_PREFIX."blog WHERE hide='n' ORDER BY rand() LIMIT 1"));
    switch ($isurlrewrite){
	    case '0':
		header("Location:?post=".$rnd);
	    break;
	    case '1':
		header("Location:post-".$rnd.".html");
	    break;
	    case '2':
		header("Location:post/".$rnd);
	    break;
    }
}

接下来就和第一种情况一样,加入一个按钮就OK了~

好了,长长的文章好久没写了,手酸,有用的学习下,没用就的拍砖吧,我吃饭去鸟 \(^o^)/╮(╯▽╰)╭

大家的话:
  1. 39#
    小牡
    2011-04-30 15:19
    这个不支持4.0的说
    小松
    2011-04-30 15:20
    @小牡:恩,这个4.0以后估计就没了~
  2. 38#
    我的久优
    2011-02-18 14:50
    恩不错支持下
  3. 37#
    猴岛
    2011-01-20 19:00

    好东西哦,谢谢分享!
    小松
    2011-01-20 19:16
    @猴岛:能用到那是最好了~
  4. 36#
    WordPress啦
    2011-01-04 15:24
    我那个去啊
  5. 35#
    heson
    2011-01-02 16:15
    补考是个眼子~~~~~  补考的卷子上面还写着选择题的答案
    小松
    2011-01-05 10:55
    @heson:那不会的吧,只是可以随便抄罢了~
    heson
    2011-01-05 13:47
    @小松:我说我们考试·············
    小松
    2011-01-05 14:01
    @heson:你们那考试也太给力了吧?
  6. 34#
    广州婚庆加盟
    2011-01-02 11:22
    以后一定是个人才哦。。。现在是学生都这么厉害了。。。
  7. 33#
    踏雪残情
    2011-01-01 20:16
    哈,看过,还没试过.
  8. 32#
    dudo
    2010-12-31 16:31
    让代码飞一会,我们先去过年
    小松
    2011-01-05 10:55
    @dudo:给力的子弹啊
  9. 31#
    Pavel
    2010-12-31 16:03
    你的博客几乎是全站ajax了啊
    小松
    2011-01-05 10:56
    @Pavel:哪里啊,还有很多没有呢~
  10. 30#
    ecigars
    2010-12-30 22:50
    目前还在使用WP的路过,EMLOG, TYPECHO目前貌似比较流行哇!
  11. 29#
    大饿狼
    2010-12-30 21:54
    没有搞过这个东西
    小松
    2010-12-30 21:59
    @大饿狼:好吧,有空搞搞吧~
  12. 28#
    白衣大戈格
    2010-12-30 19:22
    小松,这个评论填写框的大小在哪里调节的啊~
    小松
    2010-12-30 20:04
    @白衣大戈格:module.php里面的评论框部分吧,要么就在css里面,你找找吧~
    白衣大戈格
    2010-12-30 21:54
    @小松:搞定~
    小松
    2010-12-30 21:58
    @白衣大戈格:我去看看被你搞成怎么样了...
  13. 27#
    远酷车灯
    2010-12-30 16:20
    真不错,顶
  14. 26#
    WAP源码程序
    2010-12-30 14:21
    博客很给力啊,简单好用
  15. 25#
    su
    2010-12-30 08:31
    那个是广告吗?我点点看啊
    小松
    2010-12-30 10:51
    @su:哪个?文章中的图片链接是一个博友的导航站,可以去看看~
  16. 24#
    su
    2010-12-30 08:30
    呵呵 我就来看看了啊
    小松
    2010-12-30 10:52
    @su:把网址都填错了...
  17. 23#
    箴言
    2010-12-30 00:01
    发现小松来广告了··
    小松
    2010-12-30 10:50
    @箴言:要帮你放一个吗?
    箴言
    2010-12-30 10:51
    @小松:这个不会是你做的站吧···
    小松
    2010-12-30 12:13
    @箴言:不是,我这个博客都管不了了,哪有这闲工夫啊~博友的一个导航站~
  18. 22#
    小羿
    2010-12-29 17:47
    想到了个谷歌那个。。一直没点过
    小松
    2010-12-29 20:23
    @小羿:呵呵,有空就点点呗~
  19. 21#
    gooder8
    2010-12-29 16:33
    年未岁初的折腾!
    小松
    2010-12-29 16:35
    @gooder8:如果不出意外的话年末还会再写一篇折腾的文章~
  20. 20#
    西风
    2010-12-29 15:51
    这个好玩,呵呵
    小松
    2010-12-29 16:04
    @西风:本意就是拿来玩玩的~
  21. 19#
    yesureadmin
    2010-12-29 15:47
    表示不感冒毕竟不是有目的搜东西
    小松
    2010-12-29 15:51
    @yesureadmin:就是随便玩玩的一个小功能~可有可无~
  22. 18#
    电脑人生
    2010-12-29 15:42
    主要是random这个函数 不错 赞一个!
    小松
    2010-12-29 15:51
    @电脑人生:问题就在于这个rand(),查询数据量多时效率太低
  23. 17#
    林西老九
    2010-12-29 15:35
    无视之~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    小松
    2010-12-29 15:50
    @林西老九:谢谢老九的无视~
  24. 16#
    枫雪
    2010-12-29 10:46
    无语..这也叫好长的日志...你懒得不像话了
    小松
    2010-12-29 11:26
    @枫雪:全部自己码的字啊,够长了吧,你要求也太高了吧?
  25. 15#
    山头人
    2010-12-29 05:46
    小松再出力作,人才啊。
    小松
    2010-12-29 09:23
    @山头人:哪有啊,其实动点php的就知道这个很简单的~
  26. 14#
    小邪
    2010-12-29 04:35
    刚才手气不错,直接跳到“拿什么来拯救我的蛋”。。
    这,这个,要不咱揉揉。。
    小松
    2010-12-29 09:24
    @小邪:你的受气真的不错哦哦~
  27. 13#
    david
    2010-12-29 03:30
    可惜我的是WP的

    表示无奈路过。
    小松
    2010-12-29 09:25
    @david:wp有类似的插件Random Redirect,你可以去试试~
    david
    2010-12-31 04:12
    @小松:
    听这个插件名字好像是相关的吧。。我去找找看哈。
  28. 12#
    wmtimes
    2010-12-29 01:10
    手气不错,还以为中奖了呢。提前送出祝福,元旦快乐!
    小松
    2010-12-29 09:25
    @wmtimes:^_^灰常感谢你的祝福~
  29. 11#
    顺水横流
    2010-12-28 23:40
    我的主题虽然没有这个按钮,但自带的随机日志功能,呵呵
    小松
    2010-12-29 09:26
    @顺水横流::-)那不错,自带的就不用自己折腾了~
  30. 10#
    mice
    2010-12-28 22:30
    看到你这个..我就想到WP那个插件了..果断衮去研究下..完全可以改成无插件版的..我怎么这么2呢.
    mice
    2010-12-29 00:16
    最新折腾结果:
    因为原来折腾过类似这种随机获取的,当我看到你ORDER BY rand()的时候,想起当初一个文章说ORDER BY rand()这种不好,当数据量很大的时候很占用CPU..然后我果断去看了下我的那个插件,一样也是ORDER BY rand()..当时我就淡然了..果断换sql代码..用数据说话.
    -----------------------------------
    用 ORDER BY rand() 方法(我的数据量是5K条):
    显示行 0 - 0 (1 总计, 查询花费 0.0110 秒)
    显示行 0 - 0 (1 总计, 查询花费 0.0107 秒)
    显示行 0 - 0 (1 总计, 查询花费 0.0100 秒)
    ------------------------------------
    用另外一种方法:
    显示行 0 - 0 (1 总计, 查询花费 0.0008 秒)
    显示行 0 - 0 (1 总计, 查询花费 0.0006 秒)
    显示行 0 - 0 (1 总计, 查询花费 0.0006 秒)
    ------------------------------------
    结果很明显了...我已经帮你修改好了..不过不知道你能不能用(我怕我马虎了-.-)..
    ------------------------------------
    list($rnd) = $DB->fetch_array($DB->query("SELECT t1.gid FROM ".DB_PREFIX."blog AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(gid) FROM ".DB_PREFIX."blog)-(SELECT MIN(gid) FROM ".DB_PREFIX."blog))+(SELECT MIN(gid) FROM ".DB_PREFIX."blog)) AS gid) AS t2 WHERE t1.gid >= t2.gid and hide='n' ORDER BY t1.gid LIMIT 1;"));
    ------------------------------------
    mice
    2010-12-29 00:17
    @mice: 我去,竟然写了这么多
    睡觉去咯
    小松
    2010-12-29 09:27
    @mice:党和人民感谢你!!!
    小松
    2010-12-29 08:37
    @mice:你真的很给力啊,其实这个问题我自己也已经想到了的,但是由于emlog的用户基本上没有超过1000条数据库日志记录的,所以我也就懒得来节约这么点时间了,灰常感谢你的sql语句,等咱数据量大了必定会用~
1 2

随机日志:

推荐日志:

说两句吧:

正在回复: 取消

sitemap