Subversion Repositories Applications.papyrus

Rev

Rev 754 | Rev 790 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
126 jpm 1
<?php
2
/*vim: set expandtab tabstop=4 shiftwidth=4: */
410 ddelon 3
// Copyright (C) 1999-2004 Tela Botanica (accueil@tela-botanica.org)
4
//
5
// Ce logiciel est un programme informatique servant à gérer du contenu et des
6
// applications web.
7
 
8
// Ce logiciel est régi par la licence CeCILL soumise au droit français et
9
// respectant les principes de diffusion des logiciels libres. Vous pouvez
10
// utiliser, modifier et/ou redistribuer ce programme sous les conditions
11
// de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
12
// sur le site "http://www.cecill.info".
13
 
14
// En contrepartie de l'accessibilité au code source et des droits de copie,
15
// de modification et de redistribution accordés par cette licence, il n'est
16
// offert aux utilisateurs qu'une garantie limitée.  Pour les mêmes raisons,
17
// seule une responsabilité restreinte pèse sur l'auteur du programme,  le
18
// titulaire des droits patrimoniaux et les concédants successifs.
19
 
20
// A cet égard  l'attention de l'utilisateur est attirée sur les risques
21
// associés au chargement,  à l'utilisation,  à la modification et/ou au
22
// développement et à la reproduction du logiciel par l'utilisateur étant
23
// donné sa spécificité de logiciel libre, qui peut le rendre complexe à
24
// manipuler et qui le réserve donc à des développeurs et des professionnels
25
// avertis possédant  des  connaissances  informatiques approfondies.  Les
26
// utilisateurs sont donc invités à charger  et  tester  l'adéquation  du
27
// logiciel à leurs besoins dans des conditions permettant d'assurer la
28
// sécurité de leurs systèmes et ou de leurs données et, plus généralement,
29
// à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
30
 
31
// Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
32
// pris connaissance de la licence CeCILL, et que vous en avez accepté les
33
// termes.
34
// ----
767 ddelon 35
// CVS : $Id: adme_general.fonct.php,v 1.13 2006-03-13 21:00:20 ddelon Exp $
126 jpm 36
/**
134 jpm 37
* Contient l'affichage par défaut de l'appli quand aucune actin
126 jpm 38
*
134 jpm 39
* Ce fichier contient les fonctions d'affichage commune à toute l'application Admin Menu.
40
* Nous y trouvons, entre autre, la fonction d'affichage par défaut de l'appli.
126 jpm 41
*
134 jpm 42
*@package Admin_menu
43
*@subpackage Fonctions
126 jpm 44
//Auteur original :
134 jpm 45
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
126 jpm 46
//Autres auteurs :
47
*@author        Aucun
48
*@copyright     Tela-Botanica 2000-2004
767 ddelon 49
*@version       $Revision: 1.13 $ $Date: 2006-03-13 21:00:20 $
126 jpm 50
// +------------------------------------------------------------------------------------------------------+
51
*/
52
 
53
// +------------------------------------------------------------------------------------------------------+
54
// |                                            ENTETE du PROGRAMME                                       |
55
// +------------------------------------------------------------------------------------------------------+
56
 
57
 
