如何将lightbox样式的图像库添加到使用Refinery cms的RubyonRails网站?我希望内容管理器能够将图像上传到页面,但页面会自动显示缩略图和链接,在灯箱风格的窗口中显示全尺寸图像。
第一步是从Github 下载jquery_lightbox
https://github.com/krewenki/jquery-lightbox/archive/master.zip
解压缩并将文件复制到正确的位置
将jquery_lightbox.js复制到您的网站的app/assests/javascripts目录
将所有gif文件从images目录复制到您的网站的app/assets/images目录
将lightbox.css.scss从css目录复制到您的网站的app/assests/stylesheets目录
编辑你的app/assets/javascripts/application.js文件,如下所示:
//= require jquery
//= require jquery_ujs
//= require jquery_lightbox
//= require_tree .
接下来,请确保您的webiste中包含了refinerycms页面图像,如果不只是取消注释/将以下内容添加到您的Gemfile中:
gem 'refinerycms-page-images', '~> 2.1.0'
然后运行以下命令:
bundle install
rails generate refinery:page_images
rake db:migrate
安装了精炼厂页面图像后,通过名为图像的精炼厂后端编辑页面时,您现在将有一个额外的选项卡,您可以在其中上传一个或多个图像,并将它们与页面关联。为了能够看到图像,我们需要创建一个自定义页面模板。
创建一个新文件:
app/views/refinery/pages/gallery.html.erb
编辑文件并添加以下代码:
<%= render '/refinery/content_page' %>
<section id="gallery">
<% @page.images.each do |image| %>
<div class="gallery_item">
<%= link_to image_tag(image.thumbnail(geometry: '80x80#c')
.png.convert("-background #666666 +polaroid").url),
image.thumbnail(geometry: "600x400").url,
class: 'lightbox',
rel: 'gallery' %>
</div>
<% end %>
</section>
第一行将显示正常炼油厂页面内容。代码的其余部分循环浏览图像选项卡上的图像,并为每个图像创建一个图像链接。每个链接都有要显示的缩略图,我在示例中使用了一个80px x 80px大小的带有宝丽来框架效果的图像。Refinery使用Dragonfly宝石控制图像,在线查看其他图像选项。链接url指向相同的图像,但应用了不同的大小(600px x 400px)。这段代码的两个关键部分是添加lightbox类rel属性。添加该类将使jquery更容易定位链接,这样我们就可以应用lightbox函数。rel将对图像进行分组,以便lightbox能够使用图像上的下一个和上一个按钮滚动页面上的图像。剖面和剖面只是为了让厨房的造型更简单。
接下来创建以下文件:
app/assets/javascripts/gallery.js.coffee
并添加以下代码:
$ ->
if $('#gallery').length > 0
$('.lightbox').lightbox()
这将针对图像链接并添加灯箱功能。接下来添加以下文件:
app/assets/stylesheets/gallery.css.scss
并添加以下代码:
#gallery {
.gallery_item {
float: left;
width: 100px;
height: 100px;
}
}
现在要创建图库页面,请启动web服务器并浏览到网站后端。转到页面选项卡并创建一个新页面。展开高级选项,然后从"视图模板"下拉列表中选择"库"。最后转到"图像"选项卡并添加一些图像。