bcms_intensedebate 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.markdown +33 -0
- data/app/controllers/application_controller.rb +10 -0
- data/app/helpers/application_helper.rb +7 -0
- data/app/portlets/intense_debate_comments_portlet.rb +10 -0
- data/app/views/layouts/templates/default.html.erb +17 -0
- data/app/views/portlets/intense_debate_comments/_form.html.erb +2 -0
- data/app/views/portlets/intense_debate_comments/render.html.erb +1 -0
- data/config/initializers/intense_debate_settings.rb +1 -0
- data/lib/bcms_intensedebate.rb +3 -0
- data/lib/bcms_intensedebate/intense_debate_comments_portlet_helper.rb +59 -0
- data/lib/bcms_intensedebate/routes.rb +7 -0
- data/public/bcms/intensedebate/README +1 -0
- data/rails/init.rb +5 -0
- metadata +79 -0
data/README.markdown
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
# IntenseDebate plugin for BrowserCMS
|
2
|
+
|
3
|
+
Provides IntenseDebate commenting features for your BrowserCMS site. It gives you:
|
4
|
+
|
5
|
+
* A portlet to use on arbitrary pages,
|
6
|
+
* View helpers you can use to emit IntenseDebate API calls in a more precise fashion in your views or content blocks.
|
7
|
+
|
8
|
+
## Installation
|
9
|
+
|
10
|
+
1. Create an intensedebate.com site key for your specific URL,
|
11
|
+
2. Follow the generic module instructions here: http://guides.browsercms.org/installing_modules.html
|
12
|
+
3. Edit BROWSER_CMS_ROOT/config/initializer/intense_debate_settings.rb to include your site key. Restart your rails app.
|
13
|
+
4. There are no migrations to run.
|
14
|
+
|
15
|
+
## Notes
|
16
|
+
|
17
|
+
* Each IntenseDebateCommentsPortlet generates a unique idcomments_post_id value to be used by the IntenseDebate API. You may want to reuse or generate a new portlet for every page depending on your commenting goals.
|
18
|
+
* Look in lib/bcms_intensedebate/intense_debate_comments_portlet_helper.rb for full docs, or just generate the rdoc for this plugin.
|
19
|
+
|
20
|
+
## Uninstallation
|
21
|
+
|
22
|
+
Nothing special. Be sure to remove calls to id_comments and id_comments_link in your views.
|
23
|
+
|
24
|
+
## Author
|
25
|
+
|
26
|
+
Dan Collis-Puro
|
27
|
+
djcp@cyber.law.harvard.edu, dan@collispuro.com
|
28
|
+
Created for http://www.lawlab.org/
|
29
|
+
|
30
|
+
## License
|
31
|
+
|
32
|
+
LGPL
|
33
|
+
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# Filters added to this controller apply to all controllers in the application.
|
2
|
+
# Likewise, all the methods added will be available for all controllers.
|
3
|
+
|
4
|
+
class ApplicationController < ActionController::Base
|
5
|
+
helper :all # include all helpers, all the time
|
6
|
+
protect_from_forgery # See ActionController::RequestForgeryProtection for details
|
7
|
+
|
8
|
+
# Scrub sensitive parameters from your log
|
9
|
+
# filter_parameter_logging :password
|
10
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
5
|
+
<title><%= page_title %></title>
|
6
|
+
<%= yield :html_head %>
|
7
|
+
</head>
|
8
|
+
<body style="margin: 0; padding: 0; text-align: center;">
|
9
|
+
<%= cms_toolbar %>
|
10
|
+
<div id="wrapper" style="width: 700px; margin: 0 auto; text-align: left; padding: 30px">
|
11
|
+
Breadcrumbs: <%= render_breadcrumbs %>
|
12
|
+
Main Menu: <%= render_menu %>
|
13
|
+
<h1><%= page_title %></h1>
|
14
|
+
<%= container :main %>
|
15
|
+
</div>
|
16
|
+
</body>
|
17
|
+
</html>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= id_comments @portlet %>
|
@@ -0,0 +1 @@
|
|
1
|
+
ENV['INTENSEDEBATE_ACCOUNT'] = 'Your intense debate site account / key here'
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module IntenseDebateCommentsPortletHelper
|
2
|
+
|
3
|
+
# Add the full comments list to a page.
|
4
|
+
#
|
5
|
+
# *Options*
|
6
|
+
# * :url - The URL to the page. Optional.
|
7
|
+
# * :intensedebate_account - Probably already configured in the initializer. Optional.
|
8
|
+
# * :title - The title of the page. Optional.
|
9
|
+
#
|
10
|
+
def id_comments(obj, options = {})
|
11
|
+
options.symbolize_keys!
|
12
|
+
options.assert_valid_keys(:intensedebate_account, :url, :title)
|
13
|
+
options[:intensedebate_account] = acct_no unless options[:intensedebate_account]
|
14
|
+
raise ArgumentError, "You must specify an IntenseDebate account number", options if options[:intensedebate_account].nil?
|
15
|
+
raise "Intense Debate account no. doesn't look valid" unless options[:intensedebate_account] =~ /[\w]{32}/
|
16
|
+
|
17
|
+
%Q|
|
18
|
+
<script type="text/javascript">
|
19
|
+
var idcomments_acct = "#{ options[:intensedebate_account] }";
|
20
|
+
var idcomments_post_id = "#{obj.class.name}-#{ obj.id }";
|
21
|
+
var idcomments_post_url #{ "='%s'" % options[:url] unless options[:url].nil? };
|
22
|
+
var idcomments_post_title #{ "='%s'" % options[:title] unless options[:title].nil? };
|
23
|
+
</script>
|
24
|
+
<span id="IDCommentsPostTitle" style="display:none"></span>
|
25
|
+
<script type="text/javascript" src="http://www.intensedebate.com/js/genericCommentWrapperV2.js"></script>
|
26
|
+
|
|
27
|
+
end
|
28
|
+
|
29
|
+
# Add a comments counter and link to the item.
|
30
|
+
#
|
31
|
+
# *Options*
|
32
|
+
# * :intensedebate_account - Probably already configured in the initializer. Optional.
|
33
|
+
# * :url - The URL. Optional, but required if obj is not RESTful.
|
34
|
+
#
|
35
|
+
def id_comments_link(obj, options = {})
|
36
|
+
options.symbolize_keys!
|
37
|
+
options.assert_valid_keys(:intensedebate_account, :url)
|
38
|
+
options[:intensedebate_account] = acct_no unless options[:intensedebate_account]
|
39
|
+
raise ArgumentError, "You must specify an IntenseDebate account number", options if options[:intensedebate_account].nil?
|
40
|
+
raise "Intense Debate account no. doesn't look valid" unless options[:intensedebate_account] =~ /[\w]{32}/
|
41
|
+
|
42
|
+
%Q|
|
43
|
+
<script type="text/javascript">
|
44
|
+
var idcomments_acct = "#{ options[:intensedebate_account] }";
|
45
|
+
var idcomments_post_id = "#{ obj.id }";
|
46
|
+
var idcomments_post_url = "#{ options[:url] ? options[:url] : self.send( :"#{obj.class.to_s.underscore}_path", obj ) }";
|
47
|
+
</script>
|
48
|
+
<script type="text/javascript" src="http://www.intensedebate.com/js/genericLinkWrapperV2.js"></script>
|
49
|
+
|
|
50
|
+
end
|
51
|
+
|
52
|
+
protected
|
53
|
+
|
54
|
+
def acct_no
|
55
|
+
raise "Please set ENV['INTENSEDEBATE_ACCOUNT'] in config/initializers/intense_debate_settings.rb" unless defined?(ENV['INTENSEDEBATE_ACCOUNT'])
|
56
|
+
ENV['INTENSEDEBATE_ACCOUNT']
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
Use this directory to add public files that should copied from the gem into the project.
|
data/rails/init.rb
ADDED
@@ -0,0 +1,5 @@
|
|
1
|
+
gem_root = File.expand_path(File.join(File.dirname(__FILE__), ".."))
|
2
|
+
Cms.add_to_rails_paths gem_root
|
3
|
+
Cms.add_generator_paths gem_root, "db/migrate/[0-9]*_*.rb"
|
4
|
+
Cms.add_generator_paths gem_root, "public/bcms/intensedebate/**/*"
|
5
|
+
Cms.add_generator_paths gem_root, "config/initializers/intense_debate_settings.rb"
|
metadata
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: bcms_intensedebate
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 11
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 5
|
9
|
+
- 0
|
10
|
+
version: 0.5.0
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Dan Collis-Puro
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2010-12-22 00:00:00 -05:00
|
19
|
+
default_executable:
|
20
|
+
dependencies: []
|
21
|
+
|
22
|
+
description:
|
23
|
+
email: dan@collispuro.com
|
24
|
+
executables: []
|
25
|
+
|
26
|
+
extensions: []
|
27
|
+
|
28
|
+
extra_rdoc_files:
|
29
|
+
- README.markdown
|
30
|
+
files:
|
31
|
+
- app/portlets/intense_debate_comments_portlet.rb
|
32
|
+
- app/helpers/application_helper.rb
|
33
|
+
- app/views/portlets/intense_debate_comments/_form.html.erb
|
34
|
+
- app/views/portlets/intense_debate_comments/render.html.erb
|
35
|
+
- app/views/layouts/templates/default.html.erb
|
36
|
+
- app/controllers/application_controller.rb
|
37
|
+
- lib/bcms_intensedebate.rb
|
38
|
+
- lib/bcms_intensedebate/routes.rb
|
39
|
+
- lib/bcms_intensedebate/intense_debate_comments_portlet_helper.rb
|
40
|
+
- config/initializers/intense_debate_settings.rb
|
41
|
+
- rails/init.rb
|
42
|
+
- public/bcms/intensedebate/README
|
43
|
+
- README.markdown
|
44
|
+
has_rdoc: true
|
45
|
+
homepage: http://www.collispuro.com
|
46
|
+
licenses: []
|
47
|
+
|
48
|
+
post_install_message:
|
49
|
+
rdoc_options: []
|
50
|
+
|
51
|
+
require_paths:
|
52
|
+
- lib
|
53
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
hash: 3
|
59
|
+
segments:
|
60
|
+
- 0
|
61
|
+
version: "0"
|
62
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
hash: 3
|
68
|
+
segments:
|
69
|
+
- 0
|
70
|
+
version: "0"
|
71
|
+
requirements: []
|
72
|
+
|
73
|
+
rubyforge_project: bcms_intensedebate
|
74
|
+
rubygems_version: 1.3.7
|
75
|
+
signing_key:
|
76
|
+
specification_version: 3
|
77
|
+
summary: Integrate IntenseDebate commenting into your BrowserCMS site
|
78
|
+
test_files: []
|
79
|
+
|