Changeset 9895 in spip-zone


Ignore:
Timestamp:
Feb 25, 2007, 7:16:48 PM (13 years ago)
Author:
cedric@…
Message:

un champ de type heure
correction d'un bug sur l'init du format des dates du date picker
le parametre linkable ne concerne que les liens avec les articles
corrections de bugs en presence de 2 boites de jointures
titre des libelles avant les boites de jointure

Location:
_plugins_/_stable_/forms/forms_et_tables_1_9_1
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_stable_/forms/forms_et_tables_1_9_1/etc/forms_types_champs.xml

    r8821 r9895  
    66        </type>
    77        <type>
     8                <field>heure</field>
     9                <label><multi>[fr]Heure[en]Hour</multi></label>
     10                <match>/^\s*[1-2]?[0-9][:hH][0-5]?[0-9]\s*$/</match>
     11        </type>
     12        <type>
    813                <field>telephone</field>
    914                <label><multi>[fr]T&eacute;l&eacute;phone[en]Phone Number</multi></label>
  • _plugins_/_stable_/forms/forms_et_tables_1_9_1/exec/forms_donnees_liantes.php

    r9857 r9895  
    1919                $id_donnee,
    2020                "donnee",
     21                "",
    2122                "forms_donnees_liantes",
    2223                "forms_donnees_liantes-$id_donnee",
  • _plugins_/_stable_/forms/forms_et_tables_1_9_1/exec/recherche_donnees.php

    r9852 r9895  
    2929                $les_donnees .= (strlen($les_donnees)?",":"").$id;
    3030        // recuperer les donnees que l'on peut lier
    31         $liste = Forms_liste_recherche_donnees($recherche,$les_donnees,$type_table,30);
     31        $liste = Forms_liste_recherche_donnees($recherche,$les_donnees,$type,$type_table,30);
    3232       
    3333        $out = "<ajaxresponse>";
  • _plugins_/_stable_/forms/forms_et_tables_1_9_1/exec/template/donnees_tous.html

    r9888 r9895  
    22#SET{colonnes_sans_tri,'0,1'}<BOUCLE_form(FORMS){id_form}>#SET{documents,#DOCUMENTS|=={oui}|?{' '}}</BOUCLE_form>
    33#SET{id,#ENV*{statuts}|serialize|md5|concat{_,#ID_FORM}}
     4[(#ENV{colonne_extra_titre,''}|?{' '})
     5        #SET{colonne_extra_titre,#ENV*{colonne_extra_titre}|supprimer_tags|attribut_html|trim}
     6        [(#GET{colonne_extra_titre}|?{'',' '})#SET{colonne_extra_titre,#ENV*{colonne_extra_titre}|extraire_attribut{alt}}]
     7]
    48<B_donnees>
    59<div class='verdana2'><p><div id="sorting_#GET{id}"><div>Tri en cours, un instant...</div></div><div id="filter_#GET{id}"></div></p></div><div style="clear:both">&nbsp;</div>
     
    5458                [(#GET{documents})</td>]
    5559                [(#ENV{colonne_extra_titre,''}|?{' '})
    56                 <td><a href='[(#ENV{colonne_extra_url}|parametre_url{id_donnee,#ID_DONNEE})]' >#ENV*{colonne_extra_titre}</a></td>]
     60                <td><a href='[(#ENV{colonne_extra_url}|parametre_url{id_donnee,#ID_DONNEE})]' title='#GET{colonne_extra_titre}'>#ENV*{colonne_extra_titre}</a></td>]
    5761        </tr>
    5862</BOUCLE_donnees>
  • _plugins_/_stable_/forms/forms_et_tables_1_9_1/exec/template/tables_affichage.php

    r9887 r9895  
    247247        }
    248248
     249        // donnees liantes
    249250        list($out,$les_donnees,$nombre_donnees) = Forms_afficher_liste_donnees_liees(
    250251                "donnee_liee",
    251252                $id_donnee,
    252                 "donnee",
     253                "donnee",
     254                "",
    253255                "forms_donnees_liantes",
    254256                "forms_donnees_liantes",
  • _plugins_/_stable_/forms/forms_et_tables_1_9_1/forms_fonctions.php

    r9751 r9895  
    1818        function forms_calcule_les_valeurs($type, $id_donnee, $champ, $id_form, $separateur=" "){
    1919                $lesvaleurs = array();
    20                 $res = spip_query("SELECT valeur FROM spip_forms_donnees_champs WHERE id_donnee="._q($id_donnee)." AND champ="._q($champ));
    21                 while ($row = spip_fetch_array($res)){
    22                         $lesvaleurs[] = forms_calcule_valeur_en_clair($type, $id_donnee, $champ, $row['valeur'], $id_form);
    23                 }
    24                 return implode($separateur,$lesvaleurs);
     20                if (strncmp($champ,'joint_',6)!=0){
     21                        $res = spip_query("SELECT valeur FROM spip_forms_donnees_champs WHERE id_donnee="._q($id_donnee)." AND champ="._q($champ));
     22                        while ($row = spip_fetch_array($res)){
     23                                $lesvaleurs[] = forms_calcule_valeur_en_clair($type, $id_donnee, $champ, $row['valeur'], $id_form);
     24                        }
     25                        return implode($separateur,$lesvaleurs);
     26                }
     27                else
     28                        return forms_calcule_valeur_jointure($type, $id_donnee, $champ, $id_form);
     29        }
     30        function forms_calcule_valeur_jointure($type, $id_donnee, $champ, $id_form){
     31                static $type_joint = array();
     32                static $prefixi18n = array();
     33                static $liste_table = array();
     34                if (!isset($type_joint[$id_form][$champ])){
     35                        $res = spip_query("SELECT extra_info FROM spip_forms_champs WHERE id_form="._q($id_form)." AND champ="._q($champ));
     36                        if ($row = spip_fetch_array($res))
     37                                $type_joint[$id_form][$champ] = $row["extra_info"];
     38                        else return "";
     39                }
     40                $type = $type_joint[$id_form][$champ];
     41                if (!isset($prefixi18n[$type]))
     42                        $prefixi18n[$type] = forms_prefixi18n($type);
     43                if (!isset($liste_table[$type])){
     44                        include_spip("base/forms_base_api");
     45                        $liste_table[$type] = implode(",",Forms_liste_tables($type));
     46                }
     47                include_spip("base/abstract_sql");
     48                $in = calcul_mysql_in("d.id_form",$liste_table[$type]);
     49                $pre = $prefixi18n[$type];
     50                $res = spip_query(
     51                  "SELECT id_donnee_liee
     52                  FROM spip_forms_donnees_donnees AS l
     53                  JOIN spip_forms_donnees AS d ON d.id_donnee=l.id_donnee_liee
     54                  WHERE $in AND l.id_donnee="._q($id_donnee));
     55                $cpt = spip_num_rows($res);
     56                $out = "";
     57                if ($cpt==0) $out .= _T("$pre:aucune_reponse");
     58                else if ($cpt==1) $out .= _T("$pre:une_reponse");
     59                else $out .= _T("$pre:nombre_reponses",array('nombre'=>$cpt));
     60                return $out;
    2561        }
    2662
  • _plugins_/_stable_/forms/forms_et_tables_1_9_1/formulaires/forms.html

    r9751 r9895  
    4040[(#ENV{formvisible}|?{' '})
    4141        [(#ENV{formactif})
    42                 [(#ENV{id_donnee}|forms_boite_jointure{#CHAMP,#ID_FORM})]
     42                [<span class='spip_form_label'><div class='spip_form_champ'><span class='label'>#TITRE</span></span>
     43                (#ENV{id_donnee}|forms_boite_jointure{#CHAMP,#ID_FORM})</div>]
    4344        ]
    4445]
  • _plugins_/_stable_/forms/forms_et_tables_1_9_1/formulaires/forms_structure.html

    r9751 r9895  
    9494$('input.forml').bind('blur',function(){$(this).removeClass('forml-focus').addClass('forml');});
    9595[(#GET{date-picker}|?{' '})
    96         $.datePicker.setDateFormat('ddmmyyyy','/');
     96        $.datePicker.setDateFormat('dmy','/');
    9797        [(#INCLURE{fond=formulaires/date_picker_init}|charset2unicode{html}|unicode2charset)]
    9898        $('input.date-picker').datePicker({startDate:'01/01/1900'});
  • _plugins_/_stable_/forms/forms_et_tables_1_9_1/inc/forms.php

    r9886 r9895  
    735735}
    736736
    737 function Forms_afficher_liste_donnees_liees($type_source, $id, $type_lie, $script, $bloc_id, $arg_ajax, $retour){
     737function Forms_afficher_liste_donnees_liees($type_source, $id, $type_lie, $type_table, $script, $bloc_id, $arg_ajax, $retour){
    738738        // article, donnee
    739739        // donnee, donnee_liee
    740740        // donnee_liee, donnee
    741741        $lieeliante = ($type_source=='donnee_liee')?'liante':'liee';
    742         $linkable = $type_source!='donnee_liee';
     742        $linkable = strncmp($type_source,'donnee',6)!=0;
     743        $in_type_table="";
     744        if ($type_table){
     745                include_spip("base/abstract_sql");
     746                include_spip("base/forms_base_api");
     747                $in_type_table = calcul_mysql_in('d.id_form',implode(",",Forms_liste_tables($type_table)))." AND";
     748        }
    743749       
    744750        $out = "";
     
    756762        $table_liens = strncmp($type_source,"donnee",6)==0?"spip_forms_donnees_donnees":"spip_forms_donnees_{$type_source}s";
    757763       
    758         $res = spip_query("SELECT l.$champ_donnee_liee FROM $table_liens AS l WHERE l.$champ_donnee_source="._q($iid));
     764        $res = spip_query("SELECT dl.$champ_donnee_liee
     765          FROM $table_liens AS dl
     766          JOIN spip_forms_donnees AS d ON d.id_donnee=dl.$champ_donnee_liee
     767          WHERE $in_type_table dl.$champ_donnee_source="._q($iid));
    759768        $nombre_donnees = $cpt = spip_num_rows($res);
    760769        while ($row = spip_fetch_array($res,SPIP_NUM))  $les_donnees.=",".$row[0];
     
    777786        FROM $table_liens AS dl
    778787        JOIN spip_forms_donnees AS d ON d.id_donnee=dl.$champ_donnee_liee
    779         WHERE dl.$champ_donnee_source="._q($iid)."
     788        WHERE $in_type_table dl.$champ_donnee_source="._q($iid)."
    780789        ORDER BY d.id_form $limit");
    781790        while ($row = spip_fetch_array($res)){
  • _plugins_/_stable_/forms/forms_et_tables_1_9_1/inc/forms_lier_donnees.php

    r9857 r9895  
    8787        if ($type == 'donnee')
    8888                $les_donnees .= (strlen($les_donnees)?",":"").$iid;
    89         $out .= Forms_boite_selection_donnees($recherche?$recherche:((_request('ajouter')!==NULL)?"":$recherche),$les_donnees, $type_table);
     89        $out .= Forms_boite_selection_donnees($recherche?$recherche:((_request('ajouter')!==NULL)?"":$recherche),$les_donnees, $type, $type_table);
    9090       
    9191        $script_rech = generer_url_ecrire("recherche_donnees","type=$type&id_$type=$id",true);
     
    122122                $type,
    123123                $id,
    124                 strncmp($type,"donnee",6)==0?"donnee_liee":"donnee",
     124                strncmp($type,"donnee",6)==0?"donnee_liee":"donnee",
     125                $type_table,
    125126                'forms_lier_donnees',
    126127                "forms_lier_donnees-$id",
     
    129130}
    130131
    131 function Forms_boite_selection_donnees($recherche, $les_donnees, $type_table){
     132function Forms_boite_selection_donnees($recherche, $les_donnees, $type, $type_table){
    132133        $out = "";
    133         $liste_res = Forms_liste_recherche_donnees($recherche,$les_donnees,$type_table);
     134        $liste_res = Forms_liste_recherche_donnees($recherche,$les_donnees,$type,$type_table);
    134135        if (count($liste_res)){
    135136                $out .= "<select name='id_donnee_liee[]' multiple='multiple' class='fondl' style='width:100%' size='10'>";
     
    148149}
    149150
    150 function Forms_liste_recherche_donnees($recherche,$les_donnees,$type_table,$max_items=-1){
     151function Forms_liste_recherche_donnees($recherche,$les_donnees,$type,$type_table,$max_items=-1){
     152        if (strncmp($type,'donnees',6)==0)
     153                $linkable = false;
     154        else   
     155                $linkable = true;
    151156        $table = array();
    152157        if ($recherche===NULL && $max_items==-1)
     
    176181                }
    177182                while ($row = spip_fetch_array($res)){
    178                         list($id_form,$titreform,$type_form,$t) = Forms_liste_decrit_donnee($row['id_donnee']);
     183                        list($id_form,$titreform,$type_form,$t) = Forms_liste_decrit_donnee($row['id_donnee'],true, $linkable);
    179184                        if (!count($t))
    180                                 list($id_form,$titreform,$type_form,$t) = Forms_liste_decrit_donnee($row['id_donnee'],false);
     185                                list($id_form,$titreform,$type_form,$t) = Forms_liste_decrit_donnee($row['id_donnee'],false, $linkable);
    181186                        if (count($t))
    182187                                $table[$titreform][$row['id_donnee']]=$t;
Note: See TracChangeset for help on using the changeset viewer.