Pregunta

Tengo un problema realmente tonto que me ha costado un montón de tiempo ya.

He creado una plantilla de contenido con una URL en ese país. Cuando miro el código HTML para ello, veo un grande y gordo "maxlength = 256" en la etiqueta de formulario. Me gustaría ampliar la longitud de este campo, porque mi cliente desea introducir enlaces muy largos (más de 500 caracteres). Cualquier idea de cómo puedo cambiarlo? Cuando hago una búsqueda genérica a través del código veo tantas ocurrencias de 256, pero la longitud daría igual estar en la base de datos en alguna parte. Tengo, por supuesto, hizo que el campo de la base de datos ya un varchar (1024 sonaba poética para mí), así que eso es algo que no tiene que preocuparse.

Creo que es una tontería, pero el cliente siempre tiene la razón, tal como la conocemos.

Estoy utilizando Drupal 6.14.

¿Fue útil?

Solución 2

Yahoooooo! Me fijo que, gracias a las páginas de Drupal votos: http://drupal.org/node/300705

Me di cuenta de que podía modificar la forma después de que ha sido generado por completo. La solución presentada por Erik es buena, pero no parece funcionar para los campos CCK. En mi caso la solución de Erik podría haber funcionado si no fuera por este paso generación que tiene que ocurrir primero.

Mi nuevo código es el siguiente:

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

Ahora, yo también veo que es fea, sobre todo porque puede haber otros elementos de formulario (aquí sólo se incrementa desde 0), pero funciona para el primer elemento! Yippeee!

Otros consejos

Se desea utilizar un hook_form_alter () en su templete.php o un módulo personalizado.

Se verá algo como esto:

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

Sólo reemplace el módulo con el nombre de su tema (si está en template.php) o sustituirla por el nombre de módulo de la medida de su uso.

Para encontrar el ID de la forma, inspeccione el elemento con Firebug. Lo mismo va para el id del campo URL.

Quiero saber si necesita más detalles.

EDIT:. Como se ha señalado, parece que no se puede llamar desde el nivel ganchos tema

La mejor manera de hacer esto es crear un módulo personalizado pequeño para su sitio. Se le puede llamar algo así como SITENAME_customizations.

Todo lo que necesita es un archivo .info simple denominada MODULENAME.info que se verá algo como esto:

name = SITE customizations
description = "Customizations"

También se necesita un archivo MODULENAME.module, que es donde se incluya su llamada hook_form_alter.

PS. Asegúrese de que usted no cierra su etiqueta de php (?>) en el archivo .module.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top