[Drupal 7] Surcharger une surcharge

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

Je travail actuellement sur un site de E-Commerce. Les sociétés détentrices d'un compte possèdent le loisir de créer des comptes pour leur employé.

J'utilise pour ce faire le module Subuser dans sa version patchée (trouvé sur le forum officiel Drupal). Le module fonctionne correctement. La société a accès à une page d'inscription similaire à celle de l'administrateur sauf que j'aimerai que des données disparaissent comme la langue par défaut, si le compte est activé ou non.

Pour ce faire, j'ai crée un module Divers qui a pour but de surcharger la fonction de surcharge du formulaire d'inscription suivante :

<?php
function subuser_form_user_register_form_alter(&$form, &$form_state) {
  global
$user;
  
 
// If the user does not have access to the roles field then filter the roles
  // field based on subuser permissions and display if more then one left. If
  // the user has 'administer permissions' then the #access will be set to TRUE
  // and they will have access to all roles, otherwise if the user has access
  // to this page through subuser then only provide them with the roles they
  // are allowed based on subuser. All users will have at least one role, but
  // that role may be 'authenticated user' which is not included in #options.
 
if (!$form['account']['roles']['#access']) {
    foreach (
$form['account']['roles']['#options'] as $rid => $role) {
      if (!
user_access('create subuser ' . $rid)) {
        unset(
$form['account']['roles']['#options'][$rid]);
      }
      else{
       
$form['account']['roles']['#disabled'][$rid] = 1;
       
$form['account']['roles']['#default_value']= array(8);
      }
    }
   
$form['account']['roles']['#access'] = count($form['account']['roles']['#options']) > 0;
  }

 
$form['subuser_relation'] = array(
   
'#type' => 'checkbox',
   
'#title' => t('User relation'),
   
'#description' => t('Store a relationship that will allow for further management of the user.'),
   
'#default_value' => $user->uid && variable_get('subuser_relation', TRUE),
   
'#access' => $user->uid && user_access('override subuser relation'),
  );
 
 
$form['#submit'][] = 'subuser_user_register_form_submit';
 
}
?>

Voici ma fonction qui ne fonctionne pas :

<?php
function divers_form_subuser_form_user_register_form_alter(&$form, &$form_state) {
 
  unset(
$form['field_people_user_role']);
 
//$form['account']['roles']['#access'] = 0;
  //$form['locale']['#access'] = 0;
  //$form['account']['status']['#access'] = 0;
}
?>

Pouvez vous m'orienter dans la résolution de mon problème ?

Merci d'avance

Ivelfan

Forum : 
Version de Drupal :