YAMS + eForm

This is a user-contributed Extra. If you find issues or would like more info or help, please contact the author.

How can eForm be made to work with YAMS?

With YAMS multiple language variants of content are embedded in documents during the parsing process.

Thus there may be several language variants of the eForm form embedded in the document at the time the eForm plugin is active, even though only one version of the form will finally appear on the page.

If each embedded eForm has the same form-id, then this will cause eForm to get confused. Therefore, to embed eForm in a multilingual document it is necessary to use one set of templates per language, and to give each a unique form-id.

Even though it is necessary to use one set of templates for each language, a single snippet can be used that will work with all language variants. This single snippet call can then be placed in a chunk if it is to be hidden from less technical users.

To achieve this use the following naming convention for the form id and name of each template chunk: "basename_langId". Then use an eForm call similar to the following:

[!eForm?
&language=`(yams_mname)`
&formid=`contactForm_(yams_id)`
&tpl=`eFormContactForm_(yams_id)`
&report=`eFormContactReport_(yams_id)`
&automessage=`eFormContactAutoMessage_(yams_id)`
&thankyou=`eFormContactThankyou_(yams_id)`
…
!]

Suggest an edit to this page.