Changeset 10206 in spip-zone


Ignore:
Timestamp:
Mar 6, 2007, 6:17:57 PM (14 years ago)
Author:
cedric@…
Message:

"une surcharge disponible au niveau des vues egalement"

Location:
_plugins_/_stable_/crayons
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_stable_/crayons/action/crayons_store.php

    r10202 r10206  
    7979                                // qu'il n'a pas ete modifie entre-temps
    8080
    81                                 // on fait une exception pour forms_donnee, on verra plus tard
    82                                 // comment faire ca de maniere generique
    8381                                $data = array();
    8482                                foreach ($content as $champtable => $val) {
     
    124122                        // MODELE
    125123                        $fun = '';
    126 
    127                         if (function_exists($f = 'modeles_'. $modele))
     124                        if (function_exists($f = $type.'_'. $modele . "_revision")
     125                        OR function_exists($f = $modele . "_revision")
     126                        OR function_exists($f = $type . "_revision"))
    128127                                $fun = $f;
    129128                        else switch($type) {
     
    148147                                    $fun = 'revisions_sites';
    149148                                    break;
    150                                
    151                                 # plugin forms&tables
    152                                 case 'forms_donnee':
    153                                         include_spip('inc/forms');
    154                                         $fun = 'Forms_revision_donnee';
    155                                         break;
    156 
    157149                                // cas geres de la maniere la plus standard
    158150                                case 'auteur':
     
    200192        foreach ($modifs as $m) {
    201193                list($type, $modele, $id, $content, $wid) = $modif;
    202 
    203                 //
    204                 // VUE
    205                 //
    206 
    207                 // pour ce qui a une {lang_select} par defaut dans la boucle,
    208                 // la regler histoire d'avoir la bonne typo dans le propre()
    209                 // NB: ceci n'a d'impact que sur le "par defaut" en bas
    210                 if (colonne_table($type, 'lang')) {
    211                         lang_select($a = valeur_colonne_table($type, 'lang', $id));
     194                        $f = charger_fonction($type.'_'.$modele, 'vues', true)
     195                          OR $f = charger_fonction($modele, 'vues', true)
     196                          OR $f = charger_fonction($type, 'vues', true)
     197                          OR $f = 'vues_dist';
     198                        $return[$wid] = $f($type, $modele, $id, $content);
     199        }
     200        echo var2js($return);
     201        exit;
     202}
     203
     204//
     205// VUE
     206//
     207function vues_dist($type, $modele, $id, $content){
     208
     209        // pour ce qui a une {lang_select} par defaut dans la boucle,
     210        // la regler histoire d'avoir la bonne typo dans le propre()
     211        // NB: ceci n'a d'impact que sur le "par defaut" en bas
     212        if (colonne_table($type, 'lang')) {
     213                lang_select($a = valeur_colonne_table($type, 'lang', $id));
     214        } else {
     215                lang_select($a = $GLOBALS['meta']['langue_site']);
     216        }
     217
     218  // chercher vues/article_toto.html
     219  // sinon vues/toto.html
     220  if (find_in_path( ($fond = 'vues/' . $type . '_' . $modele) . '.html')
     221  OR find_in_path( ($fond = 'vues/' . $modele) .'.html')
     222  OR find_in_path( ($fond = 'vues/' . $type) .'.html')) {
     223                $contexte = array(
     224                    'id_' . $type => $id,
     225                    'champ' => $modele,
     226                    'lang' => $GLOBALS['spip_lang']
     227                );
     228                $contexte = array_merge($contexte, $content);
     229                include_spip('public/assembler');
     230                return recuperer_fond($fond, $contexte);
     231  }
     232        // vue par defaut
     233        else {
     234                // Par precaution on va rechercher la valeur
     235                // dans la base de donnees (meme si a priori la valeur est
     236                // ce qu'on vient d'envoyer, il y a nettoyage des caracteres et
     237                // eventuellement d'autres filtres de saisie...)
     238                $valeur = valeur_colonne_table($type, $modele, $id);
     239               
     240                // seul spip core sait rendre les donnees
     241                if (in_array($modele,
     242                  array('chapo', 'texte', 'descriptif', 'ps', 'bio'))) {
     243                        return propre($valeur);
    212244                } else {
    213                         lang_select($a = $GLOBALS['meta']['langue_site']);
    214                 }
    215 
    216             // chercher vues/article_toto.html
    217             // sinon vues/toto.html
    218             if (find_in_path( ($fond = 'vues/' . $type . '_' . $modele) . '.html')
    219             OR find_in_path( ($fond = 'vues/' . $modele) .'.html')
    220             OR find_in_path( ($fond = 'vues/' . $type) .'.html')) {
    221                 $contexte = array(
    222                     'id_' . $type => $id,
    223                     'champ' => $modele,
    224                     'lang' => $GLOBALS['spip_lang']
    225                 );
    226                 $contexte = array_merge($contexte, $content);
    227                 include_spip('public/assembler');
    228                 $return[$wid] = recuperer_fond($fond, $contexte);
    229             }
    230             // vue par defaut
    231             else {
    232                 // Par precaution on va rechercher la valeur
    233                 // dans la base de donnees (meme si a priori la valeur est
    234                 // ce qu'on vient d'envoyer, il y a nettoyage des caracteres et
    235                 // eventuellement d'autres filtres de saisie...)
    236                 $valeur = valeur_colonne_table($type, $modele, $id);
    237 
    238                 // seul spip core sait rendre les donnees
    239                 if (in_array($modele,
    240                 array('chapo', 'texte', 'descriptif', 'ps', 'bio'))) {
    241                     $return[$wid] = propre($valeur);
    242                 } else {
    243                     $return[$wid] = typo($valeur);
    244                 }
    245             }
    246         }
    247 
    248     echo var2js($return);
    249     exit;
     245                        return typo($valeur);
     246                }
     247        }
    250248}
    251249
  • _plugins_/_stable_/crayons/controleurs/forms_donnee.php

    r10200 r10206  
    1010       
    1111        if ($f = charger_fonction($type_form.'_donnee_'.$champ, 'controleurs', true)
    12           OR $f = charger_fonction($type_form.'_donnee_'.$champ, 'controleurs', true) )
     12          OR $f = charger_fonction('forms_donnee_'.$champ, 'controleurs', true)
     13          OR $f = charger_fonction($type_form.'_donnee', 'controleurs', true) )
    1314          return $f($regs,$id_form,$type_form);
    1415       
  • _plugins_/_stable_/crayons/inc/crayons.php

    r10202 r10206  
    9797}
    9898//      var_dump(colonne_table('forum', 'id_syndic')); die();
    99 function forms_donnee_valeur_colonne_table($table,$champ,$id_donnee){
    100         include_spip("inc/forms");
    101         $valeurs = Forms_valeurs($id_donnee,NULL,$champ);
    102         return isset($valeurs[$champ])?$valeurs[$champ]:'';
    103 }
    104 
    10599
    106100function valeur_colonne_table($table, $col, $id) {
  • _plugins_/_stable_/crayons/vues/forms_donnee.html

    r10183 r10206  
    55]
    66#CACHE{0}
    7 <BOUCLE_d(FORMS_DONNEES){id_donnee=#ENV{id_forms_donnee}}><BOUCLE_f(FORMS_CHAMPS){id_form}{champ}>#LESVALEURS</BOUCLE_f></BOUCLE_d>
     7<BOUCLE_d(FORMS_DONNEES){id_donnee}><BOUCLE_f(FORMS_CHAMPS){id_form}{champ}>#LESVALEURS</BOUCLE_f></BOUCLE_d>
Note: See TracChangeset for help on using the changeset viewer.