Zastanawiam się, czy istnieje jakieś rozwiązanie do przechowywania formularzy internetowych w kodzie. Abyś mógł łatwo kopiować je na innych stronach i łączyć je z własnymi modułami. Patrzę na coś podobnego jako interfejs API widoków.
Jeśli nie jest dostępne, ile osób jest zainteresowanych taką funkcjonalnością? Mogę opracować moduł, który mógłby obsługiwać przechowywanie formularzy internetowych w Code. Czy masz jakieś obawy związane z tworzeniem takiego modułu?
Dzięki, Jaap
webform_share_export()
iwebform_share_node_insert()
są funkcjami pieniężnymi). Nie mogę powiedzieć, że akceptuję użycieeval()
, ale można równie łatwo przekonwertować to na użycie obiektu JSON / serializowanego ciągu. Jedyną (małą) trudnością, którą musisz pokonać, jest to, w jaki sposób / kiedy twój formularz internetowy jest stosowany do nowego węzła, przy czym węzeł jest oczywiście wymagany do dołączenia formularza internetowego.Odpowiedzi:
Niezupełnie i nie ma takiej potrzeby
Jeśli potrzebujesz formularza dostępnego z kodu, formularze Form API nie są trudne do napisania od zera. W przeciwieństwie do widoków, można tylko tworzyć motywy formularzy internetowych w ich identyfikatorach węzłów, a to zmieniałoby się z witryny na witrynę, więc formularze WWW połączone z modułem nie będą wygodne.
Jeśli chcesz połączyć formularze ze swoimi modułami i z jakiegokolwiek powodu nie możesz użyć Form API, integracja funkcji UUID i udział w formularzu internetowym zapewniają sposoby na to. Nie będzie to kod w czystym znaczeniu, ale powinien działać.
Jest stosunkowo łatwy w użyciu,
hook_form_alter
aby uzyskać reprezentację formularza API dla konkretnego formularza internetowego. Oczywiście nie będziesz w stanie łatwo tego zmienić w przyszłości, ale znowu, wbrew poglądom, jest dobrze. Moduł nie ucierpi, jeśli niektóre dane nie zostaną wyświetlone. Dane, które nie zostały dostarczone lub zostały dostarczone w sposób, którego moduł się nie spodziewa, mogą spowodować uszkodzenie. Więc jeśli moduł potrzebuje formy, to nie powinno być łatwe do edycji . Edycja formularza wymagałaby i tak edycji kodu modułu, więc kod Form API ułatwia, a nie utrudnia na dłuższą metę, w takich sytuacjach.źródło
webform
obiekt (lub tablica?) I tak znajduje się na obiekcie węzłowym, można go łatwo serializować i ponownie zastosować