浏览 674 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间: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 文档已经很详细了,这个没啥好说的,这也不是我们今天要说的重点。我们的目的是新建个插件,让其他的用户不需要再过问这些繁琐的东西,直接拿来用就行了。 =============================不想看过程,直接跳到下个分割线================================= 新建插件 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 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |



