Joomla 5 Notice

We are pleased to announce that as of January 29, 2024, all of our Joomla extensions are compatible with Joomla 5.

For all who are still updateing from Joomla 3 to Joomla 4: Joomla 4 Migration instructions are available here:

There is now a separate Documentation for Visforms for Joomla 4 and for Visforms for Joomla 5!

Forum

Visforms Subscription user can ask questions in our forum. Please log in with the relevant user first.
Everybody can access the forum for reading.

Please only ask 1 question per topic.

Important information for almost every question:
V1: Which Visforms version is running?
V2: Which Joomla version is running?
V3: Which PHP version is running?

visform in article: no website left over

More
8 years 1 month ago - 8 years 1 month ago #3607 by gorgonz
I'm starting to use visforms and use it within joomla 3.6.2
Something went wrong:
- Created a form with 3 fields
- Created a new module with position visform-reg and added the form name
- Added {loadposition visform} as last line of an article

So, what happens?
Activating the article (menu item) it will show me the form, but under strange conditions:
- nothing of the article resp. the whole website is shown - only the form
- there is no formatting at all
- looking with firebug I see consequently a starting body tag and then immediatelly the form code

The same will happen, if I use the form directly as action of a menu item.

Any ideas?
Would appreciate it very much :-)

[UPD] I forgot to mention something: The template, that is used, is of type ui-kit and taken from joomlaplates
Last edit: 8 years 1 month ago by gorgonz. Reason: set icon to fixed

More
8 years 1 month ago #3609 by Administrator AV
Replied by Administrator AV on topic visform in article: no website left over
Hi,

try with the Joomla! default Template protostar first. This will show you if it is a problem with your template. There are some templates which do no work well with the loadposition.

Regards,
Aicha

:idea: I recommend you the new and up-to-date documentation for Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/en/docs/
Most of this also applies retrospectively to Joomla 3.
Please only ask 1 question per topic :-).

:idea: Ich empfehle Dir die neue und aktuelle Dokumentation für Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/docs/
Das meiste gilt rückwirkend auch für Joomla 3.
Bitte immer nur 1 Frage pro Thema stellen :-).

More
8 years 1 month ago - 8 years 1 month ago #3610 by gorgonz
Replied by gorgonz on topic visform in article: no website left over
You are right, Aicha. Already sitting in my car, I thought the same thing ;-)

I tried protostar and beez3. It was the same there. Since nobody else reports such a problem, it must be a problem with the parameters, that i used. Or the render function is broken by some incompatibilities.

I tried the next step (with protostar), setting debug mode and looking for results in js-konsole.
No problems, but the header is empty. Maybe, this is a problem with my debugger, because there are no errors with JQuery(document).ready( function() {...});

