Drupal 8/9 için Webform Modülüne Derin Bir Bakış

Yayınlanan: 2021-10-12

Webform modülü, Drupal için en güçlü ve esnek form oluşturucu ve gönderme yöneticisidir. Site oluşturuculara anında karmaşık formlar oluşturma gücü verir. Belirli bir düzeyde varsayılan ayarlarla birlikte gelir ve ayrıca gereksinimlerinize göre özelleştirmenize izin verir.

Bu harika bloga göz atın - Drupal 8 Webform Modülü - Drupal 8/9 sitenizdeki Webform modülünü kullanmaya başlamanıza yardımcı olacak Kısa Bir Eğitim. Bu, temel bilgileri kolayca anlamanıza yardımcı olacaktır.

Webform modülü birçok ilginç özellikle birlikte gelir ve burada birkaç tanesinden bahsetmek istiyorum.

Web Form Modülü

Web Formu Özellikleri

1. Biçimi ve öğeleri değiştirme

Herhangi bir form, eleman ve ilgili ayarlar, ilgili kancaları kullanılarak değiştirilebilir. Aşağıda kullanılabilecek birkaç kanca bulunmaktadır ve daha fazlasını webform.api.php dosyasında bulabilirsiniz:

  • Form kancaları

◦ hook_webform_submission_form_alter()
◦ Web formu gönderme formu oluşturulmadan önce değişiklikler yapın.

  • Eleman kancaları

◦ hook_webform_element_alter()
◦ Web formu öğelerini değiştirin.

  • Seçenek kancaları

◦ hook_webform_options_alter()
◦ Web formu seçeneklerini değiştirin.

  • İşleyici kancaları

◦ hook_webform_handler_invoke_alter()
◦ Bir yöntem çağrıldığında bir web formu işleyicisi üzerinde işlem yapın.

  • daha fazla kanca…

◦ hook_webform_access_rules_alter() vb.
◦ Web formu düzeyine göre yönetilmesi gereken erişim kuralları listesini değiştirin.

2. YAML Kaynağı

Webform modülü, insanların YAML biçimlendirmesi yazarak formlar oluşturmasına olanak tanıyan bir YAML Form modülü olarak başladı. Bir noktada, YAML Form modülü kullanıcı arayüzüne sahip olmaya başladı ve Drupal 8 için Webform modülü oldu.

  • YAML, bir web formunun öğelerini oluşturmak ve toplu olarak düzenlemek için basit ve öğrenmesi kolay bir biçimlendirme dili sağlar.
  • (Görüntüle) Kaynak sayfası, geliştiricilerin bir web formunun oluşturma dizisini YAML işaretlemesini kullanarak düzenlemesine olanak tanır. Geliştiriciler, bir web formunun etiketlerini hızlı bir şekilde değiştirmek, birden çok öğeyi kesip yapıştırmak, öğeleri yeniden sıralamak ve ayrıca öğelere özel özellikler ve işaretleme eklemek için web formlarını elle kodlamak için (Görüntüle) Kaynak sayfasını kullanabilir.
  • İşte bir İletişim formu örneği ve buna karşılık gelen YAML kaynak kodu:

Sürükle ve Bırak UI ile İletişim Formu

Sürükle ve bırak kullanıcı arayüzüne sahip bir İletişim formu

YAML Kaynak Kodu

İletişim formunun YAML kaynak kodu

3. Koşullu alanlar

Webform, formunuzun içindeki öğelerinize koşullu mantık eklemenize olanak tanır. Form içindeki başka bir öğenin değerine dayalı olarak öğelerin görünürlüğünü koşullu olarak ele almamız gereken küçük bir örnek ele alalım.

İşte iki adımlı alanlara sahip örnek bir form, 'E-posta' ve 'Cep Numarası' seçenekleriyle ADIM 1 (Radyo öğesi). ADIM 2 (Alan Kümesi), 'E-posta' ve 'Cep Numarası' olmak üzere iki öğeli.

Sayfa Oluştur

Form Oluşturma sayfası

Form Görünüm Sayfası

Form Görünümü sayfası

Yukarıdaki örnekte, Adım 1'de 'E-posta' seçeneği seçilmişse 'E-posta' alanını, Adım 1'de 'Cep Numarası' seçeneği seçilmişse 'Cep Numarası' alanını göstermek istiyorum.

Bunu başarmak için 'E-posta' alanınızı düzenleyin, 'Koşullar' sekmesine tıklayın, 'Durum'u 'Görünür' olarak seçin ve 'Tetikleyici/Değer'i 'ADIM 1 [Radyolar] değeri e-posta' olarak ayarlayın. Benzer şekilde, 'Cep Numarası' alanınıza koşullu mantık eklemek için aynı adımları izleyin ve 'Tetik/Değer'i 'ADIM 1 [Radyolar] değeri mobil_numara' olarak ayarlayın. İşte Web formunun son görünümü:

E-posta Öğesini Düzenle

Koşullu mantık kurma

Aşama 1

ADIM 1'de 'E-posta' seçildiğinde oluşan form

Adım 2

ADIM 1'de 'Cep Numarası' seçildiğinde form

4. Özel seçenekler özellikleri

Web formu, öğelerinize özel seçenek özellikleri eklemenize olanak tanır.

Form içindeki farklı bir öğenin değerine dayalı olarak bir radyo öğesinin seçeneklerini koşullu olarak ele almak isteyeceğiniz bir senaryo hayal edin. Bunu nasıl yaptın?

Kullanıcı arayüzünden Koşullu mantık ayarları aracılığıyla halletmenin bir yolunu bulamadım. Ancak, öğenize 'özel seçenekler özelliklerini' ayarlamak için bir hüküm vardır; burada, YAML kodunu kullanarak öğe içindeki seçeneklerinizi hedefleyen gerekli koşullu mantığı yazarsınız.

İşte bir örnek, iki radyo elemanı görebildiğimiz ve ilk elemanda seçtiğim seçeneğe bağlı olarak, ikinci eleman içindeki seçeneklerin görünürlüğünün değişmesi gerekiyor.

Form Oluşturma Sayfası

Form Oluşturma sayfası

Özel Seçenek

Herhangi bir özel seçenek özelliği eklemeden önce Form Görünümü sayfası:

  • 'Tip A' seçilirse, ikinci öğeden 'Seçenek 1' ve 'Seçenek 2' görünür olmalıdır. Benzer şekilde, 'Tip B' seçilirse, 'Seçenek 3' ve 'Seçenek 4' görünür olmalıdır. Bunu gerçekleştirmek için ikinci öğeyi düzenleyin, 'Gelişmiş' sekmesine gidin, 'Seçenekler (özel) özellikler' bölümlerine gidin ve gerekli mantığı YAML'de yazın.
Seçenek ÖğesiSeçenek öğesini düzenle

Seçenek özelliklerini ayarlama

Türü seçin

'Tip A' seçildiğinde oluşan form

B Tipi'ni seçin

'B Tipi' seçildiğinde oluşan form

5. Web formu gönderme e-posta işleyicileri

  • E-posta işleyicileri

E-posta işleyicileri, e-posta yoluyla bir web formu gönderimi gönderir. Web formunuza e-posta işleyicileri eklemek için 'Ayarlar'a ve ardından 'E-postalar/İşleyiciler' sekmesine gidin. Ardından, 'E-posta Ekle / İşleyici ekle' düğmesini tıklayın.

E-posta işleyici

E-posta İşleyici Ekle

  • Aşağıdaki resimde gösterildiği gibi, 'Genel' sekmesinde, 'Başlık' ekleyin ve 'Gönder' ve 'Şuradan Gönder' ayrıntılarını ayarlayın. Gerektiği gibi 'Konu' ve 'Gövde' mesajını ekleyin ve yapılandırma formunu kaydedin.
