Sujet fermé
Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

[Résolu] Formbuilder et ancre
#1

Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 2.1.6
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 2.1.6
#~ Installed Modules:
#~ AdminSearch: 1.0.2
#~ CGContentUtils: 2.2.1.1
#~ CGExtensions: 1.53.17
#~ CGGoogleMaps2: 1.1.1
#~ CGJobMgr: 1.3.4
#~ CGSimpleSmarty: 2.1.6
#~ CGSmartImage: 1.21.5
#~ CGUserDirectory: 1.5
#~ CMSContentManager: 1.1.4
#~ CMSForms: 1.11.2
#~ CMSMailer: 6.2.14
#~ CSSPreprocessor: 2.1
#~ Captcha: 0.5.5
#~ CodeMirror: 3.0.0
#~ CompanyDirectory: 1.23.3
#~ DesignManager: 1.1.1
#~ ExtendedTools: 1.3.3
#~ FAQ: 2.0.1
#~ FileManager: 1.5.2
#~ FormBuilder: 0.8.1.6
#~ FrontEndUsers: 2.3
#~ Gallery: 2.2
#~ JQueryTools: 1.3.9
#~ LISE: 1.2.3
#~ LISECategories: 1.2.3
#~ LISELiseEvenementiel: 1.2.3
#~ LISEMarques: 1.2.3
#~ LISEPartenaires: 1.2.3
#~ LISEPrestations: 1.2.3
#~ LISETarifs: 1.2.3
#~ LISETeam: 1.2.3
#~ MCFramework: 0.0.6
#~ MicroTiny: 2.0.3
#~ MleCMS: 2.0-alpha2
#~ ModuleManager: 2.0.5
#~ NMS: 2.12.2
#~ Navigator: 1.0.3
#~ News: 2.50.6
#~ Orm: 0.3.3
#~ Postcode: 1.2.1
#~ Search: 1.50.2
#~ Storelocator: 0.2
#~ ThemeManager: 1.1.8
#~ TinyMCE: 3.1.4
#~ TruetypeText: 2.2.1
#~ Config Information:
#~ php_memory_limit:
#~ max_upload_size: 8000000
#~ url_rewriting: mod_rewrite
#~ page_extension: .html
#~ query_var: page
#~ auto_alias_content: true
#~ locale: fr_FR.utf8
#~ set_names: true
#~ timezone: Europe/Paris
#~ permissive_smarty: false
#~ Php Information:
#~ phpversion: 7.0.16
#~ md5_function: On (Vrai)
#~ json_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_ALL: 32767
#~ E_STRICT: 2048
#~ E_DEPRECATED: 8192
#~ test_file_timedifference: Aucune différence de date du système trouvée
#~ test_db_timedifference: Aucune différence de date du système trouvée
#~ create_dir_and_file: 1
#~ memory_limit: 128M
#~ max_execution_time: 120
#~ register_globals: Off (Faux)
#~ output_buffering: 4096
#~ disable_functions:
#~ open_basedir:
#~ test_remote_url: Valable
#~ file_uploads: On (Vrai)
#~ post_max_size: 16M
#~ upload_max_filesize: 8M
#~ session_save_path: /tmp (0700)
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ xmlreader_class: On (Vrai)
#~ check_ini_set: On (Vrai)
#~ curl: On
#~ Performance Information:
#~ allow_browser_cache: Off (Faux)
#~ browser_cache_expiry: 60
#~ php_opcache: Off (Faux)
#~ smarty_cache: Off (Faux)
#~ smarty_compilecheck: Off (Faux)
#~ smarty_cache_udt: Off (Faux)
#~ auto_clear_cache_age: Off (Faux)
#~ Server Information:
#~ Server Software: Apache
#~ Server Api: litespeed
#~ Server Os: Linux 2.6.32-673.26.1.lve1.4.20.el6.x86_64 On x86_64
#~ Server Db Type: MySQL (mysqli)
#~ Server Db Version: 10.0.29
#~ Server Db Grants: Trouvé un privilège "GRANT ALL" qui semble être adapté
#~ Permission Information:
#~ tmp: /home/farangpr/Sites/lerefugedubienetre/tmp (0755)
#~ tmp_cache: /home/farangpr/Sites/lerefugedubienetre/tmp/cache (0755)
#~ templates_c: /home/farangpr/Sites/lerefugedubienetre/tmp/templates_c (0755)
#~ modules: /home/farangpr/Sites/lerefugedubienetre/modules (0755)
#~ uploads: /home/farangpr/Sites/lerefugedubienetre/uploads (0755)
#~ Masque de création de fichier (umask) : /home/farangpr/Sites/lerefugedubienetre/tmp/cache (0755)
#~ config_file: 0444
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour,

