Domanda

Ho un problema veramente stupido che mi è costato un sacco di tempo già.

Ho creato un modello di contenuti con un URL in là. Quando guardo il codice HTML per esso, vedo un grasso grosso "maxlength = 256" nel tag form. Mi piacerebbe ampliare la lunghezza di questo campo, perché il mio cliente desidera inserire link veramente lunghi (più di 500 caratteri). Qualsiasi idea di come posso cambiarlo? Quando faccio una ricerca generica attraverso il codice vedo tante occorrenze di 256, ma la lunghezza potrebbe benissimo essere nel database da qualche parte. Naturalmente ho fatto la campo del database varchar più lungo (1024 sembrava poetica per me), di modo che è qualcosa che non si deve preoccupare.

Penso che sia stupido, ma il cliente ha sempre ragione, come sappiamo.

Sto usando Drupal 6.14.

È stato utile?

Soluzione 2

Yahoooooo! Ho riparato, grazie alle pagine utile Drupal: http://drupal.org/node/300705

Ho capito che potrei modificare la forma dopo che è stato generato completamente. La soluzione presentata da Erik è buono, ma non sembra funzionare per i campi CCK. Nel mio caso la soluzione di Erik avrebbe potuto funzionare se non fosse stato per questo passo generazione che deve accadere prima.

Il mio nuovo codice è il seguente:

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;
}

Ora, anch'io vedo che è brutto, soprattutto perché ci potrebbero essere altri elementi del modulo qui (solo incrementare da 0), ma funziona per il primo elemento! Yippeee!

Altri suggerimenti

Si desidera utilizzare un hook_form_alter () in il tuo templete.php o un modulo personalizzato.

Si sarà simile a questo:

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;
  }
}

Basta sostituire modulo con il nome di il tema (se in template.php) o sostituirlo con il nome di Il modulo personalizzato utilizzando il tuo.

Per trovare l'ID della forma, ispezionare l'elemento con Firebug. Lo stesso vale per l'id del campo URL.

Fatemi sapere se avete bisogno di più dettagli.

EDIT:. Come sottolineato, sembra che non è possibile chiamare i ganci dal livello tema

Il modo migliore per andare su questo è quello di creare un piccolo modulo personalizzato per il tuo sito. Si può chiamare qualcosa come SITENAME_customizations.

Tutto ciò che serve è un semplice file .info chiamato MODULENAME.info che sarà simile a questa:

name = SITE customizations
description = "Customizations"

Sarà inoltre necessario un file MODULENAME.module, che è dove si includere la chiamata hook_form_alter.

PS. Assicurarsi che non si chiude il tag php (?>) nel file .module.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top