Created
April 21, 2012 07:35
-
-
Save Soldo/2435306 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Facebook like button displayed for particular blog post. When a user clicks on this button I would like that particular information about the post he is viewing (blog teaser image, blog teaser description, blog post URL) is displayed in his news feeds: | |
| <asside id="share_pa"> | |
| <ul> | |
| <li class="facebook"> | |
| <div class="fb-like" data-href="http://my-site.com<%= refinery.blog_post_path %>" | |
| data-send="false" data-layout="box_count" data-width="55" data-show-faces="false"></div> | |
| </li> | |
| </ul> | |
| </asside> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Facebook like button in the footer of my site. When liked it needs to show general information about my site (general description, site logo and site URL) | |
| <div class="fb_like_btn"> | |
| <h2>Lajkajte nas na Facebooku</h2> | |
| <div class="fb-like" data-href="http://my-site.com" | |
| data-send="false" data-width="340" data-show-faces="false"></div> | |
| </div> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| this is the script I included right after the <body> section (generated by facebook): | |
| <div id="fb-root"></div> | |
| <script>(function(d, s, id) { | |
| var js, fjs = d.getElementsByTagName(s)[0]; | |
| if (d.getElementById(id)) return; | |
| js = d.createElement(s); js.id = id; | |
| js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=MY_APP_ID"; | |
| fjs.parentNode.insertBefore(js, fjs); | |
| }(document, 'script', 'facebook-jssdk'));</script> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| I have overridden post.rb model and added face_book_img method that should find the source path (src) of the image teaser of particular blog post: | |
| require 'acts-as-taggable-on' | |
| require 'seo_meta' | |
| module Refinery | |
| module Blog | |
| class Post < ActiveRecord::Base | |
| extend FriendlyId | |
| friendly_id :friendly_id_source, :use => [:slugged] | |
| is_seo_meta if self.table_exists? | |
| default_scope :order => 'published_at DESC' | |
| belongs_to :author, :class_name => 'Refinery::User', :foreign_key => :user_id, :readonly => true | |
| has_many :comments, :dependent => :destroy, :foreign_key => :blog_post_id | |
| acts_as_taggable | |
| has_many :categorizations, :dependent => :destroy, :foreign_key => :blog_post_id | |
| has_many :categories, :through => :categorizations, :source => :blog_category | |
| acts_as_indexed :fields => [:title, :body] | |
| validates :title, :presence => true, :uniqueness => true | |
| validates :body, :presence => true | |
| validates :source_url, :url => { :if => 'Refinery::Blog.validate_source_url', | |
| :update => true, | |
| :allow_nil => true, | |
| :allow_blank => true, | |
| :verify => [:resolve_redirects]} | |
| attr_accessible :title, :body, :custom_teaser, :tag_list, :draft, :published_at, :custom_url, :author | |
| attr_accessible :browser_title, :meta_keywords, :meta_description, :user_id, :category_ids | |
| attr_accessible :source_url, :source_url_title | |
| self.per_page = Refinery::Blog.posts_per_page | |
| def next | |
| self.class.next(self) | |
| end | |
| def prev | |
| self.class.previous(self) | |
| end | |
| def live? | |
| !draft and published_at <= Time.now | |
| end | |
| def friendly_id_source | |
| custom_url.present? ? custom_url : title | |
| end | |
| def face_book_img | |
| frag = Nokogiri::HTML.fragment( self.custom_teaser ) | |
| first_img_src = frag.at_css('img')['src'] | |
| end | |
| class << self | |
| def by_archive(date) | |
| where(:published_at => date.beginning_of_month..date.end_of_month) | |
| end | |
| def by_year(date) | |
| where(:published_at => date.beginning_of_year..date.end_of_year) | |
| end | |
| def published_dates_older_than(date) | |
| published_before(date).pluck(:published_at) | |
| end | |
| def recent(count) | |
| live.limit(count) | |
| end | |
| def popular(count) | |
| unscoped.order("access_count DESC").limit(count) | |
| end | |
| def previous(item) | |
| published_before(item.published_at).first | |
| end | |
| def uncategorized | |
| live.includes(:categories).where(:categories => { Refinery::Categorization.table_name => { :blog_category_id => nil } }) | |
| end | |
| def next(current_record) | |
| where(["published_at > ? and draft = ?", current_record.published_at, false]).first | |
| end | |
| def published_before(date=Time.now) | |
| where("published_at < ? and draft = ?", date, false) | |
| end | |
| alias_method :live, :published_before | |
| def comments_allowed? | |
| Refinery::Setting.find_or_set(:comments_allowed, true, :scoping => 'blog') | |
| end | |
| def teasers_enabled? | |
| Refinery::Setting.find_or_set(:teasers_enabled, true, :scoping => 'blog') | |
| end | |
| def teaser_enabled_toggle! | |
| currently = Refinery::Setting.find_or_set(:teasers_enabled, true, :scoping => 'blog') | |
| Refinery::Setting.set(:teasers_enabled, :value => !currently, :scoping => 'blog') | |
| end | |
| end | |
| module ShareThis | |
| def self.enabled? | |
| Refinery::Blog.share_this_key != "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" | |
| end | |
| end | |
| end | |
| end | |
| end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment