refinerycms-pc_banners 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. data/app/controllers/refinery/banners/admin/banners_controller.rb +12 -0
  2. data/app/controllers/refinery/banners/banners_controller.rb +34 -0
  3. data/app/models/refinery/banners/banner.rb +27 -0
  4. data/app/views/refinery/banners/admin/banners/_actions.html.erb +25 -0
  5. data/app/views/refinery/banners/admin/banners/_banner.html.erb +20 -0
  6. data/app/views/refinery/banners/admin/banners/_banners.html.erb +2 -0
  7. data/app/views/refinery/banners/admin/banners/_form.html.erb +74 -0
  8. data/app/views/refinery/banners/admin/banners/_records.html.erb +18 -0
  9. data/app/views/refinery/banners/admin/banners/_sortable_list.html.erb +5 -0
  10. data/app/views/refinery/banners/admin/banners/edit.html.erb +1 -0
  11. data/app/views/refinery/banners/admin/banners/index.html.erb +7 -0
  12. data/app/views/refinery/banners/admin/banners/new.html.erb +1 -0
  13. data/app/views/refinery/banners/shared/_banner_image.html.erb +1 -0
  14. data/app/views/refinery/banners/shared/_banners.html.erb +9 -0
  15. data/config/locales/en.yml +35 -0
  16. data/config/locales/es.yml +36 -0
  17. data/config/locales/fr.yml +35 -0
  18. data/config/locales/nb.yml +35 -0
  19. data/config/locales/nl.yml +35 -0
  20. data/config/routes.rb +19 -0
  21. data/db/migrate/1_create_banners_banners.rb +34 -0
  22. data/db/migrate/2_create_banners_banners_pages.rb +15 -0
  23. data/db/seeds.rb +23 -0
  24. data/lib/generators/refinery/banners_generator.rb +18 -0
  25. data/lib/page_extensions.rb +17 -0
  26. data/lib/refinery/banners/engine.rb +32 -0
  27. data/lib/refinery/banners.rb +21 -0
  28. data/lib/refinerycms-pc_banners.rb +1 -0
  29. data/lib/tasks/refinery/banners.rake +13 -0
  30. data/readme.md +51 -0
  31. metadata +106 -0