58
// +------------------------------------------------------------------------------------------------------+
59
// |                                           LISTE de FONCTIONS                                         |
60
// +------------------------------------------------------------------------------------------------------+
141 jpm 61
/** Fonction ADME_afficherFormPrincipal() - Affichage par défaut.
62
*
63
* Fournit l'affichage par défaut de l'application Admin Menus.
64
*
65
* @param  object objet Pear de connection à la base de données.
66
* @param  object objet Pear représentant l'url de base.
67
* @return string le XHTML par défaut de la page.
68
*/
69
function ADME_afficherFormPrincipal($objet_pear_db, $objet_pear_url, $adme_site_id, $adme_menu_id, $adme_action)
126 jpm 70
{
754 ddelon 71
 
767 ddelon 72
	$id_langue = $GLOBALS['_GEN_commun']['i18n'];//identifiant de la langue choisie
754 ddelon 73
 
126 jpm 74
    //---------------------------------------------------------------------------------------------------------------
75
    // Nous affichons la liste des menus classiques et communs
76
    $retour = '';
754 ddelon 77
 
78
	if (isset($id_langue) && ($id_langue!='')) {
79
		$langue_test=$id_langue;
80
	} else {
81
		$langue_test=GEN_I18N_ID_DEFAUT;
82
	}
83
 
84
    $requete =  'SELECT gs_id_site, gs_code_num, gs_code_alpha, gs_nom, gs_ce_i18n '.
126 jpm 85
                'FROM gen_site, gen_site_relation '.
86
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
754 ddelon 87
                'AND gs_id_site = gsr_id_site_01 '.
126 jpm 88
                'AND gsr_id_valeur = 102 '.// 102 = site "principal"
754 ddelon 89
                'AND gs_ce_i18n = "'.$langue_test.'" '.
367 alex 90
                'ORDER BY gsr_ordre DESC';
754 ddelon 91
 
126 jpm 92
    $resultat = $objet_pear_db->query($requete);
754 ddelon 93
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
126 jpm 94
 
754 ddelon 95
    $liste_site=array();
96
 
97
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
98
    	         // Si le site trouvé est une traduction vers la langue principale, on ne le selectionne pas
99
    			if ($langue_test == GEN_I18N_ID_DEFAUT) {
100
    		  		$requete_est_traduction =   'SELECT gsr_id_site_01 '.
101
	                       'FROM  gen_site_relation '.
102
	                       'WHERE '.$ligne->gs_id_site.' = gsr_id_site_02 ' .
103
	                  	   'AND  gsr_id_site_01 <> gsr_id_site_02 ' .
104
	                       'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction"
105
 
106
		            $resultat_est_traduction = $objet_pear_db->query($requete_est_traduction);
107
		            (DB::isError($resultat_est_traduction))
108
		                ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_est_traduction->getMessage(), $requete_est_traduction))
109
		                : '';
110
 
111
		   			if ( $resultat_est_traduction->numRows() == 0 ) {
112
	    	 			$liste_site[]=$ligne;
113
		            }
114
    			}
115
    			else {
116
    				$liste_site[]=$ligne;
117
    			}
118
    }
119
 
120
    $resultat->free();
121
 
122
 
123
 
124
    // On recherche l'ensemble des site en excluant le site admin (administration de Papyrus).
125
 
126
	if ($langue_test != GEN_I18N_ID_DEFAUT) {
127
 
128
 
129
    // Site ayant commme langue, la langue par defaut
130
	    $requete =  'SELECT gs_id_site, gs_code_num, gs_code_alpha, gs_nom, gs_ce_i18n '.
131
	                'FROM gen_site, gen_site_relation '.
132
	                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
133
	                'AND gs_id_site = gsr_id_site_01 '.
134
	                'AND gsr_id_valeur = 102 '.// 102 = site "principal"
135
	                'AND gs_ce_i18n = "'.GEN_I18N_ID_DEFAUT.'" '.
136
	                'ORDER BY gsr_ordre DESC';
137
 
138
	    $resultat = $objet_pear_db->query($requete);
139
	    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
140
 
141
	    // Est il traduit ? Non, alors affichage
142
 
143
	    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
144
 
145
				if (isset($id_langue) && ($id_langue!='')) {
146
					$langue_test=$id_langue;
147
				} else {
148
					$langue_test=GEN_I18N_ID_DEFAUT;
149
				}
150
 
151
	    				$requete_est_traduction =   'SELECT gsr_id_site_01 '.
152
	                                'FROM  gen_site_relation '.
153
	                                'WHERE '.$ligne->gs_id_site.' = gsr_id_site_02 ' .
154
	                                'AND  gsr_id_site_01 <> gsr_id_site_02 ' .
155
	                                'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction"
156
 
157
 
158
	            $resultat_est_traduction = $objet_pear_db->query($requete_est_traduction);
159
	            (DB::isError($resultat_est_traduction))
160
	                ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_est_traduction->getMessage(), $requete_est_traduction))
161
	                : '';
162
 
163
	            if ( $resultat_est_traduction->numRows() == 0 ) {
164
 
165
 
166
 
167
		    		$requete_traduction =   'SELECT gsr_id_site_01 '.
168
		                                    'FROM  gen_site_relation, gen_site '.
169
		                                    'WHERE '.$ligne->gs_id_site.' = gsr_id_site_01 ' .
170
		                                    'AND gsr_id_site_02 = gs_id_site '.
171
		                                    'AND gs_ce_i18n = "'.$langue_test.'" '.
172
		                                    'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction"
173
 
174
		            $resultat_traduction = $objet_pear_db->query($requete_traduction);
175
		            (DB::isError($resultat_traduction))
176
		                ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_traduction->getMessage(), $requete_traduction))
