refinerycms-pc_banners 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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: []