Anyway, here is the code from the resulting page:
Code:
<div class="visforms-form"> <h1>Registrierung</h1> <script type="text/javascript"> jQuery(document).ready( function(){ var validator = jQuery(document).ready(function() { jQuery('#mod-visform1').validate({ wrapper: "p", //absolutly necessary when working with tinymce! ignore: ".ignore", rules: { "wohnraumtyp[]": {minlength: 1,},recaptcha_response_field : { required : true}, }, messages: { "wohnraumtyp[]": {minlength: jQuery.format('Bitte wählen Sie mindestens {0} Optionen aus'),maxlength: jQuery.format('Bitte wählen Sie höchsten {0} Optionen aus')}, }, errorPlacement: function (error, element){ var errorfieldid = element.attr("id"); errorfieldid = errorfieldid.replace(/_\d+$/, '_0'); error.appendTo('div.fc-tbx' + errorfieldid); error.addClass("errorcontainer"); }, }); }); jQuery.extend(jQuery.validator.messages, { required: 'Dieses Feld ist ein Pflichtfeld.', remote: "Please fix this field.", email: 'Bitte geben Sie eine valide E-Mail Adresse ein.', url: 'Bitte geben Sie eine valide URL ein, die mit http:// beginnt.', date: 'Bitte geben Sie ein valides Datum ein', dateISO: "Please enter a valid date (ISO).", number: 'Bitte geben Sie eine Zahl (mit Punkt als Dezimaltrenner) ein.', digits: 'Bitte geben Sie eine ganze Zahl ein', creditcard: "Please enter a valid credit card number.", equalTo: 'Bitte den Wert wiederholen', maxlength: jQuery.validator.format('Bitte geben Sie höchstens {0} Zeichen ein.'), minlength: jQuery.validator.format('Bitte geben Sie mindestens {0} Zeichen ein.'), rangelength: jQuery.validator.format('Bitte geben Sie {0} bis {1} Zeichen ein.'), range: jQuery.validator.format('Bitte geben Sie einen Zahl zwischen {0} und {1} ein.'), max: jQuery.validator.format('Bitte geben Sie einen Zahl kleiner oder gleich {0} ein.'), min: jQuery.validator.format('Bitte geben Sie eine Zahl grö&szlig;er oder gleich {0} ein.') }); jQuery.validator.addMethod("dateDMY", function(value, element) { var check = false; var re = /^(0[1-9]|[12][0-9]|3[01])[\.](0[1-9]|1[012])[\.]\d{4}$/; if( re.test(value)) { var adata = value.split('.'); var day = parseInt(adata[0],10); var month = parseInt(adata[1],10); var year = parseInt(adata[2],10); if (day == 31 && (month == 4 || month == 6 || month == 9 || month == 11)) { check = false; // 31st of a month with 30 days } else if (day >= 30 && month == 2) { check = false; // February 30th or 31st } else if (month == 2 && day == 29 && ! (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0))) { check = false; // February 29th outside a leap year } else { check = true; // Valid date } } return this.optional(element) || check; }, "Bitte geben Sie ein valides Datum ein"); jQuery.validator.addMethod("dateMDY", function(value, element) { var check = false; var re = /^(0[1-9]|1[012])[\/](0[1-9]|[12][0-9]|3[01])[\/]\d{4}$/; if( re.test(value)) { var adata = value.split('/'); var month = parseInt(adata[0],10); var day = parseInt(adata[1],10); var year = parseInt(adata[2],10); if (day == 31 && (month == 4 || month == 6 || month == 9 || month == 11)) { check = false; // 31st of a month with 30 days } else if (day >= 30 && month == 2) { check = false; // February 30th or 31st } else if (month == 2 && day == 29 && ! (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0))) { check = false; // February 29th outside a leap year } else { check = true; // Valid date } } return this.optional(element) || check; }, "Bitte geben Sie ein valides Datum ein"); jQuery.validator.addMethod("dateYMD", function(value, element) { var check = false; var re = /^\d{4}[\-](0[1-9]|1[012])[\-](0[1-9]|[12][0-9]|3[01])$/; if( re.test(value)) { var adata = value.split('-'); var year = parseInt(adata[0],10); var month = parseInt(adata[1],10); var day = parseInt(adata[2],10); if (day == 31 && (month == 4 || month == 6 || month == 9 || month == 11)) { check = false; // 31st of a month with 30 days } else if (day >= 30 && month == 2) { check = false; // February 30th or 31st } else if (month == 2 && day == 29 && ! (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0))) { check = false; // February 29th outside a leap year } else { check = true; // Valid date } } return this.optional(element) || check; }, "Bitte geben Sie ein valides Datum ein"); jQuery('.captcharefresh1').bind({ 'click' : function() { if (jQuery('#captchacode1')) { jQuery('#captchacode1').attr('src', 'index.php?option=com_visforms&task=visforms.captcha&sid=' + Math.random()+ '&id=1'); } } }); }); jQuery(document).ready( function(){ jQuery(document).displayChanger(); jQuery(".conditional").on("checkConditionalState", {restricts : {}}, function (e) { jQuery(this).toggleDisplay(e.data.restricts); }); }); //fix placeholder for IE7 and IE8 jQuery(document).ready( function () { if (!jQuery.support.placeholder) { jQuery("[placeholder]").focus(function () { if (jQuery(this).val() == jQuery(this).attr("placeholder")) jQuery(this).val(""); }).blur(function () { if (jQuery(this).val() == "") jQuery(this).val(jQuery(this).attr("placeholder")); }).blur(); jQuery("[placeholder]").parents("form").submit(function () { jQuery(this).find('[placeholder]').each(function() { if (jQuery(this).val() == jQuery(this).attr("placeholder")) { jQuery(this).val(""); } }); }); } }); </script> <div class="category-desc"> <p>Hier k&ouml;nnen Sie sich registrieren</p> </div> <form action="/website/index.php/de/component/visforms/?task=visforms.send&amp;id=1" method="post" name="visform" id="mod-visform1" class="visform "> <fieldset> <div class="vis_mandatory visCSSbot10 visCSStop10">Pflichtfeld *</div> <div class="field1 required"><div class="fc-tbxfield1_0"></div><label class=" visCSSlabel " id="wohnraumtyplbl">Gewünschter Wohnraum</label><p class="visCSStop0 visCSSmargLeft visCSSrbinl "><input id="field1_0" name="wohnraumtyp[]" value="Haus" class=" visCSSinput " required="required" aria-required="true" type="checkbox" /><label class="visCSStop10 visCSSright20 visCSSrlinl " id="wohnraumtyplbl_0" for="field1_0">Haus</label><input id="field1_1" name="wohnraumtyp[]" value="Apartment" class=" visCSSinput " required="required" aria-required="true" type="checkbox" /><label class="visCSStop10 visCSSright20 visCSSrlinl " id="wohnraumtyplbl_1" for="field1_1">Apartment</label><input id="field1_2" name="wohnraumtyp[]" value="Wohnung" class=" visCSSinput " required="required" aria-required="true" type="checkbox" /><label class="visCSStop10 visCSSright20 visCSSrlinl " id="wohnraumtyplbl_2" for="field1_2">Wohnung</label><input id="field1_3" name="wohnraumtyp[]" value="Zimmer" class=" visCSSinput " required="required" aria-required="true" type="checkbox" /><label class="visCSStop10 visCSSright20 visCSSrlinl " id="wohnraumtyplbl_3" for="field1_3">Zimmer</label><input id="field1_4" name="wohnraumtyp[]" value="WGZimmer" class=" visCSSinput " required="required" aria-required="true" type="checkbox" /><label class="visCSStop10 visCSSright20 visCSSrlinl " id="wohnraumtyplbl_4" for="field1_4">WG-Zimmer</label></p><p class="visCSSclear"><!-- --></p></div><div class="field2 required"><div class="fc-tbxfield2"></div><label class=" visCSSlabel " id="lagelbl" for="field2">Gewünschte Lage</label><select id="field2" name="lage[]" class=" visCSSinput " aria-labelledby="lagelbl" required="required" aria-required="true" multiple="1" size="3"> <option value="Regensburg Gesamt">regendburg</option> <option value="Umland">Umland</option> </select> <p class="visCSSclear"><!-- --></p></div><div class="field3"><div class="fc-tbxfield3"></div><label class=" visCSSlabel " id="zimmeranzahllbl" for="field3">Mindestanzahl Zimmer</label><select id="field3" name="zimmeranzahl[]" class=" visCSSinput " aria-labelledby="zimmeranzahllbl"> <option value="">W&auml;hlen Sie einen Wert</option> <option value="1">1</option> <option value="1.5">1.5</option> <option value="2">2</option> </select> <p class="visCSSclear"><!-- --></p></div><div class="field4"><div class="fc-tbxfield4"></div> <label class=" visCSSlabel " id="qmlbl" for="field4">Quadratmeter</label><input class=" inputbox visCSSinput " id="field4" aria-labelledby="qmlbl" name="qm" value="" type="text"/><p class="visCSSclear"><!-- --></p></div>

I did not reorder it, because there might be hints in it.

[UPD] Another idea was to take away the brackets in loadposition and immediatelly the website is rendered again with loadposition as text now. This means, it IS the render output from visform somehow.

Any idea?
Last edit: 8 years 1 month ago by gorgonz. Reason: Add info about loadposition

More
8 years 1 month ago #3611 by Administrator AV
Replied by Administrator AV on topic visform in article: no website left over
Hi,

I did not recognize one thing in your first post.
You wrote that you created a new module position "visform-reg" but you used {loadposition visform} to load the form.

The plugin loadmodule (in earlier Joomla! versions loadposition) which you use to load the form into the article is a Joomla! plugin that has nothing to do with Visforms in the first place.

I think the Joomla! developer have modified and improved the code for this plugin in the past. In older Joomla! Versions (maybe a long time back) you had to call the plugin wiht loadposition and really add the module position in the string. {loadposition visform-reg}. By the way, I think you should not use an minus in the name of module positions added to your website, but only whole words (without minus, blank or any special characters), because these may cause problems in the process where the plugin string is replaced with the module.

In current Joomla! (I don't know exactly since when) you can also use loadmodule and you can use the module type and facultative the module name instead of the position. So loadposition is used with the module position, loadmodule with the module type (and title). But about the proper use of the newer loadmodule I'm not totally sure.

I'm not sure, but I think your problem may come from a bad combination of the loadposition with the module name/type in your call of the plugin. But why these would strip the page, I don't know.
Please try to give the module position a distinctive name without minus. Then use loadposition with the name of this moduleposition.

Regards,
Aicha

:idea: I recommend you the new and up-to-date documentation for Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/en/docs/
Most of this also applies retrospectively to Joomla 3.
Please only ask 1 question per topic :-).

:idea: Ich empfehle Dir die neue und aktuelle Dokumentation für Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/docs/
Das meiste gilt rückwirkend auch für Joomla 3.
Bitte immer nur 1 Frage pro Thema stellen :-).

More
8 years 1 month ago #3617 by gorgonz
Replied by gorgonz on topic visform in article: no website left over
I knew it from the start, that it will have to do with my parameters ;-) => found it

Just for info: It was in the forms tab "spam protection". The parameter "use captcha" was set to "recaptcha plugin", but the plugin was deactivated ;-)

Maybe it could be an enhancement, to handle it in a better way., but I dunno if it is possible.

Another enhancement could be, if there was a possibility to export a form (to xml). Next to the support for admins gives it a chance to "post" a form here for analysis :-)

More
8 years 1 month ago #3618 by Administrator AV
Replied by Administrator AV on topic visform in article: no website left over
Hi,

thanks very much for posting back your result.
I'll take a look at the captcha "problem" as soon as I can.
Thanks for your suggestions, too.

Regards,
Aicha

:idea: I recommend you the new and up-to-date documentation for Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/en/docs/
Most of this also applies retrospectively to Joomla 3.
Please only ask 1 question per topic :-).

:idea: Ich empfehle Dir die neue und aktuelle Dokumentation für Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/docs/
Das meiste gilt rückwirkend auch für Joomla 3.
Bitte immer nur 1 Frage pro Thema stellen :-).

Moderators: Administrator AVAdministrator IV
Powered by Kunena Forum