Facebook Twitter Gplus LinkedIn E-mail RSS
Home Drupal Drupal 7- Removendo a obrigatoriedade de campos
formats

Drupal 7- Removendo a obrigatoriedade de campos

Publicado em 24/03/2015 por em Drupal

removendo-obrigatoriedade-de-campos

Quando precisamos deixar o campo obrigatório apenas para visitantes do site, e os administradores não tem essa obrigatoriedade temos que seguir alguns passos:

Crie um módulo, nesse módulo vamos utilizar o hook_form_alter.

Crie uma função para verificar o papel do usuário:

  1. function _papeis_permitidos() {
  2.   global $user;
  3.  
  4. // dentro desse array você defina quem terá a obrigatoriedade do campo removida
  5.   $permitivos = array('secretaria','administrador', 'administrator');
  6.  
  7.   for($x=0;$x<count($permitivos);$x++){
  8.     if (in_array($permitivos[$x], array_values($user->roles))) {
  9.       return TRUE;
  10.     }
  11.   }
  12. }

 

Agora vamos a função do hook_form_alter:

  1. function meumodulo_form_alter(&$form, &$form_state, $form_id) {
  2.  
  3.   // Coloque o ID de seu form em um IF
  4.   if($form_id == 'receba_a_revista_entityform_edit_form'){
  5.     // Verifique se o usuario atual tem o papel permitido
  6.     if(_papeis_permitidos() == TRUE){
  7.       // Adicione o field que você deseja remover a obrigatoriedade setando esse field como #required = FALSE
  8.       $form['field_rr_email']['und'][0]['email']['#required'] = FALSE;
  9.     }
  10.   }
  11.  
  12. }

No meu exemplo acima, o tipo de meu form é um EntitForm, porém você pode utilizar a mesma maneira para qualquer tipo de form que você tiver no drupal.

Mais informações:

  1. Documentação: https://api.drupal.org/api/drupal/developer!topics!forms_api_reference.html/7#required
  2. Fonte: Removing required attribute on user entity fields not working
 

Se você curtir o post, compartilha ou curte ai no face, se você teve dificuldade ou conseguiu usar, deixe seu comentário. Seu feeedback é de extrema importância.

 
 Compartilahr no Facebook Compartilhar no Twitter Comaprtilhar no Reddit Compartilhar no LinkedIn

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

© Adonai Diófanes | Wordpress | Drupal | Rio de Janeiro