Drupal uzun Form Alanları

2 Cevap php

Zaten bana zaman bir yük mal oldu gerçekten saçma bir sorun var.

Ben orada bir URL ile bir içerik şablonu oluşturduk. Bunun için HTML kodu baktığımızda, ben form etiketi büyük bir yağ "maxlength = 256" bkz. Ben müşteri gerçekten uzun bağlantılar (500 karakter) girmek istiyor çünkü, bu alanın uzunluğunu genişletmek istiyorum. Bunu değiştirmek nasıl herhangi bir fikir? Ben kodu aracılığıyla genel bir arama yaptığınızda ben 256 çok tekrarlarını görmek, ancak uzunluk gibi iyi bir yerde veritabanında olabilir. Ben tabii ki daha uzun bir varchar (1024 benim için şiirsel kulağa) veritabanı alanını yaptık, böylece ben endişelenmenize gerek yok bir şey.

Ben bu saçma olduğunu düşünüyorum, ama bildiğimiz gibi müşteri her zaman haklıdır.

Ben Drupal 6.14 kullanıyorum.

2 Cevap

Yahoooooo! I fixed it, thanks to the helpful Drupal pages: http://drupal.org/node/300705

Ben tamamen oluşturulduktan sonra formu düzenlemek olabilir anladım. Erik tarafından sunulan çözüm iyidir, ama CCK alanlarına çalışmak için görünmüyor. Ilk gerçekleşmesi gereken bu nesil adım için olmasa da benim durumumda Erik'in çözüm çalışmış olabilir.

Aşağıdaki gibi benim yeni kodu:

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

Şimdi, ben de burada diğer form elemanları (sadece 0'dan artırmak) olabilir, çünkü özellikle o çirkin olduğunu görmek, ama o ilk elemanı için çalışıyor! Yippeee!

Sen your templete.php or özel bir modülde bir hook_form_alter () kullanmak istiyorum.

Bu gibi bir şey olacaktır:

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

Sadece adı ile MODÜLÜ değiştirin your theme (if in template.php) or replace it with the name of custom kullanarak modül.

Formun id bulmak için, kundakçı ile elemanı incelemek. Aynı url alanın kimliği için de geçerli.

Daha fazla detay ihtiyacınız varsa bana bildirin.

EDIT: As pointed out, it looks like you can't call hooks from the theme level.

Bu konuda gitmek için en iyi yolu, size site için küçük özel bir modül oluşturmak için olduğunu. Sen SITENAME_customizations gibi bir şey diyebilirsin.

. Eğer ihtiyacınız olan bu gibi bir şey olacak MODULENAME.info adında basit bir bilgi dosyası:

name = SITE customizations
description = "Customizations"

Ayrıca size hook_form_alter çağrı içerecek nerede olduğu, bir MODULENAME.module dosyası gerekir.

PS. Eğer. Modül dosyası (?>) php etiketi yakın olmadığından emin olun.