Subversion Repositories Applications.papyrus

Rev

Rev 1677 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1677 Rev 2150
Line 191... Line 191...
191
    // XHTML image plier-déplier
191
    // XHTML image plier-déplier
Line 192... Line 192...
192
    
192
    
193
    $url->addQueryString('adme_site_id', $adme_site_id);
193
    $url->addQueryString('adme_site_id', $adme_site_id);
194
    $url->addQueryString('adme_menu_id', $adme_menu_id);
194
    $url->addQueryString('adme_menu_id', $adme_menu_id);
-
 
195
    $xhtml_pd = '';
-
 
196
    
-
 
197
    if(!$est_traduction) { 
-
 
198
        $xhtml_pd .= '<input type="checkbox" name="adme_id_menu_deplacement['.$adme_menu_id.']" id="adme_id_menu_deplacement" value="'.$adme_menu_id.'" />  ' ;
-
 
199
    }
195
    $xhtml_pd = '';
200
        
196
    if ($int_deplier != 0) {
201
    if ($int_deplier != 0) {
197
        if ($int_deplier == 1) {
202
        if ($int_deplier == 1) {
198
            // Afficher un -
203
            // Afficher un -
199
            $image_plier_deplier = ADME_IMAGE_MOINS;
204
            $image_plier_deplier = ADME_IMAGE_MOINS;
Line 205... Line 210...
205
            $image_plier_deplier = ADME_IMAGE_PLUS;
210
            $image_plier_deplier = ADME_IMAGE_PLUS;
206
            $alt = ADME_LG_ACTION_DEPLIER_ALT;
211
            $alt = ADME_LG_ACTION_DEPLIER_ALT;
207
            $url->addQueryString('adme_action', ADME_LG_ACTION_DEPLIER);
212
            $url->addQueryString('adme_action', ADME_LG_ACTION_DEPLIER);
208
            $url_plier_deplier = $url->getURL();
213
            $url_plier_deplier = $url->getURL();
209
        }
214
        }
210
        $xhtml_pd = '<a href="'.$url_plier_deplier.'" title="'.$alt.'">'.
215
        $xhtml_pd .= '<a href="'.$url_plier_deplier.'" title="'.$alt.'">'.
211
                        '<img class="'.ADME_CLASS_IMG_PD.'" src="'.$image_plier_deplier.'" alt="'.$alt.'" />'.
216
                        '<img class="'.ADME_CLASS_IMG_PD.'" src="'.$image_plier_deplier.'" alt="'.$alt.'" />'.
212
                    '</a>'.'&nbsp;'."\n";
217
                    '</a>'.'&nbsp;'."\n";
213
    }
218
    }
Line 214... Line 219...
214
    
219
    
Line 441... Line 446...
441
			}
446
			}
Line 442... Line 447...
442
			
447
			
Line 443... Line -...
443
			
-
 
444
	} 
-
 
445
	
448
			
446
	
449
	} 
447
 
450
 
Line 1191... Line 1194...
1191
    $resultat_update = $db->query($requete);
1194
    $resultat_update = $db->query($requete);
1192
    (DB::isError($resultat_update)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete)) : '';
1195
    (DB::isError($resultat_update)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete)) : '';
1193
}
1196
}
Line -... Line 1197...
-
 
1197
 
-
 
1198
 
-
 
1199
/** Fonction ADME_deplacerMenuClassiqueVersSite() - Permet de deplacer des menus classique vers un autre site principal
-
 
1200
*
-
 
1201
* Permet de traduire un menu classique
-
 
1202
*
-
 
1203
* @param  mixed   objet Pear DB de connexion à la base de données.
-
 
1204
* @param  integer  identifiant du site de départ.
-
 
1205
* @param  integer  identifiant du site d'arrivée.
-
 
1206
* @param  mixed identifiant des menus à déplacer.
-
 
1207
* @return
-
 
1208
*/
-
 
1209
function ADME_deplacerMenuClassiqueVersSite($db,$id_site_depart,$id_site_arrivee,$id_menu_a_deplacer) {   
-
 
1210
    
-
 
1211
    // initialisation de l'ordre pour les noeuds à déplacer
-
 
1212
    $ordre_max = 0 ;
-
 
1213
    
-
 
1214
    $id_menu_pour_ordre = reset($id_menu_a_deplacer) ;
-
 
1215
    
-
 
1216
    // on récupère l'ordre maximum des différents sites pour ajouter les menus déplacés à la fin
-
 
1217
    // TODO: rajouter un group by par le type de relation
-
 
1218
    $requete_ordre_menu = 'SELECT MAX(gmr_ordre) as ordre_max '. 
-
 
1219
                          'FROM gen_menu_relation '.
-
 
1220
                          'LEFT JOIN gen_menu '. 
-
 
1221
                          'ON (gen_menu_relation.gmr_id_menu_01 = gen_menu.gm_id_menu '.
-
 
1222
                          'AND gen_menu.gm_ce_site = '.$id_site_arrivee.') '.
-
 
1223
                          'WHERE gmr_id_valeur = 1 '.
-
 
1224
                          'AND gmr_id_menu_02 = 0 ';
-
 
1225
    
-
 
1226
    $resultat_ordre_menu = $db->query($requete_ordre_menu);
-
 
1227
    (DB::isError($resultat_ordre_menu)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete_ordre_menu)) : '';
