diff --git a/app/views/account/_signup_form.rhtml b/app/views/account/_signup_form.rhtml index a572583..61af872 100644 --- a/app/views/account/_signup_form.rhtml +++ b/app/views/account/_signup_form.rhtml @@ -73,6 +73,8 @@ <%= render :partial => 'profile_editor/person_form', :locals => {:f => f} %> <% end %> + <%= @plugins.map(:signup_extra_contents).collect { |content| instance_eval(&content) }.join("") %> + <% unless @terms_of_use.blank? %>
<%= labelled_check_box(_('I accept the %s') % link_to(_('terms of use'), {:controller => 'home', :action => 'terms'}, :target => '_blank'), 'user[terms_accepted]') %> diff --git a/lib/noosfero/plugin.rb b/lib/noosfero/plugin.rb index e2c06e5..9479278 100644 --- a/lib/noosfero/plugin.rb +++ b/lib/noosfero/plugin.rb @@ -238,4 +238,10 @@ class Noosfero::Plugin def comment_saved(comment) end + # -> Adds fields to the signup form + # returns = lambda block that creates a html code + def signup_extra_contents + nil + end + end diff --git a/test/functional/account_controller_test.rb b/test/functional/account_controller_test.rb index 3480ef0..d59c3b0 100644 --- a/test/functional/account_controller_test.rb +++ b/test/functional/account_controller_test.rb @@ -737,6 +737,27 @@ class AccountControllerTest < ActionController::TestCase end end + should 'add extra content on signup forms from plugins' do + class Plugin1 < Noosfero::Plugin + def signup_extra_contents + lambda {"Plugin1 text"} + end + end + class Plugin2 < Noosfero::Plugin + def signup_extra_contents + lambda {"Plugin2 text"} + end + end + + Environment.default.enable_plugin(Plugin1.name) + Environment.default.enable_plugin(Plugin2.name) + + get :signup + + assert_tag :tag => 'strong', :content => 'Plugin1 text' + assert_tag :tag => 'strong', :content => 'Plugin2 text' + end + protected def new_user(options = {}, extra_options ={}) data = {:profile_data => person_data} -- libgit2 0.21.2