drupal-7

Subscribe to RSS - drupal-7

Remover botão "Preview" dos formulários

Para remover o botão "Previem" de todos os formulários utilize:

function SEU_MODULO_form_alter(&$form, &$form_state, $form_id) { 
  unset($form['actions']['preview']);
}

Caso precise remover apenas de algum formulário em específico utilize:

function SEU_MODULO_form_alter(&$form, &$form_state, $form_id) { 
  if($form_id === 'ID_FORMULARIO') {
    unset($form['actions']['preview']);
  }
}

Comparando / validando urls com drupal_match_path

Essa função é bem interessante e podemos utilizá-la por exemplo, para validarmos a url atual do usuário e assim então executarmos alguma ação. Isso é utilizado pelo módulo Block do core do Drupal para disponibilizar o bloco em determinadas páginas do site.

A função drupal_match_path() efetua a validação através de um determinado um pattern de strings separadas por \n, \r or \r\n.

drupal_match_path($path, $patterns);

Parâmetros

  • $path - a url a ser comparada
  • $patterns - pattern de strings que serão usadas para efetuar a comparação separadas por \n, \r or \r\n

Retorno

1 se a url bater e 0 se não bater.


Duplicar um papel de usuário e todas as suas permissões

Imagine um cenário em que um site possua 30 tipos de papéis de usuários. Agora imagine cada um desses papéis contendo centenas de permissões. Então seu chefe virá pra você e diz que precisa de um novo papel, porém com uma ou duas permissões a menos que o papel XYZ.

Esse é um tipo de trabalho chato de se fazer, pois temos que criar o novo papel, depois ir setando na mão cada uma das permissões.


Criando um formulário personalizado

Uma das grande dificuldades de todo desenvolvedor que começa a trabalhar com Drupal, é saber como montar o seu próprio formulário, validar e enviar suas informações.

Nesse artigo vou ensinar como criar um formulário em Drupal 7 com os seguintes campos:

  • Nome
  • Data de nascimento
  • Senha
  • Confirmação de senha
  • Newsletter

Vamos criar um novo módulo chamado "custom" e vamos criar um item de menu utilizando o hook_menu().


Easy Clean, meu primeiro projeto oficial no drupal.org

É com muito orgulho que anúncio meu primeiro projeto publicado oficialmente no drupal.org: http://drupal.org/project/easy_clean

Easy Clean é um tema base perfeito para aqueles que gostam de começar a desenvolver o site à partir do "zero", tendo o controle total sobre cada elemento.


Imprimir uma views dentro de um node

Como a própria documentação diz, o snippet anterior existe para realizar tal tarefa de uma maneira simples e fácil:

This function is meant to be called from PHP snippets, should one wish to embed a view in a node or something. It's meant to provide the simplest solution and doesn't really offer a lot of options, but breaking the function apart is pretty easy, and this provides a worthwhile guide to doing so.

Primeiramente será necessário criar ou editar o template.php do seu tema. Vamos utilizar a função template_preprocess_node(), a qual é utilizada para processar as variáveis dos nodes antes de serem enviadas para o template.

O snippet a seguir verifica se o tipo de conteúdo é "artigos" e cria uma nova variável chamada $outros_artigos.

// Substitua SEUTEMA pelo nome do seu tema
function SEUTEMA_preprocess_node(&$vars) {
  if($vars['type'] == 'artigos') {
    $vars['outros_artigos'] = views_embed_view('artigos', 'block_1');
  }
}

Pegar o resultado de uma views dinamicamente

Com o snippet a seguir é possível pegar o resultado de uma views dinamicamente e manipulá-lo de acordo com sua necessidade.

O primeiro parâmentro a ser informado é o nome da view e o segundo o ID do display. No meu exemplo utilizo uma view chamada "artigos" e o ID do meu display é block_1.

$result = views_get_view_result('artigos', 'block_1');
// dsm($result);

Caso seja necessário também é possível enviar outros argumentos para a view:

$result = views_get_view_result('artigos', 'block_1', arg(1), arg(2));
// dsm($result);

Caso tenha o módulo Devel instalado, utilize a função dsm($result); para ver o resultado como abaixo:

Pegar o resultado de uma views dinamicamente


Páginas