浏览 2494 次
锁定老帖子 主题:让你的相册炫起来
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-02-22
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 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |