Drupal 7 web formlarını kodda saklayın


8

Web formlarını kodda saklamak için herhangi bir çözüm olup olmadığını merak ediyorum. Böylece bunları diğer sitelerde kolayca çoğaltabilir ve kendi modüllerinizle paketleyebilirsiniz. Ben görünümler API olarak similair bir şey arıyorum.

Mevcut değilse, kaç kişi bu işlevsellik ile ilgileniyor? Kodda web formlarının depolanmasını işleyebilecek bir modül geliştirebilirim. Ve böyle bir modül oluşturma konusunda endişeleriniz var mı?

Teşekkürler, Jaap


Webform modülüyle oluşturulan formları mı kastediyorsunuz?
Mołot

1
Evet, webform modülü ile oluşturulan formları kastediyorum
Jaap Jansma

1
Aslında çok kolay, sadece Webform paylaşımının bunu nasıl yaptığına bir göz atın . ( webform_share_export()ve webform_share_node_insert()para fonksiyonlarıdır). Ben kullanımını onaylamak söyleyemeyiz eval(), ama bunu kolayca bir JSON nesnesi / serileştirilmiş dize kullanmak için kolayca dönüştürebilirsiniz. Üstesinden gelmeniz gereken tek (küçük) zorluk, web formunuzun yeni bir düğüme nasıl / ne zaman uygulandığıdır, elbette web formunu eklemek için bir düğüm gereklidir.
Clive

Yanıtlar:


1

Gerçekten değil ve buna gerek yok

  1. Kodda kullanılabilir forma ihtiyacınız varsa, Form API formlarını sıfırdan yazmak o kadar zor değildir. Görünümlerin aksine, yalnızca Web kimlikleri düğüm kimlikleriyle tema oluşturabilirsiniz ve bu, siteden siteye değişecektir, bu nedenle modülle birlikte verilen Webform formları uygun olmayacaktır.

  2. Formları modüllerinizle birlikte paketlemek istiyorsanız ve herhangi bir nedenle Form API'sını kullanamıyorsanız, UUID Features Integration ve Webform share bunu yapmanın yollarını sağlar. Saf anlamda bir kod olmayacak , ama çalışmalı.

  3. hook_form_alterBelirli bir web formunun Form API gösterimini elde etmek nispeten daha kolaydır . Tabii ki, gelecekte kolayca değiştiremeyeceksiniz, ancak tekrar, görüşlerin aksine, iyidir. Bazı veriler gösterilmezse modül zarar görmez. Sağlanmayan veya modülün beklemediği bir şekilde sağlanmayan veriler bazı şeyleri kırabilir. Bu yüzden modülün bir forma ihtiyacı varsa, düzenlemek kolay olmamalıdır . Formda yapılacak düzenlemeler yine de modül kodunda düzenlemeler yapılmasını gerektirecektir, bu nedenle Form API kodu bu gibi durumlarda uzun vadede işleri zorlaştırır.


1
Bu alternatif için iyi bir cevap olsa da, web formları kodda tutmak için oldukça makul bir istek olduğunu düşünüyorum (buna gerek yoktur ya da gerçekten mümkün olmadığını kabul etmiyorum). Örneğin, daha sonra kullanıcı arayüzü aracılığıyla kullanıcılar tarafından genişletilebilecek bir modül içeren bir temel İletişim formu sağlamak istiyorsanız, bir web formu ideal olacaktır. Kullanıcı arayüzünü kendiniz oluşturmak gerçek bir acı olur. Bu yana webformbir nesne (a veya dizi) yine düğüm nesne üzerinde oturmakta iken, seri hale getirilebilir ve çok kolay yeniden tatbik
Clive

@Clive Ancak temel iletişim için neden gerçek kod gerekiyor? Düğümü neden dışa aktarmıyorsunuz (düğümü modüle aktarabileceğiniz UUID Özellikleri Entegrasyonu ile) yeterli?
Mołot

Bu modül Webform nesnesini de senkronize ediyor mu?
Clive

@Clive Hatırladığım kadarıyla, bazı konularda ama evet. Özel kod , bir formdaki verilere ihtiyaç duyuyorsa, webformu tehlikeli hale getirmez mi? Alanları Webform'da silmeye karşı dirençli hale getirmenin bir yolunu bilmiyorum (ama bu kadar zor görünmediğimi itiraf ediyorum).
Mołot

1
Gerçekten de, web formunun entegrasyonun çalışması için bir yaması bile vardır . Geri alıyorum :)
Clive
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.