177
		                : '';
178
 
179
		            if ( $resultat_traduction->numRows() == 0 ) {
180
		            	$liste_site []=$ligne;
181
		            }
182
 
183
		            $resultat_traduction->free();
184
	            }
185
 
186
	    }
187
	    $resultat->free();
188
	}
189
 
126 jpm 190
    //---------------------------------------------------------------------------------------------------------------
191
    // Création du formulaire
192
    // Notes : Quickform semble remplacer les & des &amp; à nouveau par des &amp; solution utiliser str_replace()...
193
    $form =& new HTML_QuickForm('adme_form_sites', 'post', str_replace('&amp;', '&', $objet_pear_url->getUrl()));
194
    $tab_index = 1000;
195
    $squelette =& $form->defaultRenderer();
196
    $squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'{content}'."\n"."\n".'</form>'."\n");
197
    $squelette->setElementTemplate( '{label}'."\n".'{element}'."\n".
198
                                    '<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
199
                                    '<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n");
200
    $partie_site_debut =    '<fieldset>'."\n".
150 jpm 201
                            '<legend>'.ADME_LG_FORM_SITE_TITRE.'</legend>'."\n";
126 jpm 202
    $form->addElement('html', $partie_site_debut);
203
    $id = 'adme_site_id';
204
    $aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'onchange' => 'javascript:this.form.submit();');
148 jpm 205
    $label = '<label for="'.$id.'">'.ADME_LG_FORM_SITE_CHOIX.'</label>';
126 jpm 206
    $objet_select = new HTML_QuickForm_select($id, $label, '', $aso_attributs);
207
    $aso_options = array();
754 ddelon 208
    foreach ($liste_site as $ligne ) {
141 jpm 209
        if (!isset($adme_site_id) || $adme_site_id == 0) {
210
            $adme_site_id = $ligne->gs_id_site;
126 jpm 211
        }
141 jpm 212
        if ($ligne->gs_id_site == $adme_site_id) {
132 jpm 213
            $objet_select->addOption(htmlentities($ligne->gs_nom.' ('.$ligne->gs_code_alpha.')'), $ligne->gs_id_site, 'selected="selected"');
251 jpm 214
            // Attribution du nom du site sur lequel on travaille pour le titre
215
            $site_nom = $ligne->gs_nom;
126 jpm 216
        } else {
132 jpm 217
            $objet_select->addOption(htmlentities($ligne->gs_nom.' ('.$ligne->gs_code_alpha.')'), $ligne->gs_id_site);
126 jpm 218
        }
219
    }
220
    $form->addElement($objet_select);
148 jpm 221
    $form->addElement('submit', 'choisir_site', ADME_LG_FORM_SITE_VALIDER);
126 jpm 222
    $partie_site_fin = "\n".'</fieldset>';
223
    $form->addElement('html', $partie_site_fin);
224
 
225
    // Instanciation des valeurs par défaut du formulaire
141 jpm 226
    $form->setDefaults($adme_site_id);
126 jpm 227
 
148 jpm 228
    $retour .= '<h1>'.ADME_LG_MENU_TITRE.$site_nom.'</h1>'."\n";
126 jpm 229
    $retour .= $form->toHTML()."\n";
230
 
231
    //---------------------------------------------------------------------------------------------------------------
232
    // Gestion des menus classiques
233
    $retour .= '<p>'."\n";
234
    $objet_pear_url_copie = $objet_pear_url;
166 jpm 235
    $objet_pear_url_copie->addQueryString('adme_action', ADME_LG_ACTION_CLASSIQUE_AJOUTER);
141 jpm 236
    $objet_pear_url_copie->addQueryString('adme_site_id', $adme_site_id);
126 jpm 237
    $objet_pear_url_copie->addQueryString('adme_menu_id', 0);
238
    $url_ajout_menu_classique_n1 = $objet_pear_url_copie->getURL();
239
    unset($url_ajout_menu_n1);
240
    $retour .=    '<a href="'.$url_ajout_menu_classique_n1.'" >'.
