it-swarm-tr.com

Hook_form_alter () kullanarak giriş formunu nasıl değiştirebilirim?

Aşağıdaki kodu ile giriş formunu değiştirmeye çalışıyorum:

function git_form_alter(&$form, $form_state, $form_id) {
  $forms = array(
    'user_login_block' => 'user-login-form',
    'user_login' => 'user-login'
  );
  if (array_key_exists($form_id, $forms)) {
       //my altering code
    }
}

Bunu bazı JavaScript widget'larını tanıtan openidselector modülünden aldım ve az çok yapmaya çalıştığım şey bu.
Sitem/kullanıcı/giriş bölümüne gittiğimde, formu değiştirmek zorunda olduğum bloğu çağırmıyor. Sadece hook_form_alter() öğesini çağırmaz.

Farklı bir şey, kanca çağıran kayıt formunda veya başka bir formdadır.

Biri bana ne yapabileceğimi söyleyebilir mi? Openidselector'ın aynı yöntemi kullanması nasıl mümkündür, ancak bu modüldeki kod, kodumda çalışmazken çalışır?

7
PartySoft

Siteme/kullanıcı/girişe gittiğimde, formu değiştirmek zorunda kaldığım bloğu çağırmaz. Sadece hook_form_alter () öğesini çağırmaz.

example.com/user/login kullanıcı giriş bloğunu göstermez; giriş formunu gösterir. Kodunuzu daha basit hale getirsem bile kodunuz çalışmalıdır ("kullanıcı-giriş-formu" nu herhangi bir şekilde kullanmıyorsanız).

function git_form_alter(&$form, $form_state, $form_id) {
  if ($form_id == 'user_login_block' || $form_id == 'user_login') {
    // …
  }
}

Kodun neden çalışmadığına gelince, aşağıdaki nedenleri düşünebilirim:

  • Kanca adı modül için kullanılan kısa adla eşleşmiyor; örneğin, modülün kısa adı "git_form" dur ve git_form_alter()'in hook_form_alter() olması gerektiğinde git_form_form_alter() kullanıyorsunuz.
  • Etkinleştirilmiş bir modülü düzenliyorsunuz. Bu durumda, koda yeni bir kanca eklediğinizde, Drupal as Drupal) tarafından kullanılan önbellekleri de temizlemeniz gerekir. üçüncü taraf modülleri tarafından.
  • Modül etkin değil.
6
kiamlaluno

Kodunuz iyi ve iyi çalışıyor. En azından gösterdiğiniz bu kısım.

Sanırım onu ​​'git' modülüne koydunuz ve modül etkin mi? Akışı kesebilecek ve kancanızın çalışmasını durdurabilecek herhangi bir kod (orada veya başka bir yerde) var mı?

0
Maciej Zgadzaj