Frage

Ich habe ein wirklich dummes Problem, dass bereits eine Menge Zeit kostet mich hat.

Ich habe eine Inhaltsvorlage mit einer URL in dort erstellt. Als ich es in dem HTML-Code aussehen, sehe ich eine große, fette „maxlength = 256“ in dem Formular-Tag. Ich möchte die Länge dieses Feldes erweitern, weil mein Kunde wirklich lange Links (über 500 Zeichen) eingeben möchte. Jede Idee, wie kann ich es ändern? Wenn ich eine generische Suche durch den Code sehe ich so viele Vorkommen von 256, aber die Länge könnte auch nur in der Datenbank irgendwo sein. Ich habe natürlich das Datenbankfeld eine längere varchar (1024 klang poetisch mir) aus, so dass das etwas, was ich nicht zu befürchten.

Ich denke, es ist albern, aber der Kunde hat immer recht, wie wir wissen.

Ich verwende Drupal 6.14.

War es hilfreich?

Lösung 2

Yahoooooo! Ich reparierte es, dank der hilfreich Drupal Seiten: http://drupal.org/node/300705

habe ich herausgefunden, ich könnte die Form bearbeiten, nachdem es vollständig erzeugt wurde. Die Lösung von Erik präsentiert ist gut, aber scheint nicht für CCK Feldern zu arbeiten. In meinem Fall konnte Erik Lösung gearbeitet hat, wenn es nicht für diese Generation Schritt ist, dass der Bedarf zuerst geschehen.

Mein neuer Code ist wie folgt:

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

Nun, ich sehe auch, dass es hässlich ist, vor allem, weil es andere Elemente bilden hier sein könnte (nur 0 erhöhen), aber es funktioniert für das erste Element! Yippeee!

Andere Tipps

Sie möchten einen hook_form_alter () verwenden, in Ihr templete.php oder ein benutzerdefiniertes Modul.

Es wird wie folgt aussehen:

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

Ersetzen Sie einfach MODUL mit dem Namen Ihr Thema (wenn in template.php) oder ersetzen Sie es mit dem Namen das benutzerdefinierte Modul Ihrer Verwendung.

Um die ID des Formulars zu finden, überprüfen Sie das Element mit Firebug. Das Gleiche gilt für die ID des URL-Feld.

Lassen Sie mich wissen, wenn Sie mehr Details benötigen.

EDIT:. Wie erwähnt, sieht es aus wie Sie nicht Haken aus dem Thema Ebene aufrufen

Der beste Weg, um dies zu realisieren ist ein kleines benutzerdefiniertes Modul für Sie vor Ort zu erstellen. Sie können es nennen so etwas wie SITENAME_customizations.

Alles, was Sie brauchen, ist eine einfache .info Datei MODULENAME.info benannt, die etwa wie folgt aussehen:

name = SITE customizations
description = "Customizations"

Sie haben auch eine MODULENAME.module Datei benötigen, das ist, wo Sie Ihre hook_form_alter Anruf enthalten wird.

PS. Stellen Sie sicher, dass Sie nicht schließen Sie Ihren PHP-Tag (?>) in Ihrer .module Datei.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top