边栏显示推特消息

4 条评论

@zckevin 前两天提起要用php自己写推特的边栏挂件,我没理解清楚,当做只是在边栏显示推特的消息了,于是弄了这么个粗糙的东西。不过这个小功能应该也还是有不少人需要的吧,需要的取便是。

功能: user_timeline.php 中转推特API的数据,中转文件支持跨域调用,可以限制请求的用户。

使用:将 user_timeline.php 上传至支持 curl 和能访问推特 API 的空间里,然后网页使用 JS 调用,取回 json 格式的数据,处理好之后显示。

详细步骤:

1、引入 jquery,方便跨域调用中转的数据,用 google 托管的

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>

不过现在国内网络对它不友好,推荐抛弃它...如果是使用 html5 标准了,可以不指定type

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>

这个简单,大部分人的博客本身就准备好的叻。

3、再引入一只 JS,这是用来解析数据的,如果有需求,可以自己修改,或者重写,这个 JS 的源作者应该是 Ray 。可以将我空间里的这份JS另存为再上传到自己的空间。(额,就是要用我的...那也可以的...)

<script type="text/javascript" src="http://api.isouth.org/js/tweet.js"></script>

4、引入了这两个JS之后,一句 javascript 语句:

$.getJSON("http://api.isouth.org/tweet/user_timeline.php?screen_name=qiyi&include_rts=true&count=7&callback=?", twitterCallback2);

只要将请求的 screen_name 修改为自己的名字就可以了,要求自己的推文没有加锁保护。显示消息的地方要求为如下的 html 结构:

<ul id="twitter_update_list">Hello World!</ul>

这里是允许跨域请求的,但是我在我的这个文件里限制了使用用户的,所以就不要尝试调用我的了,php源码:

  1. <?php
  2. $allowed_users = array(
  3. 'qiyi'
  4. );
  5. if( !isset($_GET['screen_name']) || !in_array($_GET['screen_name'], $allowed_users) ){
  6. echo 'the user is not allowed by admin';
  7. die();
  8. }
  9.         if(isset($_GET['callback']))
  10.         {
  11.             $callback = $_GET['callback'];
  12.         unset($_GET['callback']);
  13.     }
  14.     $par = '';
  15.     $par .= http_build_query($_GET);
  16.     $user_timeline = 'http://api.twitter.com/1/statuses/user_timeline.json?';
  17.     $user_timeline .= $par ; 
  18.     $ch = curl_init();
  19.     curl_setopt($ch, CURLOPT_URL, $user_timeline);
  20.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  21.     $output .= curl_exec($ch);  
  22.     if( 200 == curl_getinfo($ch, CURLINFO_HTTP_CODE) ){
  23.          if(isset($callback)){
  24. header('content-type: application/x-javascript');
  25.             echo $callback."(".$output.")";
  26.         }
  27.         else{
  28.             echo $output;
  29.         }
  30.     }
  31.         curl_close($ch);
  32. ?>

效果,看右边。

Windows 下更改网卡物理地址

9 条评论

这个,还是丁叔告诉我的,大概11个月前,丁叔给我个校内的 open vpn 和 不计费 ecampus 账号的时候。

在开始菜单的计算机上点右键,选择管理

change-mac-on-windows-1

左侧选择设备管理器,然后展开网络适配器,找到需要修改的网卡,然后点右键,选择属性

change-mac-on-windows-2

在高级选项卡,选中网络地址,然后填值就可以了。

change-mac-on-windows-3

今天电信网断了,然后用学校网络,认证的时候需要改mac地址,想起来就又在这里废话了,大家都知道的方法嘛。

给embr添加IE9所支持的新特性

6 条评论

之前的之前,在 IE9 Beta 版本刚发布的时候,就给自己的博客添加上了部分 IE9 所支持的新特性(WordPress 添加 IE9 的 Site Pinning 特性),下午又尝试给所使用的 embr 加上了 IE9 固定网站后,静态任务列表、覆盖图标提示未读消息数、回复和私信闪烁任务栏图标提醒、任务栏缩略图快捷控制页面按钮等功能。由于部分是直接修改的源代码,所以为下次升级准备做个笔记。