148 jpm 241
                            ADME_LG_MENU_CLASSIQUE_RACINE.'&nbsp;'.
126 jpm 242
                            '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_NOUVEAU.'" alt="+" />'.
243
                        '</a>'."\n";
244
    $retour .= '</p>'."\n";
245
 
141 jpm 246
    $retour .= ADME_afficherListeMenuClassique($objet_pear_db, $objet_pear_url, $adme_site_id, $adme_menu_id, $adme_action, 0);
126 jpm 247
    //---------------------------------------------------------------------------------------------------------------
248
    // Gestion des menus communs
249
    $retour .=     '<p>'."\n";
250
    $objet_pear_url_copie = $objet_pear_url;
166 jpm 251
    $objet_pear_url_copie->addQueryString('adme_action', ADME_LG_ACTION_COMMUN_AJOUTER);
141 jpm 252
    $objet_pear_url_copie->addQueryString('adme_site_id', $adme_site_id);
126 jpm 253
    $objet_pear_url_copie->addQueryString('adme_menu_id', 0);
254
    $url_ajout_menu_commun_n1 = $objet_pear_url_copie->getURL();
255
    unset($url_ajout_menu_n1);
256
    $retour .=     '<a href="'.$url_ajout_menu_commun_n1.'">'.
148 jpm 257
                            ADME_LG_MENU_COMMUN_RACINE.'&nbsp;'.
126 jpm 258
                            '<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_NOUVEAU.'" alt="+" />'.
259
                        '</a>'."\n";
260
    $retour .=     '</p>'."\n";
141 jpm 261
    $retour .= ADME_afficherListeMenuCommun($objet_pear_db, $objet_pear_url, $adme_site_id, $adme_menu_id, $adme_action, 0);
126 jpm 262
    return $retour;
263
}
141 jpm 264
 
126 jpm 265
// +------------------------------------------------------------------------------------------------------+
266
// |                                            PIED du PROGRAMME                                         |
267
// +------------------------------------------------------------------------------------------------------+
268
 
269
 
270
/* +--Fin du code ----------------------------------------------------------------------------------------+
271
*
272
* $Log: not supported by cvs2svn $
767 ddelon 273
* Revision 1.12  2006/03/02 10:49:49  ddelon
274
* Fusion branche multilinguisme dans branche principale
275
*
754 ddelon 276
* Revision 1.11.2.1  2006/02/28 14:02:11  ddelon
277
* Finition multilinguisme
278
*
279
* Revision 1.11  2005/07/18 16:14:32  ddelon
280
* css admin + menu communs
281
*
422 ddelon 282
* Revision 1.10  2005/07/08 21:57:24  ddelon
283
* Copyright
284
*
410 ddelon 285
* Revision 1.9  2005/05/12 16:51:37  alex
286
* Changement de l'odre d'apparition des sites dans l'administration des menus.
287
*
367 alex 288
* Revision 1.8  2005/01/26 16:18:05  jpm
289
* Correction bogue 221 : mauvais réglage du titre.
290
*
251 jpm 291
* Revision 1.7  2004/11/24 11:31:51  jpm
292
* Ajout d'une contante de langue à la place d'un texte.
293
*
166 jpm 294
* Revision 1.6  2004/11/10 17:26:07  jpm
295
* Fin gestion de la traduction.
296
*
150 jpm 297
* Revision 1.5  2004/11/10 11:58:54  jpm
298
* Mise en place des constantes de traduction de l'appli.
299
*
148 jpm 300
* Revision 1.4  2004/11/09 17:48:35  jpm
301
* Gestion de différentes interfaces d'administration.
302
*
141 jpm 303
* Revision 1.3  2004/11/09 12:37:34  jpm
304
* Fin de gestion des menus et mise en conformité avec la convention de codage.
305
*
134 jpm 306
* Revision 1.2  2004/11/08 17:41:07  jpm
307
* Légères corrections : multisite, corrections SQL.
308
*
132 jpm 309
* Revision 1.1  2004/11/04 12:26:42  jpm
310
* Contient les fonctions d'affichage général de l'appli ADME.
126 jpm 311
*
132 jpm 312
*
126 jpm 313
* +-- Fin du code ----------------------------------------------------------------------------------------+
314
*/
315
?>