-
 
1228
    
-
 
1229
    $ligne = $resultat_ordre_menu->fetchRow(DB_FETCHMODE_ORDERED) ;
-
 
1230
    $ordre_max = $ligne[0]; 
-
 
1231
    
-
 
1232
    $fp = fopen('dump.html','a+');   
-
 
1233
       
-
 
1234
        fwrite($fp,'<pre>'.(print_r($id_menu_a_deplacer,true)).'</pre>');                
-
 
1235
    
-
 
1236
        fclose($fp);   
-
 
1237
    
-
 
1238
    while(count($id_menu_a_deplacer) != 0) {
-
 
1239
        
-
 
1240
        $ordre_max++ ;
-
 
1241
        
-
 
1242
        // on extrait et supprime ce premier élément
-
 
1243
        $id_menu_en_cours = array_shift($id_menu_a_deplacer) ;
-
 
1244
        
-
 
1245
        // on déplace le menu dans le nouveau site
-
 
1246
        $requete_deplacement = 'UPDATE gen_menu '.
-
 
1247
                                'SET gm_ce_site = '.$id_site_arrivee.' '.
-
 
1248
                                'WHERE gm_id_menu = '.$id_menu_en_cours.' ' ;
-
 
1249
                                
-
 
1250
        $resultat_deplacement = $db->query($requete_deplacement);
-
 
1251
        (DB::isError($resultat_deplacement)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete_deplacement)) : '';
-
 
1252
        
-
 
1253
        // on lui affecte un ordre dans le nouveau site et un père de 0
-
 
1254
        $requete_deplacement = 'UPDATE gen_menu_relation '.
-
 
1255
                                'SET gmr_ordre = '.$ordre_max.', '.
-
 
1256
                                'gmr_id_menu_02 = 0 '.
-
 
1257
                                'WHERE gmr_id_menu_01 = '.$id_menu_en_cours.' '.
-
 
1258
                                'AND gmr_id_valeur = 1' ;
-
 
1259
                              
-
 
1260
        $resultat_deplacement = $db->query($requete_deplacement);
-
 
1261
        (DB::isError($resultat_deplacement)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete_deplacement)) : '';
-
 
1262
        
-
 
1263
        $fp = fopen('dump.html','a+');   
-
 
1264
       
-
 
1265
        fwrite($fp,'id_menu_a_deplacer avant : '.(print_r($id_menu_a_deplacer,true)));
-
 
1266
        
-
 
1267
        // on fait la différence entre le tableaux des menus à deplacer et le résultat du déplacement des fils pour ne pas déplacer
-
 
1268
        // deux fois des mêmes menus
-
 
1269
        $id_fils_deplaces = array() ;
-
 
1270
        ADME_deplacerFilsEtTraductionsMenuClassique($db,$id_site_arrivee,$id_menu_en_cours,$id_fils_deplaces);
-
 
1271
        $id_menu_a_deplacer = array_diff($id_menu_a_deplacer, $id_fils_deplaces) ;
-
 
1272
                 
-
 
1273
        fwrite($fp,'id_fils_deplaces : '.(print_r($id_fils_deplaces,true))); 
-
 
1274
        
-
 
1275
        fwrite($fp,'id_menu_a_deplacer après : '.(print_r($id_menu_a_deplacer,true)));                
-
 
1276
    
-
 
1277
        fclose($fp);                          
-
 
1278
    }               
-
 
1279
        
-
 
1280
} 
-
 
1281
 
-
 
1282
/** Fonction ADME_deplacerFilsMenuClassique() - Permet de traduire un menu classique
-
 
1283
*
-
 
1284
* Permet de traduire un menu classique
-
 
1285
*
-
 
1286
* @param  mixed   objet Pear DB de connexion à la base de données.
-
 
1287
* @param  integer  identifiant du site d'arrivee.
-
 
1288
* @param  integer identifiant du menu pere.
-
 
1289
* @param  integer identifiant de la relation (père ou traduction).
-
 
1290
* @param  mixed le tableau contenant tous les fils déjà déplacés (attention c'est une référence)
-
 
1291
* @return mixed    un tableau contenant les id des fils deplaces.
-
 
1292
*/
-
 
1293
function ADME_deplacerFilsEtTraductionsMenuClassique($db, $id_site_arrivee, $id_menu_pere, &$tableau_fils) {
-
 
1294
    
-
 
1295
    // Récupération d'infos sur le site principal d'arrivée.
-
 
1296
    $objet_site_arrivee = GEN_lireInfoSitePrincipal($db, $id_site_arrivee);
-
 
1297
    if ($objet_site_arrivee == false) {
-
 
1298
        return ('ERREUR Papyrus Administrateur de Menus : impossible de lire les infos du site d\'arrivée.<br />'.
-
 
1299
            'ID du site : '.$id_site_arrivee.'<br />'.
-
 
1300
            'Ligne n° : '. __LINE__ .'<br />'.
-
 
1301
            'Fichier n° : '. __FILE__ .'<br />');
-
 
1302
    }
-
 
1303
    
-
 
1304
    // on fait la requete qui selectionne tous les enfants du père passé en paramètre
-
 
1305
    $requete_fils = 'SELECT gmr_id_menu_01 '.
-
 
1306
                    'FROM gen_menu_relation '.
-
 
1307
                    'WHERE gmr_id_menu_02 = '.$id_menu_pere.' '.
-
 
1308
                    'AND gmr_id_valeur = 1 '.
-
 
1309
                    'ORDER BY gmr_ordre' ;
-
 
1310
                    
-
 
1311
     $resultat_fils = $db->query($requete_fils);
-
 
1312
    (DB::isError($resultat_fils)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_fils->getMessage(), $requete_fils)) : '';               
-
 
1313
    
-
 
1314
    $id_fils_tab = array();
-
 
1315
    $i = 0 ;
-
 
1316
    
-
 
1317
    $id_fils_string = '' ;
-
 
1318
    
-
 
1319
    // pour chacun des fils
-
 
1320
    while($id_fils = $resultat_fils->fetchRow(DB_FETCHMODE_ORDERED)) {
-
 
1321
        
-
 
1322
        // on ajoute son id au tableau
-
 
1323
        $id_fils_tab[$i] =  $id_fils[0] ;
-
 
1324
        $i++;
-
 
1325
    
-
 
1326
        $tableau_fils[] = $id_fils[0] ;
-
 
1327
               
-
 
1328
        // on concatère l'id du fils pour la requete de déplacement des fils
-
 
1329
        $id_fils_string .= $id_fils[0].',' ;
-
 
1330
    }
-
 
1331
       
-
 
1332
    $id_fils_string = rtrim($id_fils_string,',');
-
 
1333
    
-
 
1334
    if($id_fils_string != '') {     
-
 
1335
        // on déplace tous les fils 
-
 
1336
        $requete_deplacement = 'UPDATE gen_menu SET '.
-
 
1337
                        'gm_ce_site = '.$id_site_arrivee.' '.
-
 
1338
                        'WHERE gm_id_menu IN ('.$id_fils_string.') ';
-
 
1339
        
-
 
1340
        $resultat_deplacement = $db->query($requete_deplacement);
-
 
1341
        (DB::isError($resultat_deplacement)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_deplacement->getMessage(), $requete_deplacement)) : '';                      
-
 
1342
    }
-
 
1343
    
-
 
1344
    // pour chacun des fils
-
 
1345
    foreach($id_fils_tab as $id_fils_en_cours) {
-
 
1346
        
-
 
1347
        // et on rajoute le tableau de ses fils à la suite en relançant la fonction récursivement
-
 
1348
        ADME_deplacerFilsEtTraductionsMenuClassique($db,$id_site_arrivee,$id_fils_en_cours,$tableau_fils) ;
-
 
1349
 
-
 
1350
    }
-
 
1351
    
-
 
1352
    // on déplace toutes les traductions 
-
 
1353
    $requete_deplacement_traductions = 'UPDATE gen_menu '.
-
 
1354
                            'SET gm_ce_site = '.$id_site_arrivee.' '.
-
 
1355
                            'WHERE gm_id_menu IN ( '.
-
 
1356
                                'SELECT gmr_id_menu_01 '. 
-
 
1357
                                'FROM gen_menu_relation '.
-
 
1358
                                'WHERE gmr_id_menu_02 = '.$id_menu_pere.' '.
-
 
1359
                                'AND gmr_id_valeur = 2) ' ;
-
 
1360
        
-
 
1361
        
-
 
1362
    $resultat_deplacement_traductions = $db->query($requete_deplacement_traductions);
-
 
1363
    (DB::isError($resultat_deplacement_traductions)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_deplacement_traductions->getMessage(), $requete_deplacement_traductions)) : '';
-
 
1364
 
-
 
1365
}
1194
 
1366
 
1195
 
1367
 
1196
/** Fonction ADME_traduireMenuClassique() - Permet de traduire un menu classique
1368
/** Fonction ADME_traduireMenuClassique() - Permet de traduire un menu classique
1197
*
1369
*
1198
* Permet de traduire un menu classique
1370
* Permet de traduire un menu classique