From 4756fdaf77acb6e689b26ea42144215b7c5bb87f Mon Sep 17 00:00:00 2001 From: Bachir Soussi Chiadmi Date: Thu, 10 Jul 2014 19:47:43 +0200 Subject: [PATCH] add permission to access to payment prefile webform 11186 with recorded user profile infos --- materio_user.module | 119 +++++++++++++++++++++++++++++++------------- 1 file changed, 84 insertions(+), 35 deletions(-) diff --git a/materio_user.module b/materio_user.module index 82a6e260..2265b36a 100755 --- a/materio_user.module +++ b/materio_user.module @@ -18,6 +18,10 @@ function materio_user_permission() { 'title' => t('view own user profile'), 'description' => t('view own user profile'), ), + 'access to online payment' => array( + 'title' => t('access to online payment'), + 'description' => t('Access to online payment'), + ), ); } @@ -168,8 +172,8 @@ function materio_user_form_alter(&$form, &$form_state, $form_id) { // ); // $form['#submit'][] = "materio_user_user_register_form_submit"; - } + if($form_id == "user_login" ){ // dsm($form); @@ -179,25 +183,22 @@ function materio_user_form_alter(&$form, &$form_state, $form_id) { // if( $_GET['q'] == 'node/11187' ){ // $form['#submit'][] = "materio_user_user_login_form_submit"; // } - } # https://drupal.org/comment/6293810#comment-6293810 if( $form_id == "webform_client_form_11186" ){ // dsm($form, '$form'); - $form['#validate'][] = "materio_user_webform_client_11186_validate"; - $form['#submit'][] = "materio_user_webform_client_11186_submit"; + materio_user_webform_client_11186_form_alter($form, $form_state, $form_id); } + if( $form_id == "uc_cart_checkout_form" ){ + materio_user_uc_cart_checkout_form_alter($form, $form_state, $form_id); + } // if( $form_id == "user_profile_form" ){ // //dsm($form, '$form'); // $form['account']['pass']['#type'] = "new_password_confirm"; // } - - if( $form_id == "uc_cart_checkout_form" ){ - materio_user_uc_cart_checkout_form_alter($form, $form_state, $form_id); - } } // function materio_user_user_register_form_submit($form, &$form_state){ @@ -231,6 +232,45 @@ function materio_user_form_alter(&$form, &$form_state, $form_id) { // ); // } + +/** +* subscription webform (nid : 11186) +*/ + +# prefill the webform form with user profil values +# add validate and submit functions +function materio_user_webform_client_11186_form_alter(&$form, &$form_state, $form_id){ + // dsm($form_id, 'form_id'); + // dsm($form, "form"); + // dsm($form_state, "form_state"); + + $form['#validate'][] = "materio_user_webform_client_11186_validate"; + $form['#submit'][] = "materio_user_webform_client_11186_submit"; + + global $user; + // dsm($user, 'user'); + + $member_profile = profile2_load_by_user($user, 'adherent'); + // dsm($member_profile, "member_profile"); + + $columnright = &$form['submitted']['column_right']; + $columnright['me']['firstname']['#default_value'] = $member_profile->field_first_name['und'][0]['value']; + $columnright['me']['name']['#default_value'] = $member_profile->field_name['und'][0]['value']; + $columnright['company']['administrative_e_mail']['#default_value'] = $member_profile->field_administrative_email['und'][0]['value']; + $columnright['company']['s']['company']['#default_value'] = $member_profile->field_organization['und'][0]['value']; + $columnright['company']['s']['activity_sector']['#default_value'] = $member_profile->field_activity_sector['und'][0]['value']; + $columnright['company']['d']['vat_number_intra_ce']['#default_value'] = $member_profile->field_vat_number_intra_ce['und'][0]['value']; + $columnright['company']['d']['website']['#default_value'] = $member_profile->field_user_website['und'][0]['url']; + + $address = $member_profile->field_adresse['und'][0]; + $formaddress = &$columnright['company']['location']['#address']; + $formaddress['country'] = $address['country']; + $formaddress['thoroughfare'] = $address['thoroughfare']; + $formaddress['premise'] = $address['premise']; + $formaddress['postal_code'] = $address['postal_code']; + $formaddress['locality'] = $address['locality']; +} + function materio_user_webform_client_11186_validate($form, &$form_state){ // dsm($form, 'form'); // dsm($form_state, 'form_state'); @@ -272,14 +312,14 @@ function materio_user_webform_client_11186_validate($form, &$form_state){ } } -/** -* subscription webform (nid : 11186) -* -* retreive from the web form info, record them into user profil -*/ -function materio_user_webform_client_11186_submit($form, &$form_state){ +#retreive from the web form info, record them into user profil +function materio_user_webform_client_11186_submit(&$form, &$form_state){ // dsm($form, 'form'); // dsm($form_state, 'form_state'); + + $node = &$form['#node']; + // dsm($node, '$node'); + $values = $form_state['values']['submitted_tree']; // dsm($values, '$values'); @@ -287,27 +327,39 @@ function materio_user_webform_client_11186_submit($form, &$form_state){ materio_user_flatenize_form_values($values, $flat_values); // dsm($flat_values, 'flat_values'); - # redirect membership form to checkout with good option selected - $subscription_level = $flat_values['membership_options']; - // http://www.ubercart.org/node/1427 - $form_state['redirect'] = array( - 'cart/add/e-p11849_q1_a1o'.$subscription_level.'-membershipform', - array( - 'query' => array( - 'destination' => 'cart/checkout', - ), - // 'fragment' => 'baz', - ), - ); - # records values in member profile materio_user_record_member_profile($flat_values); - # create collaborators users account incase of membership option is 3 - # NO wait for checkout for that - //materio_user_create_collaborators_users(); + # redirect membership form to checkout with good option selected + if(user_access('access to online payment')){ + + // forcer le vidage du panier + uc_cart_empty(uc_cart_get_id()); + + // fill the cart and redirect to checkout + // cf : http://www.ubercart.org/node/1427 + $subscription_level = $flat_values['membership_options']; + $form_state['redirect'] = array( + 'cart/add/e-p11849_q1_a1o'.$subscription_level.'-membershipform', + array( + 'query' => array( + 'destination' => 'cart/checkout', + ), + // 'fragment' => 'baz', + ), + ); + + // TODO effacer le message de soumissions du formulaire -> pas moyen de overwriter le message de webform depuis ici, dommage + // $node->webform['confirmation'] = ''; + + # create collaborators users account incase of membership option is 3 + # NO wait for checkout for that + //materio_user_create_collaborators_users(); + + // enregistrer le type d'adonnement chez les user + + } - // enregistrer le type d'adonnement chez les user } function materio_user_record_member_profile($values) { @@ -423,7 +475,7 @@ function materio_user_uc_cart_checkout_form_alter(&$form, &$form_state, $form_id * Implements hook_uc_order(); */ function materio_user_order($op, $order, $arg2) { - dsm($op, "matyerio_user_uc_order | op"); + // dsm($op, "matyerio_user_uc_order | op"); // dsm($order, "order"); // dsm($arg2, "arg2"); @@ -434,7 +486,6 @@ function materio_user_order($op, $order, $arg2) { } } - # not used yet function materio_user_create_collaborators_users(){ @@ -497,7 +548,6 @@ function materio_user_help($path, $arg) { } } - /** * Implements hook_block_view_alter(). */ @@ -509,7 +559,6 @@ function materio_user_block_view_alter(&$data, $block) { } } - /** * Define constants */