E-posta OnayıOnay İşleyicisiE-posta Onay İşleyicisiİletiBaşlık Açıklaması

Ve bununla ilgili. Form gönderildiğinde işleyiciniz kovuluyor.

  • Ayrıca web formunuza koşullu e-posta işleyicileri ayarlayabilirsiniz, yani formdaki belirli öğelerin değerine göre farklı e-posta işleyicilerini tetikleyebilirsiniz.
  • Örneğin, 'Tip 1' ve 'Tip 2' değerlerine sahip bir 'Select' öğesini ele alalım. Kullanıcı 'Tip 1' gönderirse, 'Kime' adresini ' [eposta korumalı] ' olarak ayarlayan 'E-posta - Tip 1' işleyicisini tetikleyin. Kullanıcı 'Tip 2' gönderirse, 'Kime' adresini ' [eposta korumalı] ' olarak ayarlayan 'E-posta - Tip 2' işleyicisini tetikleyin.
  • E-posta işleyicinize koşullu mantık eklemek için bir işleyici oluşturun ve 'E-posta - Tip 1' olarak adlandırın. 'Kime' adresini ' [e-posta korumalı] ' olarak ayarlayın, 'Koşullar' Sekmesine geçin, 'Durum'u 'Görünür' olarak seçin ve 'Tetikleyici/Değer'i 'Tür Seçin [Seç] değeri type_1' olarak ayarlayın.
  • Benzer şekilde, ikinci işleyiciyi oluşturun ve 'Email - Type 2' olarak adlandırın. 'Kime' adresini ' [e-posta korumalı] ' olarak ayarlayın, 'Koşullar' Sekmesine geçin, 'Durum'u 'Görünür' olarak seçin ve 'Tetikleyici/Değer'i 'Tür Seçin [Select] değeri type_2' olarak ayarlayın.
E-posta türü

  • Planlanmış e-posta işleyicileri

    • E-postaların planlanmasına izin vermek için Webform modülünün e-posta işleyicisini genişletir. Bu özelliği kullanmak için 'Webformu Zamanlanmış E-posta İşleyicisi' alt modülünü etkinleştirin.
    • Form gönderimlerinin bir e-postasını göndermeyi planlamak için 'İşleyici ekle' düğmesini tıklayın. Burada 'Planlanmış E-posta' işleyicisini seçin.
İşleyici Seç

Normal 'E-posta işleyicisine' kıyasla 'Zamanlanmış E-posta' işleyicisinde yalnızca bir ekstra yapılandırma ayarı vardır. Ve bu, Genel ayarlar sekmesinin altına Plan e-posta tarihi eklemek içindir.

E-posta İşleyicisini zamanlayın

Planlanmış e-posta işleyicisi

İşleyicinizi tetikleyecek tarihi ayarlayın ve bir sonraki cron çalıştırıldığında e-postanız gönderilecektir!

Yardım Bulma

Web formu modülüyle ilgili yardım aramanın farklı yolları vardır. İşte birkaç kaynağın listesi:

  • Belgeler, Yemek Kitabı ve Ekran Görüntüleri
    • https://www.drupal.org/docs/8/modules/webform
  • Web Formu Sorun Sırası
    • https://www.drupal.org/project/issues/webform
  • Drupal Cevapları
    • http://drupal.stackexchange.com
  • gevşek kanal
    • Webform modülü ile ilgili sorularınızı her zaman Drupal slack çalışma alanındaki #webform kanalından gönderebilirsiniz. Topluluktan herkes, hatta modül bakıcısının kendisi bile her zaman yanınızdadır ve sorunlarınızda size rehberlik edecek kadar kibardır.

Drupal 8/9 Webform modülüne yönelik amansız desteği için Jacob Rockowitz'e BÜYÜK bir haykırış. Webform onsuz şimdi olduğu gibi olmazdı.