@@ -0,0 +1,12 @@
1
+ module Refinery
2
+ module Banners
3
+ module Admin
4
+ class BannersController < ::Refinery::AdminController
5
+
6
+ crudify :'refinery/banners/banner',
7
+ :title_attribute => 'name', :xhr_paging => true
8
+
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,34 @@
1
+ module Refinery
2
+ module Banners
3
+ class BannersController < ::ApplicationController
4
+
5
+ before_filter :find_all_banners
6
+ before_filter :find_page
7
+
8
+ def index
9
+ # you can use meta fields from your model instead (e.g. browser_title)
10
+ # by swapping @page for @banner in the line below:
11
+ present(@page)
12
+ end
13
+
14
+ def show
15
+ @banner = Banner.find(params[:id])
16
+
17
+ # you can use meta fields from your model instead (e.g. browser_title)
18
+ # by swapping @page for @banner in the line below:
19
+ present(@page)
20
+ end
21
+
22
+ protected
23
+
24
+ def find_all_banners
25
+ @banners = Banner.order('position ASC')
26
+ end
27
+
28
+ def find_page
29
+ @page = ::Refinery::Page.where(:link_url => "/banners").first
30
+ end
31
+
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,27 @@
1
+ module Refinery
2
+ module Banners
3
+ class Banner < Refinery::Core::BaseModel
4
+ self.table_name = 'refinery_banners'
5
+
6
+ acts_as_indexed :fields => [:name, :url, :title, :description]
7
+
8
+ validates :name, :presence => true
9
+ validates_presence_of :start_date
10
+ validates_length_of :title, :in => 0..255, :allow_nil => true
11
+ validates_length_of :description, :in => 0..255, :allow_nil => true
12
+
13
+ belongs_to :image, :class_name => '::Refinery::Image'
14
+ has_and_belongs_to_many :pages, :class_name => '::Refinery::Page', :join_table => 'refinery_banners_pages'
15
+
16
+ scope :not_expired, lambda {
17
+ banners = Arel::Table.new(::Refinery::Banners::Banner.table_name)
18
+ where(banners[:expiry_date].eq(nil).or(banners[:expiry_date].gt(Time.now)))
19
+ }
20
+ scope :active, where(:is_active => true)
21
+ scope :published, lambda {
22
+ not_expired.active.where("start_date <= ?", Time.now).order(:position)
23
+ }
24
+
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,25 @@
1
+ <ul>
2
+ <% if ::Refinery::Banners::Admin::BannersController.searchable? %>
3
+ <li>
4
+ <%= render '/refinery/admin/search', :url => refinery.banners_admin_banners_path %>
5
+ </li>
6
+ <% end %>
7
+ <li>
8
+ <%= link_to t('.create_new'), refinery.new_banners_admin_banner_path,
9
+ :class => "add_icon" %>
10
+ </li>
11
+ <% if !searching? && ::Refinery::Banners::Admin::BannersController.sortable? && ::Refinery::Banners::Banner.any? %>
12
+ <li>
13
+ <%= link_to t('.reorder', :what => "Banners"),
14
+ refinery.banners_admin_banners_path,
15
+ :id => "reorder_action",
16
+ :class => "reorder_icon" %>
17
+
18
+ <%= link_to t('.reorder_done', :what => "Banners"),
19
+ refinery.banners_admin_banners_path,
20
+ :id => "reorder_action_done",
21
+ :style => "display: none;",
22
+ :class => "reorder_icon" %>
23
+ </li>
24
+ <% end %>
25
+ </ul>
@@ -0,0 +1,20 @@
1
+ <li class='clearfix record <%= cycle("on", "on-hover") %>' id="<%= dom_id(banner) -%>">
2
+ <span class='title'>
3
+ <%= banner.name %>
4
+
5
+ </span>
6
+ <span class='actions'>
7
+
8
+ <%= link_to refinery_icon_tag("application_go.png"), refinery.banners_banner_path(banner),
9
+ :title => t('.view_live_html'),
10
+ :target => "_blank" %>
11
+
12
+ <%= link_to refinery_icon_tag("application_edit.png"), refinery.edit_banners_admin_banner_path(banner),
13
+ :title => t('.edit') %>
14
+ <%= link_to refinery_icon_tag("delete.png"), refinery.banners_admin_banner_path(banner),
15
+ :class => "cancel confirm-delete",
16
+ :title => t('.delete'),
17
+ :confirm => t('message', :scope => 'refinery.admin.delete', :title => banner.name),
18
+ :method => :delete %>
19
+ </span>
20
+ </li>
@@ -0,0 +1,2 @@
1
+ <%= will_paginate @banners if Refinery::Banners::Admin::BannersController.pageable? %>
2
+ <%= render 'sortable_list' %>
@@ -0,0 +1,74 @@
1
+ <%= form_for [refinery, :banners_admin, @banner] do |f| -%>
2
+ <%= render '/refinery/admin/error_messages',
3
+ :object => @banner,
4
+ :include_object_name => true %>
5
+
6
+ <%= hidden_field_tag 'banner[page_ids][]' %>
7
+
8
+ <div class='field'>
9
+ <%= f.label :name -%>
10
+ <%= f.text_field :name, :class => 'larger widest' -%>
11
+
12
+ </div>
13
+
14
+ <div class='field'>
15
+ <%= f.label :title -%>
16
+ <%= f.text_field :title -%>
17
+
18
+ </div>
19
+
20
+ <div class='field'>
21
+ <%= f.label :description -%>
22
+ <%= f.text_field :description -%>
23
+
24
+ </div>
25
+
26
+ <div class='field'>
27
+ <%= f.label :image -%>
28
+ <%= render '/refinery/admin/image_picker',
29
+ :f => f,
30
+ :field => :image_id,
31
+ :image => @banner.image,
32
+ :toggle_image_display => false %>
33
+
34
+ </div>
35
+
36
+ <div class='field'>
37
+ <%= f.label :url -%>
38
+ <%= f.text_field :url -%>
39
+
40
+ </div>
41
+
42
+ <div class='field'>
43
+ <%= f.label :is_active -%>
44
+ <%= f.check_box :is_active, :checked => @banner[:is_active] -%>
45
+
46
+ </div>
47
+
48
+ <div class='field'>
49
+ <%= f.label :start_date -%>
50
+ <%= f.date_select :start_date -%>
51
+
52
+ </div>
53
+
54
+ <div class='field'>
55
+ <%= f.label :expiry_date -%>
56
+ <%= f.date_select :expiry_date -%>
57
+
58
+ </div>
59
+
60
+ <div class="field">
61
+ <%= f.label :pages %>
62
+ <% Refinery::Page.all.each do |page| %>
63
+ <div>
64
+ <%= check_box_tag "banner[page_ids][]", page.id, @banner.pages.include?(page) %>
65
+ <%= page.title %>
66
+ </div>
67
+ <% end %>
68
+ </div>
69
+
70
+ <%= render '/refinery/admin/form_actions', :f => f,
71
+ :continue_editing => false,
72
+ :delete_title => t('delete', :scope => 'refinery.banners.admin.banners.banner'),
73
+ :delete_confirmation => t('message', :scope => 'refinery.admin.delete', :title => @banner.name) %>
74
+ <% end -%>
@@ -0,0 +1,18 @@
1
+ <% if searching? %>
2
+ <h2><%= t('results_for', :scope => 'refinery.admin.search', :query => params[:search]) %></h2>
3
+ <% end %>
4
+ <div class='pagination_container'>
5
+ <% if @banners.any? %>
6
+ <%= render 'banners' %>
7
+ <% else %>
8
+ <p>
9
+ <% unless searching? %>
10
+ <strong>
11
+ <%= t('.no_items_yet') %>
12
+ </strong>
13
+ <% else %>
14
+ <%= t('no_results', :scope => 'refinery.admin.search') %>
15
+ <% end %>
16
+ </p>
17
+ <% end %>
18
+ </div>
@@ -0,0 +1,5 @@
1
+ <ul id='sortable_list'>
2
+ <%= render :partial => 'banner', :collection => @banners %>
3
+ </ul>
4
+ <%= render '/refinery/admin/sortable_list',
5
+ :continue_reordering => (local_assigns.keys.include?(:continue_reordering)) ? continue_reordering : true %>
@@ -0,0 +1 @@
1
+ <%= render 'form' %>
@@ -0,0 +1,7 @@
1
+ <section id='records'>
2
+ <%= render 'records' %>
3
+ </section>
4
+ <aside id='actions'>
5
+ <%= render 'actions' %>
6
+ </aside>
7
+ <%= render '/refinery/admin/make_sortable', :tree => false if !searching? and ::Refinery::Banners::Admin::BannersController.sortable? and ::Refinery::Banners::Banner.count > 1 %>
@@ -0,0 +1 @@
1
+ <%= render 'form' %>
@@ -0,0 +1 @@
1
+ <%= image_fu(banner_image.image, '960x310#c') %>
@@ -0,0 +1,9 @@
1
+ <div id="slider">
2
+ <% if @page.present? and @page.banners.published.present? %>
3
+ <%= render :partial => 'refinery/banners/shared/banner_image', :collection => @page.banners.published %>
4
+ <% elsif @banners.present? then %>
5
+ <%= render :partial => 'refinery/banners/shared/banner_image', :collection => @banners %>
6
+ <% else %>
7
+ <!--todo: insert static images here-->
8
+ <% end %>
9
+ </div>
@@ -0,0 +1,35 @@
1
+ en:
2
+ refinery:
3
+ plugins:
4
+ banners:
5
+ title: Banners
6
+ banners:
7
+ admin:
8
+ banners:
9
+ actions:
10
+ create_new: Add New Banner
11
+ reorder: Reorder Banners
12
+ reorder_done: Done Reordering Banners
13
+ records:
14
+ title: Banners
15
+ sorry_no_results: Sorry! There are no results found.
16
+ no_items_yet: There are no Banners yet. Click "Add New Banner" to add your first banner.
17
+ banner:
18
+ view_live_html: View this banner live <br/><em>(opens in a new window)</em>
19
+ edit: Edit this banner
20
+ delete: Remove this banner forever
21
+ banners:
22
+ show:
23
+ other: Other Banners
24
+ activerecord:
25
+ attributes:
26
+ 'refinery/banners/banner':
27
+ name: Name
28
+ title: Title
29
+ description: Description
30
+ image: Image
31
+ url: Url
32
+ is_active: Is Active
33
+ start_date: Start Date
34
+ expiry_date: Expiry Date
35
+ position: Position
@@ -0,0 +1,36 @@
1
+ es:
2
+ refinery:
3
+ plugins:
4
+ banners:
5
+ title: Banners
6
+ # article: masculino/femenino
7
+ banners:
8
+ admin:
9
+ banners:
10
+ actions:
11
+ create_new: Crear nuevo banner
12
+ reorder: Reordenar banners
13
+ reorder_done: Reordenación de banners completada
14
+ records:
15
+ title: Banners
16
+ sorry_no_results: Lo siento, no hay resultados
17
+ no_items_yet: No hay banners todavía. Pulsa en "Crear nuevo Banner" para crear tu primer banner.
18
+ banner:
19
+ view_live_html: Ver este banner como abierto al público <br/><em>(abre en ventana nueva)</em>
20
+ edit: Editar este banner
21
+ delete: Borrar este banner para siempre
22
+ banners:
23
+ show:
24
+ other: Otros banners
25
+ activerecord:
26
+ attributes:
27
+ 'refinery/banners/banner':
28
+ name: Name
29
+ title: Title
30
+ description: Description
31
+ image: Image
32
+ url: Url
33
+ is_active: Is Active
34
+ start_date: Start Date
35
+ expiry_date: Expiry Date
36
+ position: Position
@@ -0,0 +1,35 @@
1
+ fr:
2
+ refinery:
3
+ plugins:
4
+ banners:
5
+ title: Banners
6
+ banners:
7
+ admin:
8
+ banners:
9
+ actions:
10
+ create_new: Créer un(e) nouve(au/l/lle) Banner
11
+ reorder: Réordonner les Banners
12
+ reorder_done: Fin de réordonnancement des Banners
13
+ records:
14
+ title: Banners
15
+ sorry_no_results: "Désolé ! Aucun résultat."
16
+ no_items_yet: 'Il n''y a actuellement aucun(e) Banner. Cliquer sur "Créer un(e) nouve(au/l/lle) Banner" pour créer votre premi(er/ère) banner.'
17
+ banner:
18
+ view_live_html: Voir ce(t/tte) banner <br/><em>(Ouvre une nouvelle fenêtre)</em>
19
+ edit: Modifier ce(t/tte) banner
20
+ delete: Supprimer définitivement ce(t/tte) banner
21
+ banners:
22
+ show:
23
+ other: Autres Banners
24
+ activerecord:
25
+ attributes:
26
+ 'refinery/banners/banner':
27
+ name: Name
28
+ title: Title
29
+ description: Description
30
+ image: Image
31
+ url: Url
32
+ is_active: Is Active
33
+ start_date: Start Date
34
+ expiry_date: Expiry Date
35
+ position: Position
@@ -0,0 +1,35 @@
1
+ nb:
2
+ refinery:
3
+ plugins:
4
+ banners:
5
+ title: Banners
6
+ banners:
7
+ admin:
8
+ banners:
9
+ actions:
10
+ create_new: Lag en ny Banner
11
+ reorder: Endre rekkefølgen på Banners
12
+ reorder_done: Ferdig å endre rekkefølgen Banners
13
+ records:
14
+ title: Banners
15
+ sorry_no_results: Beklager! Vi fant ikke noen resultater.
16
+ no_items_yet: Det er ingen Banners enda. Klikk på "Lag en ny Banner" for å legge til din første banner.
17
+ banner:
18
+ view_live_html: Vis hvordan denne banner ser ut offentlig <br/><em>(åpner i et nytt vindu)</em>
19
+ edit: Rediger denne banner
20
+ delete: Fjern denne banner permanent
21
+ banners:
22
+ show:
23
+ other: Andre Banners
24
+ activerecord:
25
+ attributes:
26
+ 'refinery/banners/banner':
27
+ name: Name
28
+ title: Title
29
+ description: Description
30
+ image: Image
31
+ url: Url
32
+ is_active: Is Active
33
+ start_date: Start Date
34
+ expiry_date: Expiry Date
35
+ position: Position
@@ -0,0 +1,35 @@
1
+ nl:
2
+ refinery:
3
+ plugins:
4
+ banners:
5
+ title: Banners
6
+ banners:
7
+ admin:
8
+ banners:
9
+ actions:
10
+ create_new: Maak een nieuwe Banner
11
+ reorder: Wijzig de volgorde van de Banners
12
+ reorder_done: Klaar met het wijzingen van de volgorde van de Banners
13
+ records:
14
+ title: Banners
15
+ sorry_no_results: Helaas! Er zijn geen resultaten gevonden.
16
+ no_items_yet: Er zijn nog geen Banners. Druk op 'Maak een nieuwe Banner' om de eerste aan te maken.
17
+ banner:
18
+ view_live_html: Bekijk deze banner op de website <br/><em>(opent een nieuw venster)</em>
19
+ edit: Bewerk deze banner
20
+ delete: Verwijder deze banner voor eeuwig
21
+ banners:
22
+ show:
23
+ other: Andere Banners
24
+ activerecord:
25
+ attributes:
26
+ 'refinery/banners/banner':
27
+ name: Name
28
+ title: Title
29
+ description: Description
30
+ image: Image
31
+ url: Url
32
+ is_active: Is Active
33
+ start_date: Start Date
34
+ expiry_date: Expiry Date
35
+ position: Position
data/config/routes.rb ADDED
@@ -0,0 +1,19 @@
1
+ Refinery::Core::Engine.routes.append do
2
+
3
+ # Frontend routes
4
+ namespace :banners do
5
+ resources :banners, :path => '', :only => [:index, :show]
6
+ end
7
+
8
+ # Admin routes
9
+ namespace :banners, :path => '' do
10
+ namespace :admin, :path => 'refinery' do
11
+ resources :banners, :except => :show do
12
+ collection do
13
+ post :update_positions
14
+ end
15
+ end
16
+ end
17
+ end
18
+
19
+ end
@@ -0,0 +1,34 @@
1
+ class CreateBannersBanners < ActiveRecord::Migration
2
+
3
+ def up
4
+ create_table :refinery_banners do |t|
5
+ t.string :name
6
+ t.string :title
7
+ t.string :description
8
+ t.integer :image_id
9
+ t.string :url
10
+ t.boolean :is_active
11
+ t.date :start_date
12
+ t.date :expiry_date
13
+ t.integer :position
14
+ t.integer :position
15
+
16
+ t.timestamps
17
+ end
18
+
19
+ end
20
+
21
+ def down
22
+ if defined?(::Refinery::UserPlugin)
23
+ ::Refinery::UserPlugin.destroy_all({:name => "refinerycms-banners"})
24
+ end
25
+
26
+ if defined?(::Refinery::Page)
27
+ ::Refinery::Page.delete_all({:link_url => "/banners/banners"})
28
+ end
29
+
30
+ drop_table :refinery_banners
31
+
32
+ end
33
+
34
+ end
@@ -0,0 +1,15 @@
1
+ class CreateBannersBannersPages < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :refinery_banners_pages, :id => false do |t|
4
+ t.integer :page_id
5
+ t.integer :banner_id
6
+ end
7
+
8
+ add_index :refinery_banners_pages, :page_id
9
+ add_index :refinery_banners_pages, :banner_id
10
+ end
11
+
12
+ def self.down
13
+ drop_table :refinery_banners_pages
14
+ end
15
+ end
data/db/seeds.rb ADDED
@@ -0,0 +1,23 @@
1
+ if defined?(::Refinery::User)
2
+ ::Refinery::User.all.each do |user|
3
+ if user.plugins.where(:name => 'refinerycms-banners').blank?
4
+ user.plugins.create(:name => 'refinerycms-banners',
5
+ :position => (user.plugins.maximum(:position) || -1) +1)
6
+ end
7
+ end
8
+ end
9
+
10
+
11
+ #url = "/banners"
12
+ #if defined?(::Refinery::Page) && ::Refinery::Page.where(:link_url => url).empty?
13
+ # page = ::Refinery::Page.create(
14
+ # :title => 'Banners',
15
+ # :link_url => url,
16
+ # :deletable => false,
17
+ # :menu_match => "^#{url}(\/|\/.+?|)$"
18
+ # )
19
+ # Refinery::Pages.default_parts.each do |default_page_part|
20
+ # page.parts.create(:title => default_page_part, :body => nil)
21
+ # end
22
+ #end
23
+
@@ -0,0 +1,18 @@
1
+ module Refinery
2
+ class BannersGenerator < Rails::Generators::Base
3
+
4
+ def rake_db
5
+ rake("refinery_banners:install:migrations")
6
+ end
7
+
8
+ def append_load_seed_data
9
+ create_file 'db/seeds.rb' unless File.exists?(File.join(destination_root, 'db', 'seeds.rb'))
10
+ append_file 'db/seeds.rb', :verbose => true do
11
+ <<-EOH
12
+
13
+ Refinery::Banners::Engine.load_seed
14
+ EOH
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,17 @@
1
+ module Refinery
2
+ module Banners
3
+ module Extensions
4
+ module Page
5
+ module ClassMethods
6
+ def add_banners_relationship
7
+ has_and_belongs_to_many :banners, :class_name => '::Refinery::Banners::Banner', :join_table => 'refinery_banners_pages'
8
+ end
9
+ end
10
+
11
+ def self.included(base)
12
+ base.extend(ClassMethods).add_banners_relationship
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,32 @@
1
+ module Refinery
2
+ module Banners
3
+ class Engine < Rails::Engine
4
+ include Refinery::Engine
5
+ isolate_namespace Refinery::Banners
6
+
7
+ engine_name :refinery_banners
8
+
9
+ initializer "register refinerycms_banners plugin" do
10
+ Refinery::Plugin.register do |plugin|
11
+ plugin.name = "banners"
12
+ plugin.url = proc { Refinery::Core::Engine.routes.url_helpers.banners_admin_banners_path }
13
+ plugin.pathname = root
14
+ plugin.activity = {
15
+ :class_name => :'refinery/banners/banner',
16
+ :title => 'name'
17
+ }
18
+
19
+ end
20
+ end
21
+
22
+ config.to_prepare do
23
+ require 'page_extensions'
24
+ Refinery::Page.send :include, Refinery::Banners::Extensions::Page
25
+ end
26
+
27
+ config.after_initialize do
28
+ Refinery.register_extension(Refinery::Banners)
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,21 @@
1
+ require 'refinerycms-core'
2
+
3
+ module Refinery
4
+ autoload :BannersGenerator, 'generators/refinery/banners_generator'
5
+
6
+ module Banners
7
+ require 'refinery/banners/engine'
8
+
9
+ class << self
10
+ attr_writer :root
11
+
12
+ def root
13
+ @root ||= Pathname.new(File.expand_path('../../../', __FILE__))
14
+ end
15
+
16
+ def factory_paths
17
+ @factory_paths ||= [ root.join('spec', 'factories').to_s ]
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1 @@
1
+ require 'refinery/banners'
@@ -0,0 +1,13 @@
1
+ namespace :refinery do
2
+
3
+ namespace :banners do
4
+
5
+ # call this task by running: rake refinery:banners:my_task
6
+ # desc "Description of my task below"
7
+ # task :my_task => :environment do
8
+ # # add your logic here
9
+ # end
10
+
11
+ end
12
+
13
+ end
data/readme.md ADDED
@@ -0,0 +1,51 @@
1
+ # Refinery CMS Banners
2
+
3
+ Simple banners engine for [Refinery CMS](http://refinerycms.com). Creates a many-to-many relationship between Pages and Banners, allowing an Image to be assigned to a Banner as well.
4
+
5
+ This version of `refinerycms-pc_banners` supports Rails 3.
6
+
7
+ ## Requirements
8
+
9
+ Refinery CMS version 2.0.0 and above.
10
+
11
+ ## Install
12
+
13
+ Open up your ``Gemfile`` and add the following:
14
+
15
+ gem 'refinerycms-pc_banners', '2.0.0', :git => 'git://github.com/julesce/refinerycms-pc_banners.git'
16
+
17
+ Now, run:
18
+
19
+ bundle install
20
+
21
+ Next, run:
22
+
23
+ rails generate refinery:banners
24
+
25
+ Migrate your database:
26
+
27
+ rake db:migrate
28
+
29
+ And let's hook up the seed data:
30
+
31
+ rake db:seed
32
+
33
+ ## Usage
34
+
35
+ It is up to you to make use of the banners assigned to your pages. To get the published banners for your current page:
36
+
37
+ @page.banners.published
38
+
39
+ Let's say you are using the [Nivo Slider](http://nivo.dev7studios.com/) for your banners in your views, you could do the following:
40
+
41
+ <div id="nivo_slider">
42
+ <% if @page.present? and @page.banners.published.present? %>
43
+ <% @page.banners.published.each do |banner| %>
44
+ <%= image_fu(banner.image, '960x310#c') %>
45
+ <% end %>
46
+ <% end %>
47
+ </div>
48
+
49
+ Or you can use the following to accomplish something very similar to the above:
50
+
51
+ <%= render :partial => 'refinery/banners/shared/banners' %>
metadata ADDED
@@ -0,0 +1,106 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: refinerycms-pc_banners
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - James Thompson
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-03-11 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: refinerycms-core
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 2.0.1
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 2.0.1
30
+ - !ruby/object:Gem::Dependency
31
+ name: refinerycms-testing
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 2.0.1
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 2.0.1
46
+ description: Ruby on Rails Banners extension for Refinery CMS
47
+ email: james.b.thompson@gmail.com
48
+ executables: []
49
+ extensions: []
50
+ extra_rdoc_files: []
51
+ files:
52
+ - app/controllers/refinery/banners/admin/banners_controller.rb
53
+ - app/controllers/refinery/banners/banners_controller.rb
54
+ - app/models/refinery/banners/banner.rb
55
+ - app/views/refinery/banners/admin/banners/edit.html.erb
56
+ - app/views/refinery/banners/admin/banners/index.html.erb
57
+ - app/views/refinery/banners/admin/banners/new.html.erb
58
+ - app/views/refinery/banners/admin/banners/_actions.html.erb
59
+ - app/views/refinery/banners/admin/banners/_banner.html.erb
60
+ - app/views/refinery/banners/admin/banners/_banners.html.erb
61
+ - app/views/refinery/banners/admin/banners/_form.html.erb
62
+ - app/views/refinery/banners/admin/banners/_records.html.erb
63
+ - app/views/refinery/banners/admin/banners/_sortable_list.html.erb
64
+ - app/views/refinery/banners/shared/_banners.html.erb
65
+ - app/views/refinery/banners/shared/_banner_image.html.erb
66
+ - config/locales/en.yml
67
+ - config/locales/es.yml
68
+ - config/locales/fr.yml
69
+ - config/locales/nb.yml
70
+ - config/locales/nl.yml
71
+ - config/routes.rb
72
+ - db/migrate/1_create_banners_banners.rb
73
+ - db/migrate/2_create_banners_banners_pages.rb
74
+ - db/seeds.rb
75
+ - lib/generators/refinery/banners_generator.rb
76
+ - lib/page_extensions.rb
77
+ - lib/refinery/banners/engine.rb
78
+ - lib/refinery/banners.rb
79
+ - lib/refinerycms-pc_banners.rb
80
+ - lib/tasks/refinery/banners.rake
81
+ - readme.md
82
+ homepage: https://github.com/julesce/refinerycms-pods
83
+ licenses: []
84
+ post_install_message:
85
+ rdoc_options: []
86
+ require_paths:
87
+ - lib
88
+ required_ruby_version: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ required_rubygems_version: !ruby/object:Gem::Requirement
95
+ none: false
96
+ requirements:
97
+ - - ! '>='
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ requirements: []
101
+ rubyforge_project:
102
+ rubygems_version: 1.8.18
103
+ signing_key:
104
+ specification_version: 3
105
+ summary: Banners extension for Refinery CMS
106
+ test_files: []