| ... | ... |
@@ -85,49 +85,6 @@ module Helpers |
| 85 | 85 |
content_tag(:a, name, html_options.merge(:href => href, :onclick => onclick)) |
| 86 | 86 |
end |
| 87 | 87 |
|
| 88 |
- def mail_to(email_address, name = nil, html_options = {})
|
|
| 89 |
- html_options = html_options.stringify_keys |
|
| 90 |
- encode = html_options.delete("encode").to_s
|
|
| 91 |
- cc, bcc, subject, body = html_options.delete("cc"), html_options.delete("bcc"), html_options.delete("subject"), html_options.delete("body")
|
|
| 92 |
- |
|
| 93 |
- string = '' |
|
| 94 |
- extras = '' |
|
| 95 |
- extras << "cc=#{CGI.escape(cc).gsub("+", "%20")}&" unless cc.nil?
|
|
| 96 |
- extras << "bcc=#{CGI.escape(bcc).gsub("+", "%20")}&" unless bcc.nil?
|
|
| 97 |
- extras << "body=#{CGI.escape(body).gsub("+", "%20")}&" unless body.nil?
|
|
| 98 |
- extras << "subject=#{CGI.escape(subject).gsub("+", "%20")}&" unless subject.nil?
|
|
| 99 |
- extras = "?" << extras.gsub!(/&?$/,"") unless extras.empty? |
|
| 100 |
- |
|
| 101 |
- email_address = email_address.to_s |
|
| 102 |
- |
|
| 103 |
- email_address_obfuscated = email_address.dup |
|
| 104 |
- email_address_obfuscated.gsub!(/@/, html_options.delete("replace_at")) if html_options.has_key?("replace_at")
|
|
| 105 |
- email_address_obfuscated.gsub!(/\./, html_options.delete("replace_dot")) if html_options.has_key?("replace_dot")
|
|
| 106 |
- |
|
| 107 |
- if encode == "javascript" |
|
| 108 |
- "document.write('#{content_tag("a", name || email_address_obfuscated, html_options.merge({ "href" => "mailto:"+email_address+extras }))}');".each_byte do |c|
|
|
| 109 |
- string << sprintf("%%%x", c)
|
|
| 110 |
- end |
|
| 111 |
- "<script type=\"#{Mime::JS}\">eval(decodeURIComponent('#{string}'))</script>"
|
|
| 112 |
- elsif encode == "hex" |
|
| 113 |
- email_address_encoded = '' |
|
| 114 |
- email_address_obfuscated.each_byte do |c| |
|
| 115 |
- email_address_encoded << sprintf("&#%d;", c)
|
|
| 116 |
- end |
|
| 117 |
- |
|
| 118 |
- protocol = 'mailto:' |
|
| 119 |
- protocol.each_byte { |c| string << sprintf("&#%d;", c) }
|
|
| 120 |
- |
|
| 121 |
- email_address.each_byte do |c| |
|
| 122 |
- char = c.chr |
|
| 123 |
- string << (char =~ /\w/ ? sprintf("%%%x", c) : char)
|
|
| 124 |
- end |
|
| 125 |
- content_tag "a", name || email_address_encoded, html_options.merge({ "href" => "#{string}#{extras}" })
|
|
| 126 |
- else |
|
| 127 |
- content_tag "a", name || email_address_obfuscated, html_options.merge({ "href" => "mailto:#{email_address}#{extras}" })
|
|
| 128 |
- end |
|
| 129 |
- end |
|
| 130 |
- |
|
| 131 | 88 |
private |
| 132 | 89 |
|
| 133 | 90 |
def cdata_section(content) |
| ... | ... |
@@ -156,15 +113,6 @@ module Helpers |
| 156 | 156 |
|
| 157 | 157 |
# My added helpers |
| 158 | 158 |
|
| 159 |
- def to_html_email(address) |
|
| 160 |
- email = string_to_html(address) |
|
| 161 |
- "<a href=\"#{string_to_html('mailto:')}#{email}\">#{email}</a>"
|
|
| 162 |
- end |
|
| 163 |
- |
|
| 164 |
- def string_to_html(s) |
|
| 165 |
- s.strip.unpack("C*").map{|ch| "&#" + ch.to_s + ";" }.to_s
|
|
| 166 |
- end |
|
| 167 |
- |
|
| 168 | 159 |
def show_part (file) |
| 169 | 160 |
data = '' |
| 170 | 161 |
f = File.open(Dir.pwd+"/source/"+file) |