在 header.php 开始部分添加静态的 meta 标记,以给固定到任务栏的时候添加任务列表

  1. <meta name="application-name" content="Embr: 苏笙 " />
  2. <meta name="msapplication-tooltip" content="苏笙,搭建在九尾狐的embr" />
  3. <meta name="msapplication-starturl" content="http://su.jiuweihu.us/" />
  4. <meta name="msapplication-task" content="name=Home; action-uri=http://su.jiuweihu.us/all.php; icon-uri=img/ie/favicon.ico" />
  5. <meta name="msapplication-task" content="name=Messages; action-uri=http://su.jiuweihu.us/message.php; icon-uri=img/ie/dm.ico" />
  6. <meta name="msapplication-task" content="name=Mentions ; action-uri=http://su.jiuweihu.us/replies.php; icon-uri=img/ie/mentions.ico" />
  7. <meta name="msapplication-task" content="name=Favorites; action-uri=http://su.jiuweihu.us/favor.php; icon-uri=img/ie/fav.ico" />
  8. <meta name="msapplication-task" content="name=Search; action-uri=http://su.jiuweihu.us/search.php; icon-uri=img/ie/search.ico" />
  9. <link rel="shortcut icon" href="/img/favicon.ico" type="image/x-icon" />

最后将设置图标那行一并改掉,可能兼容性好些吧- -

在 js/home.js 中搜索 title 关键词,搜索结果会有两处,第一处是清除 title 中提示消息数的,跟在后面添加

  1. try {
  2.      if (window.external.msIsSiteMode()) {
  3.          window.external.msSiteModeClearIconOverlay();
  4.      }
  5. }
  6. catch (e) {
  7. }

在第二处设置 title 中显示消息数后添加

  1. try {
  2.      if (window.external.msIsSiteMode()) {
  3.          var len = $(msg).length - 1;
  4.          var num_len = num+len;
  5.          if (num_len > 9){
  6.             num_len = "11";
  7.          }
  8.          window.external.msSiteModeSetIconOverlay("http://su.jiuweihu.us/img/ie/"+num_len+".ico", "收到 "+(num+len)+" 条新的消息");
  9.     }
  10. }
  11. catch (e) {
  12. }

类似地在 js/all.js 中添加,第一处是一样的清除覆盖图标,第二处为

  1. try {
  2.      if (window.external.msIsSiteMode()) {
  3.         var num_len = num+len;
  4.         if (num_len > 9){
  5.            num_len = "11";
  6.         }
  7.         window.external.msSiteModeSetIconOverlay("http://su.jiuweihu.us/img/ie/"+num_len+".ico", "收到 "+(num+len)+" 条新的消息");
  8.        if (type != "timeline"){
  9.           window.external.msSiteModeActivate();
  10.        }
  11.     }
  12. }
  13. catch (e) {
  14. }

因为在 all.php 页面下还检测 回复 和私信消息,这里要设置图标闪烁提醒。

ie9-new-feature-for-embr-2

再给任务栏缩略图添加控制按钮,直接在 inc/footer.php 最后 </body> 之前添加

  1. <?php
  2.     if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE" )){
  3.     echo "<script type=\"text/javascript\" src=\"http://images.isouth.org/qi/app.js\"></script>";
  4.     }
  5. ?>

再来个截图,通过点击缩略图下的快捷控制按钮可以快速地切换功能。

ie9-new-feature-for-embr-2

iOS 入门指导

3 条评论

虽然touch入了很久了但其实到昨天才破解,才能发这篇文章。。当然,文中所说的都是以iPod Touch为例的。

买回来一台新iOS设备后,第一件事就是通读说明书。这点非常重要!!!第二事才是插入安装了iTunes的电脑进行激活,当然不想装iTunes的话可以再苹果的Store激活。
»阅读全文

窗口最小化、最大化、关闭按钮消失

7 条评论

某次操作重启之后进入 mint debian xfce,发现打开的窗口上不再显示标题栏,窗口上的控制按钮(最大化、最小化、关闭按钮)都消失不见叻,窗口不能拖动,不能切换窗口,任务栏上不显示当前打开的程序,新弹出的窗口都位于桌面左上角...等等现象。而实际上很久以前在 ubuntu 下是遇到过一次类似情况的,当时因为恰好重装新的版本,也就没有去解决叻。这次不同,不是极端情况,不打算重装系统的。

显然是窗口管理器木有正常工作叻,打开终端,输入 xfwm4 --replace 回车即可。

关于 xfwm4 : http://www.xfce.org/projects/xfwm4/