Pesquisa
Itens ativos
Posts mais lidos hoje
Login do usuário
Assine o RSS do Drupal-BR
Formulário Customizado
Olá pessoal,
Estou desenvolvendo um formulário customizado através de um módulo que estou criando.
Dentro do meu arquivo [nome_modulo].modulo, eu tenho a seguinte função:
function [nome_modulo]_form() {
Até aí tudo ok....
O problema foi na hora que criei um objeto do tipo button....
$form['identificacao_reuniao']['objetivo_mais'] = array(
'#type' => 'button',
'#value' => t('+'),
'#attributes' => array('onclick' => 'addObjetivo()'),
);
Quando o drupal exibe o formulário, o objeto vem como tipo submit....
eu li em um fórum do drupal.org que esse módulo não dá suporte para o tipo button.... no mesmo fórum outra pessoa falou que uma vez tinha baixado um patch para resolver este problema.
Alguém tem alguma informação a esse respeito aqui?
Desde já agradeço,
Rodrigo Maeda
- Se logue ou se registre para poder enviar comentários
- 402 leituras




Esse é um problema muito chato mesmo... mas é mole de resolver... o mais engraçado é que a formAPI trata isso com o #submit => true/false mas a funcao theme_button nao trata... :/
a solução é a seguinte... coloque esta funcao no template.php do seu tema.
// Make sure not to overwrite classes.
if (isset($element['#attributes']['class'])) {
$element['#attributes']['class'] = 'form-'. $element['#button_type'] .' '. $element['#attributes']['class'];
}
else {
$element['#attributes']['class'] = 'form-'. $element['#button_type'];
}
// Alteracao --------
$type = ($element['#submit']) ? 'submit' : 'button';
return '<input type="'. $type .'" '. (empty($element['#name']) ? '' : 'name="'. $element['#name'] .'" ') .'id="'. $element['#id'] .'" value="'. check_plain($element['#value']) .'" '. drupal_attributes($element['#attributes']) ." />\n";
}
--
Pedro Faria de Miranda Pinto
http://www.eusouopedro.com
http://www.phpavancado.net
Bate Papo sobre Drupal? irc://irc.freenode.net/drupal-br
Olá pedro,
Aproveitando o embalo da criação de formulários customizados, estou com a seguinte dúvida....
Como eu faço para definir a variável $op? Ela tem que ser uma variável enviada pelo método POST?
Desde já agradeço,
Rodrigo Maeda
Olá Pedro,
Sei que ja faz um tempo mas vai aqui uma observação importante....
Após inserir a função que você me passou acima, o sistema começou a ter problemas com os formulários de determinados módulos.....
Por exemplo o formulário de busca....mas que problema? o botão que antes era do tipo submit virou tipo button....consequentemente você não consegue mais submeter os formulários.....
Depois de pesquisar um pouco o código do drupal vi que na classe system.module função system_elements ele declara os tipos de elementos do sistema, e no tipo submit incluí o parâmetro '#submit' => TRUE.
Após fazer isso o problema foi resolvido. Mas não sei se esta é a melhor forma de resolvê-lo...
[]'s
Rodrigo Maeda