[SPIP Zone] r4285 - in /_plugins_/_email_/recommander: recommander.php recommander_ahah.js

Author: cedric@yterium.com
Date: Sun Jul 30 18:33:59 2006
New Revision: 4285

Log:
jqueryser le ahah car cela est plus robuste (permet d'avoir les input dans des div ou p sans compliquer la recherche ...)
le span de la roue est repere par une classe waiting

Modified:
    _plugins_/_email_/recommander/recommander.php
    _plugins_/_email_/recommander/recommander_ahah.js

Modified: _plugins_/_email_/recommander/recommander.php

--- _plugins_/_email_/recommander/recommander.php (original)
+++ _plugins_/_email_/recommander/recommander.php Sun Jul 30 18:33:59 2006
@@ -54,18 +54,18 @@

   // verifier que le formulaire est bien rempli
   if (!email_valide(_request('recommander_from')))
- $retour = _T('pass_erreur_non_valide',
+ $retour .= _T('pass_erreur_non_valide',
       array(
       'email_oubli' => htmlspecialchars(_request('recommander_from'))
       )
- );
+ ).'from:'._request('recommander_from');

   if (!email_valide(_request('recommander_to')))
- $retour = _T('pass_erreur_non_valide',
+ $retour .= _T('pass_erreur_non_valide',
       array(
       'email_oubli' => htmlspecialchars(_request('recommander_to'))
       )
- );
+ ).'to:'._request('recommander_to');

   if ($retour)
     return $retour;
@@ -123,10 +123,9 @@
   OR (_request('recommander_cle') <> md5(_SECRET._request('recommander_env')))
   OR $erreur = recommander(@unserialize(base64_decode(_request('recommander_env'))))) {

- $r = $erreur;
-
+ $r = "";
     // le formulaire normal
- $r .= "<span class='toto'><a href='#formulaire_recommander' onclick=\"toggle_formulaire_recommander();return false;\" >"._T("recommander:recommander")."</a></span>";
+ $r .= "<span class='recommander_titre'><a href='#formulaire_recommander' onclick=\"toggle_formulaire_recommander();return false;\" >"._T("recommander:recommander")."</a></span>";
     $r .= "<div id='formulaire_recommander' class='bloc_invisible'>";
     $r .= "<form method='post' action='".self()."'
     onsubmit=\"ahahform('spip.php', 'recommander');return false;\">";
@@ -152,6 +151,7 @@
     $r .= "<input type='hidden' name='recommander_env' value='$contexte' />\n";
     $r .= "<input type='hidden' name='recommander_cle' value='$cle' />\n";
     $r .= "</form>";
+ $r .= "<span class='waiting'>$erreur</span>";# pour l'icone "searching..."
     $r .= '</div>';
     $r .= '<script type="text/javascript">
     $(document).ready(function(){$("div#formulaire_recommander").hide();});
@@ -173,7 +173,6 @@
// main()
echo "<script type='text/javascript' src='".find_in_path('recommander_ahah.js')."'></script>\n",
   "<div id='recommander' class='formulaire_spip'>\n",
- "<span></span>\n", # pour l'icone "searching..."
   main_recommander(),
   "</div>\n";

Modified: _plugins_/_email_/recommander/recommander_ahah.js

--- _plugins_/_email_/recommander/recommander_ahah.js (original)
+++ _plugins_/_email_/recommander/recommander_ahah.js Sun Jul 30 18:33:59 2006
@@ -1,6 +1,11 @@
function ahah(url, target, delay) {
   // afficher la roue ajax dans le premier <span> du <div> cible.
- document.getElementById(target).getElementsByTagName('SPAN')[0].innerHTML = '<div style="position:absolute;z-index:10;"><img src="ecrire/img_pack/searching.gif" alt="Waiting..." /></div>';
+ //document.getElementById(target).getElementsByTagName('SPAN')[0].innerHTML = '<div style="position:absolute;z-index:10;"><img src="ecrire/img_pack/searching.gif" alt="Waiting..." /></div>';
+ $('#'+target).each(function(){
+ var group=this;
+ var s= $('.waiting',group).get(0);
+ s.innerHTML = '<div style="position:absolute;z-index:10;"><img src="ecrire/img_pack/searching.gif" alt="Waiting..." /></div>';
+ });
   if (window.XMLHttpRequest) {
     req = new XMLHttpRequest();
   } else if (window.ActiveXObject) {
@@ -29,30 +34,24 @@

function ahahform(url,target) {
- var obj = document.getElementById(target).getElementsByTagName('FORM')[0];
       var getstr = "?";
- for (i=0; i<obj.childNodes.length; i++) {
- if (obj.childNodes[i].tagName == "INPUT") {
- if ((obj.childNodes[i].type == "text") || (obj.childNodes[i].type == "hidden")) {
- getstr += obj.childNodes[i].name + "=" + encodeURIComponent(obj.childNodes[i].value) + "&";
- }
- if (obj.childNodes[i].type == "checkbox") {
- if (obj.childNodes[i].checked) {
- getstr += obj.childNodes[i].name + "=" + encodeURIComponent(obj.childNodes[i].value) + "&";
- } else {
- getstr += obj.childNodes[i].name + "=&";
- }
- }
- if (obj.childNodes[i].type == "radio") {
- if (obj.childNodes[i].checked) {
- getstr += obj.childNodes[i].name + "=" + encodeURIComponent(obj.childNodes[i].value) + "&";
- }
- }
- }
- if (obj.childNodes[i].tagName == "SELECT") {
- var sel = obj.childNodes[i];
- getstr += sel.name + "=" + encodeURIComponent(sel.options[sel.selectedIndex].value) + "&";
- }
- }
+ $('#'+target).each(function(){
+ var group=this;
+ $('input',group).each(function(){
+ if ((this.type == "text") || (this.type == "hidden"))
+ getstr += this.name + "=" + encodeURIComponent(this.value) + "&";
+ if (this.type == "checkbox")
+ if (this.checked)
+ getstr += this.name + "=" + encodeURIComponent(this.value) + "&";
+ else
+ getstr += this.name + "=&";
+ if (this.type == "radio")
+ if (this.checked)
+ getstr += this.name + "=" + encodeURIComponent(this.value) + "&";
+ });
+ $('select',group).each(function(){
+ getstr += this.name + "=" + encodeURIComponent(this.value) + "&";
+ });
+ });
       ahah(url+getstr+'action=fragment&fragment='+target, target);
    }