Skip to content
Affiliate links with paperclip images.
Ruby JavaScript CSS
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
app
config
db/migrate
lib
script
spec
.gitignore
.rspec
Gemfile
Gemfile.lock
LICENSE
README.md
Rakefile
Versionfile
spree_affiliate_links.gemspec

README.md

SpreeAffiliateLinks

I needed a way to give my Spree client a way to add footer affiliate images with links, and so I created an extension for that. Simple.

This doesn't have to be tied to affiliate links. It can be used as a flexible image + url storage system. For example, I used it in a project needing a carousel with links to products that were configurable by the client.

You'll find an "Affiliate Links" section in the admin tabs. An example on how to display the links in the layout is below.

Installation

rake spree_affiliate_links:install:migrations
rake db:migrate

What It Does

Stores a name associated with a link, image, and sort. That's it! The rest is up to you.

You'll find a new tab in /admin where you can maintain these.

Example

It's not hard to use, but here's a seed to get you started:

# app/overrides/footer_affiliate_links.rb
Deface::Override.new(
  :name => "footer_affiliate_links",
  :virtual_path => "spree/layouts/spree_application",
  :insert_bottom => "#footer",
  :partial => "affiliate_links/footer"
)

# app/views/affiliate_links/_footer.html.erb
<%= Spree::AffiliateLink.each do |link| %>
  <a href="<%= link.destination_url %>">
    <%= image_tag link.image.attachment.url(:small) %>
  </a>
<% end %>

That'll get you all of the affiliate links in the footer. Currently, there's no way to order them, and you'll have to add your own image size to the Spree::Image paperclip configuration dynamically if you want that.

Testing

Be sure to bundle your dependencies and then create a dummy test app for the specs to run against.

$ bundle
$ bundle exec rake test_app
$ bundle exec rspec spec

Copyright (c) 2012 Sathya Sekaran, released under the New BSD License

Something went wrong with that request. Please try again.