forked from jonthewayne/altered_beast
-
Notifications
You must be signed in to change notification settings - Fork 4
/
application_helper.rb
68 lines (59 loc) · 2.58 KB
/
application_helper.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
require 'md5'
module ApplicationHelper
def feed_icon_tag(title, url)
(@feed_icons ||= []) << { :url => url, :title => title }
link_to image_tag('feed-icon.png', :size => '14x14', :alt => "Subscribe to #{title}"), url
end
def pagination(collection)
if collection.total_entries > 1
"<p class='pages'>" + I18n.t('txt.pages', :default => 'Pages') + ": <strong>" +
will_paginate(collection, :inner_window => 10, :next_label => I18n.t('txt.page_next', :default => 'next'), :prev_label => I18n.t('txt.page_prev', :default => 'previous')) +
"</strong></p>"
end
end
def next_page(collection)
unless collection.current_page == collection.total_entries or collection.total_entries == 0
"<p style='float:right;'>" + link_to(I18n.t('txt.next_page', :default => 'next page'), { :page => collection.current_page.next }.merge(params.reject{|k,v| k=="page"})) + "</p>"
end
end
def search_posts_title
returning(params[:q].blank? ? I18n.t('txt.recent_posts', :default => 'Recent Posts') : I18n.t('txt.searching_for', :default => 'Searching for') + " '#{h params[:q]}'") do |title|
title << " " + I18n.t('txt.by_user', :default => 'by {{user}}', :user => h(@user.display_name)) if @user
title << " " + I18n.t('txt.in_forum', :default => 'in {{forum}}', :forum => h(@forum.name)) if @forum
end
end
def topic_title_link(topic, options)
if topic.title =~ /^\[([^\]]{1,15})\]((\s+)\w+.*)/
"<span class='flag'>#{$1}</span>" +
link_to(h($2.strip), forum_topic_path(@forum, topic), options)
else
link_to(h(topic.title), forum_topic_path(@forum, topic), options)
end
end
def ajax_spinner_for(id, spinner="spinner.gif")
"<img src='/images/#{spinner}' style='display:none; vertical-align:middle;' id='#{id.to_s}_spinner'> "
end
def avatar_for(user, size=32)
image_tag "http://www.gravatar.com/avatar.php?gravatar_id=#{MD5.md5(user.email)}&rating=PG&size=#{size}", :size => "#{size}x#{size}", :class => 'photo'
end
def search_path(atom = false)
options = params[:q].blank? ? {} : {:q => params[:q]}
prefix =
if @topic
options.update :topic_id => @topic, :forum_id => @forum
:forum_topic
elsif @forum
options.update :forum_id => @forum
:forum
elsif @user
options.update :user_id => @user
:user
else
:search
end
atom ? send("#{prefix}_posts_path", options.update(:format => :atom)) : send("#{prefix}_posts_path", options)
end
def for_moderators_of(record, &block)
moderator_of?(record) && concat(capture(&block))
end
end