une petite question pratique...

J'ai un formulaire de contact qui se trouve en bas 'une page avec un peu de contenu au dessus.
Lorsque je valide le formulaire la page se recharge pour afficher les erreurs ou pour dire que tout s'est bien passé mais, le formulaire étant e bas de page on doit scroller pour voir si il y'a ou pas des erreurs et voir si le message a été envoyé, ce que ne ferons probablement pas les gens.
est-il possible de rajouter une ancre à l'adresse de l'action pour que l'envoi du formulaire nous ramène directement sur celui-ci ?

Merci
#2

Bonjour, la solution est de valider le formulaire en AJAX :

01. Créer un gabarit de page (Core:Tongueage) et l'appeler par ex AJAX avec pour seul contenu :
Code :
[== Indéfini ==]
{content}



02. Créer une page pour le formulaire de contact :
Contenu :
Code :
[== Indéfini ==]
{FormBuilder form='alias_du_formulaire'}
Options de la page :
Décocher "Désactiver l'éditeur WYSIWYG sur cette page (indépendamment du gabarit ou de la configuration de l'utilisateur)"
Gabarit: AJAX


03. Dans la page ou le gabarit où on appelle le form :

Code :
[== HTML ==]

<div id="ajax_contact_form" class="form">
    <div class="throbber" style="display: none;"></div>
    {FormBuilder form='alias_du_form'}
</div>
Ne pas oublier d'ajouter l'appel à Jquery.form dans le gabarit de page où est affiché le form (+ l'appel à JQUERY) :
<script type="text/javascript" src="js/jquery.form.min.js">
(Télécharger le script ici : http://malsup.com/jquery/form/#download)

+ ajouter le script en inline en fin de gabarit
Code :
[== JavaScript ==]
<script>
{literal}
//contact Form
jQuery(document).ready(function(){
  
var contact_form = $('#ajax_contact_form form');
function formValidate(formData, jqForm, options){
// var queryString = $.param(formData);
// var formElement = jqForm[0];
// alert('About to submit: \n\n' + queryString);
contact_form.fadeOut("slow", function(){$(".throbber").fadeIn("slow")});
return true;
};
  
// Prepare form
var options = {
target: '#ajax_contact_form',
beforeSubmit: formValidate,
type: 'post'
};
  
$('#ajax_contact_form form input[name*=returnid]').attr('value','ID_DE_LA_PAGE_DU_FORM');
$('#ajax_contact_form form input[name=page]').attr('value','ALIAS_DE_LA_PAGE_DU_FORM');
  
contact_form.attr('action','{/literal}{root_url}{literal}/index.php?page=aliasdelapageduform&showtemplate=false').ajaxForm(options);
});
{/literal}

Remplacer "ALIAS_DE_LA_PAGE_DU_FORM"(x2 dans le script ci-dessus) par L'alias de la page du form est renseigné dans la liste des pages (Gestionnaire de contenus).
Remplacer "ID_DE_LA_PAGE_DU_FORM"(x1 dans le script ci-dessus) L'id de la page se trouve en survolant le nom de la page du form (Id du contenu Smile

04. Un peu de css pour voir s'afficher le "throbber" (l'image doit exister... chercher "throbber.gif" dans google images au pire)
Code :
[== CSS ==]

.throbber {
    background: url("../img/throbber.gif") no-repeat center center;
    height: (ajouter au minimum une hauteur mini, le throbber étant en image de fond, par défaut la div n'a pas de hauteur)
}

Dans le même genre, afficher le form dans une popup :
https://www.cmscanbesimple.org/blog/form...modal-view
#3

J'étais pas partie pour une version avec js mais pourquoi pas finalement...
Je vais regarder ça de plus près.

Merci
#4

Solution trouvée !

On peut mettre l'ancre directement dans l'appel de FormBuilder...

Code :
[== Indéfini ==]
{FormBuilder|replace:'http://www.website.com/page':'http://www.website.com/page#contact' form=... }

Ca fonctionne à merveille et ça doit fonctionner pour tous les modules qui appellent une url... à tester
Sujet fermé


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)