2008-02-22
让你的相册炫起来
关键字: rails plugin photos piclens
首先,请先浏览http://www.piclens.com/,安装Firefox或IE的插件
默认已经支持了很多的网站。
怎么使用?
http://www.piclens.com/site/firefox/tutorial_pl_ff.php
看完之后也许你也会和我有一样的想法,我能不能给自己的网站上加上呢? 我们每个会员都有自己的 JavaEye的相册的?
很幸运,目前PicLens已经提供相应的支持。
http://piclens.com/lite/webmasterguide.php
文档已经很详细了,这个没啥好说的,这也不是我们今天要说的重点。我们的目的是新建个插件,让其他的用户不需要再过问这些繁琐的东西,直接拿来用就行了。
=============================不想看过程,直接跳到下个分割线=================================
新建插件
这里主要的就是图片的rss,参照piclens上的文档,uuid和link是必须的,这个难不倒我们,一个builder而已。
include 这两个方法
=============================不想看演示,直接跳到下个分割线=================================
使用之。。。。
安装插件
新建model:photo
添加 PiclensLite js和 所照片的 rss feed
同时我们还提供了一个本地js,已防止用户无法连接piclens.com的网站。执行
将js拷贝至public/javascripts目录下。
将上面的代码修改成
好了,最后一步生成piclens需要的rss
如何基于已有的model上使用呢
最简单,偷懒的方法:定义一个link 函数即可
更多功能
===============================================================================
完整的文件请下载附件
Env:
rails 2.0
sqlite3
默认已经支持了很多的网站。
怎么使用?
http://www.piclens.com/site/firefox/tutorial_pl_ff.php
看完之后也许你也会和我有一样的想法,我能不能给自己的网站上加上呢? 我们每个会员都有自己的 JavaEye的相册的?
很幸运,目前PicLens已经提供相应的支持。
http://piclens.com/lite/webmasterguide.php
文档已经很详细了,这个没啥好说的,这也不是我们今天要说的重点。我们的目的是新建个插件,让其他的用户不需要再过问这些繁琐的东西,直接拿来用就行了。
=============================不想看过程,直接跳到下个分割线=================================
新建插件
ruby script/generate plugin pic_lens_lite_helper
这里主要的就是图片的rss,参照piclens上的文档,uuid和link是必须的,这个难不倒我们,一个builder而已。
module PicLensLiteHelper
module ActionController
def piclens_rss(photos=[], options={})
xml = Builder::XmlMarkup.new(:indent =>2)
xml.instruct! :xml, :version=>"1.0", :encoding=>"UTF-8", :standalone=>"yes"
xml.rss 'version'=>'2.0', 'xmlns:media' => 'http://search.yahoo.com/mrss' do
xml.channel do
xml.title options[:title]||''
xml.link options[:link]||''
xml.description options[:description]||''
photos.each do |photo|
xml.item do
xml.title photo.title if photo.respond_to?(:title)
xml.link photo.link #必须的参数
xml.guid UUID.random_create.to_s
xml.media :thumbnail, :url=>photo.thumbnail if photo.respond_to?(:thumbnail)
xml.media :content, :url=>photo.url if photo.respond_to?(:url)
end
end
yield xml if block_given?
end
end
end
def render_piclens_rss_for(photos=[], options={})
render :text=> piclens_rss(photos, options), :content_type => Mime::XML
end
end
module ActionView
#一个helper而已,代码有点丑,呵呵
def piclens_includes(url, options={})
if options[:local]
%Q{<link rel="alternate" href="#{url}" type="application/rss+xml" title="" id="gallery"/>
<script type="text/javascript" src="/javascripts/piclens.js"/>}
else
%Q{<link rel="alternate" href="#{url}" type="application/rss+xml" title="" id="gallery"/>
<script type="text/javascript" src="http://lite.piclens.com/current/piclens.js"/>}
end
end
end
end
include 这两个方法
ActionView::Base.send :include, PicLensLiteHelper::ActionView ActionController::Base.send :include, PicLensLiteHelper::ActionController
=============================不想看演示,直接跳到下个分割线=================================
使用之。。。。
rails pic_lens_lite_demo
安装插件
ruby script/plugin install http://martinx.googlecode.com/svn/trunk/plugins/pic_lens_lite_helper
新建model:photo
ruby script/generate scaffold photo title:string link:string thumbnail:string url:string
添加 PiclensLite js和 所照片的 rss feed
<%= piclens_includes formatted_photos_path(:rss)%>
同时我们还提供了一个本地js,已防止用户无法连接piclens.com的网站。执行
rake picslen:install
将js拷贝至public/javascripts目录下。
将上面的代码修改成
<%= piclens_includes formatted_photos_path(:rss), :local=>true %>
好了,最后一步生成piclens需要的rss
@photos = Photo.find(:all)
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @photos }
format.rss { render_piclens_rss_for @photos}
end
如何基于已有的model上使用呢
最简单,偷懒的方法:定义一个link 函数即可
Someodle <AR
def link
"" #这里给出图片的具体路径即可,譬如"/static/images/#{self.image}" etc.
end
end
更多功能
def thumbnail;end #缩微图 def title;end #图片标题
===============================================================================
完整的文件请下载附件
Env:
rails 2.0
sqlite3
- 17:06
- 浏览 (407)
- 评论 (0)
- 分类: Ruby&Rails
- 进入论坛
- 相关推荐
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 103319 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
我的相册
2008-6-24 8-00-01.png
共 59 张
共 59 张
最近加入圈子
最新评论
-
无聊,无题
那么多数字无聊进去的……
-- by mmiwwcom -
无聊,无题
身份证号码?
-- by mmiwwcom -
Code Review&JRuby on Rai ...
我悄悄的看看
-- by mmiwwcom -
DM & Merb 快速体验
尝试安装的时候发现DM无法在win32的平台上通过gem安装?
-- by yy77 -
DM & Merb 快速体验
Raecoo 写道Merb的精简,是要看以什么样的角度去看待了 Merb的目标 ...
-- by neodoxy






评论排行榜