Pergunta

Eu tenho um problema realmente bobo que me custou uma carga de tempo já.

Eu criei um modelo de conteúdo com uma URL lá. Quando eu olhar para o código HTML para ele, vejo um grande "maxlength = 256" gordura na tag form. Eu gostaria de expandir o comprimento deste campo, porque o meu cliente deseja entrar realmente longos links (mais de 500 caracteres). Qualquer idéia de como posso mudar isso? Quando eu faço uma busca genérica através do código Vejo tantas ocorrências de 256, mas o comprimento poderia muito bem estar no lugar do banco de dados. Tenho, naturalmente, fez o campo de banco de dados um varchar mais tempo (1024 soou poético para mim), então isso é algo que não tem que se preocupar.

Eu acho que é bobagem, mas o cliente está sempre certo, como sabemos.

Eu estou usando Drupal 6.14.

Foi útil?

Solução 2

Yahoooooo! Eu fixo-lo, graças às páginas Drupal votos: http://drupal.org/node/300705

Eu descobri que eu poderia editar o formulário depois de ter sido gerado por completo. A solução apresentada por Erik é bom, mas não parece trabalho para campos CCK. No meu caso a solução de Erik poderia ter funcionado se não fosse por esta etapa geração que precisa acontecer primeiro.

O meu novo código é a seguinte:

function longerfield_form_alter(&$form, &$form_state, $form_id) {
      $form['#after_build'][] = 'longerfield_after_build';
    }

function longerfield_after_build($form, &$form_state) {
  // This is for a node reference field:
  $form['field_page_boeken'][0]['data']['url']['#maxlength'] = 1024;
  return $form;
}

Agora, eu também ver que ele é feio, especialmente porque pode haver outros elementos de formulário aqui (apenas incrementam a partir de 0), mas funciona para o primeiro elemento! Yippeee!

Outras dicas

Você quer usar um hook_form_alter () em seu templete.php ou um módulo personalizado.

Ele será parecido com isto:

MODULE_form_alter(&$form, &$form_state, $form_id) {
  if($form_id = 'name_of_form_you_want_to_alter') {
    form['name_of_url_field']['#maxlength'] = 500;
  }
}

Apenas substitua o módulo com o nome de seu tema (se em template.php) ou substituí-lo com o nome o módulo personalizado a sua utilização.

Para encontrar o ID do formulário, inspecionar o elemento com o Firebug. O mesmo vale para o id do campo URL.

Deixe-me saber se você precisa de mais detalhes.

EDIT:. Como apontado, parece que você não pode chamar ganchos a partir do nível tema

A melhor maneira de fazer isso é criar um pequeno módulo personalizado para você site. Você pode chamá-lo de algo como SITENAME_customizations.

Tudo que você precisa é um simples .info arquivo chamado MODULENAME.info que será algo parecido com isto:

name = SITE customizations
description = "Customizations"

Você também vai precisar de um arquivo MODULENAME.module, que é onde você vai incluir a sua chamada hook_form_alter.

PS. Certifique-se de que você não feche o seu tag php (?>) em seu arquivo .module.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top