is-Programmer 升级到 Chito 1.0.7
断断续续折腾了很久,其实主要的工作是把 Chito REST 化了。
更新如下:
核心
- 基于 Rails 2.1。
- REST 化。
- 编辑器升级到 FCKEditor 2.6.3。
功能
- 文章底栏实现,可以在文章下面显示可选内容。
- 文章、评论多选删除。
- 通过编辑器下的 “发布为页面” 按钮,可以将新文章或者已存在的文章发布为页面,也可以将已存在的页面转换为普通文章。
- Blog 评论 RSS 和 留言 RSS, 分别为 /comments.rss 和 /messages.rss。
- 繁体中文语言支持。 ( 仅仅是 iconv 的转换 )
修正
- 保存并继续编辑后显示提示。
- 解决某些 IE 浏览器下无法从文章编辑界面添加分类的问题。
插件 & 皮肤
- 文章底栏: 本地相关文章、全局相关文章。
- iTheme 皮肤。
在 is-Programmer 上测试下,没问题就打包发布了~
修改下 In Place Editing 插件
In Place Editing 这个插件代码非常简洁,却方便的实现了即时编辑的效果,不过自从从 Rails 的核心移出去之后,貌似就没有再升级过。
首先它不支持 Validate,In Place Editing 的保存不经过检查,即使你 validates_presence_of :name,也可以在 In Place Editing 中把 name 清空并保存,而且这样做了之后,由于 name 没有了文字,也没法点击编辑了。
另外它也不支持 protect_from_forgery。
虽说有个 REST In Place 插件,似乎是 In Place Editing 的替代品,其实稍微修改一下,In Place Editing 就能重放光芒了~
没法 validate 的缘故是因为它用了 update_attribute 的方法更新属性,只要改成 update_attributes 就可以了,然后检查保存是否成功,如果失败,将错误信息显示出来:
lib/in_place_editing.rb:
-
def in_place_edit_for(object, attribute, options = {})
-
define_method("set_#{object}_#{attribute}") do
-
@item = object.to_s.camelize.constantize.find(params[:id])
-
if @item.update_attributes({attribute.to_sym => params[:value]})
-
render :text => @item.send(attribute).to_s
-
else
-
render :text => @item.errors.on(attribute.to_sym)
-
end
-
end
-
end
也可以加个样式着重下错误信息:
-
render :text => "<span style='color:red;'>#{@item.errors.on(attribute.to_sym)}</span>"
protect_from_forgery 的问题只要加上 authenticity_token 参数就可以了:
lib/in_place_macros_helper.rb:
-
def in_place_editor_field(...)
-
...
-
in_place_editor_options[:url] = in_place_editor_options[:url] || url_for({ :action => "set_#{object}_#{method}", :authenticity_token => form_authenticity_token, :id => tag.object.id })
-
...
-
end
这样就 OK 了,效果还不错:
番茄花园作者被拘留
一大早就看到这消息,吃了一惊。
前两天笔记本上的 Windows 启动不了,还拿很久之前的一张番茄番茄花园的重装了下,现在已经出现了那个烦人的 “Genuine Advantage” 提示,下次重装只能用机子附带的 OEM 安装盘了,希望没被我扔掉……
难道微软看到大家都用 XP,Vista 卖不动了,所以出此损招 。
打击盗版是大好事,只不过和珊瑚虫一样,看到一款给大家带来着实方便的扩展,最后落得如此下场,心理有点难受。
千言万语汇成一句话: 来享受自由软件的世界吧~
开始锻炼
最近精力比较差……
睡觉睡不着,起床起不来。下午 2 点左右起床,一直浑浑噩噩,直到天黑才感觉进入了一点看书的状态。看书的时候还容易走神,坐不住。虽然每天都能完成列表上的任务,但是感觉做得不够认真,对付了事。到了睡觉的时间,躺在床上翻来覆去一个多小时才能睡着,然后起来接着浑浑噩噩,感觉一天没干什么就过去了……
喝咖啡,没用。喝啤酒,喝完肚子很胀。前两天没事买了瓶红酒,结果喝完,又在沙发上闷一觉……
最后察觉,也许是很久没有运动了的缘故,整天就坐着不动,唯一的运动就是骑车去上厕所,萎成这样也不奇怪了……
无奈没啥运动爱好,只好在屋里跳绳,然后出去走了一大圈,折腾了一身汗,感觉还不错。
明天继续坚持~
干了件很猛的事
下午出去买饭,外面正下着瓢泼大雨,平常一直右手拿着钥匙出门,今天右手拿着伞,就把钥匙忘在了屋里 。
回来的时候,端着两盒饭,站在雨中掏钥匙,顿时石化在了那里……
最后绝望的拽着门把手,发现只要用点力,就能把门拉开一条缝,于是使足浑身力气,呲牙咧嘴的拉门,最后一声巨响,门竟然开了……
后来发现门锁完全报废了,还好屋里有个环形锁,暂时用这个来锁门。
头一次这么感谢锁的质量不好……