Subversion Repositories Applications.papyrus

Rev

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

Rev 1449 Rev 1451
Line 27... Line 27...
27
// | de sécurité.                                                                                         |
27
// | de sécurité.                                                                                         |
28
// |                                                                                                      |
28
// |                                                                                                      |
29
// | Le fait que vous puissiez accéder à cet en-tête signifie que vous avez pris connaissance de la       |
29
// | Le fait que vous puissiez accéder à cet en-tête signifie que vous avez pris connaissance de la       |
30
// | licence CeCILL, et que vous en avez accepté les termes.                                              |
30
// | licence CeCILL, et que vous en avez accepté les termes.                                              |
31
// +------------------------------------------------------------------------------------------------------+
31
// +------------------------------------------------------------------------------------------------------+
32
// CVS : $Id: pap_rendu.class.php,v 1.7.2.1 2007-06-04 15:44:39 alexandre_tb Exp $
32
// CVS : $Id: pap_rendu.class.php,v 1.7.2.2 2007-06-06 14:36:54 jp_milcent Exp $
33
/**
33
/**
34
* Classe : pap_rendu
34
* Classe : pap_rendu
35
*
35
*
36
* Fournit des méthodes pour le rendu.
36
* Fournit des méthodes pour le rendu.
37
*
37
*
Line 40... Line 40...
40
//Auteur original :
40
//Auteur original :
41
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
41
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
42
//Autres auteurs :
42
//Autres auteurs :
43
*@author        Aucun
43
*@author        Aucun
44
*@copyright     Tela-Botanica 2000-2006
44
*@copyright     Tela-Botanica 2000-2006
45
*@version       $Revision: 1.7.2.1 $ $Date: 2007-06-04 15:44:39 $
45
*@version       $Revision: 1.7.2.2 $ $Date: 2007-06-06 14:36:54 $
46
// +------------------------------------------------------------------------------------------------------+
46
// +------------------------------------------------------------------------------------------------------+
47
*/
47
*/
Line 48... Line 48...
48
 
48
 
49
// +------------------------------------------------------------------------------------------------------+
49
// +------------------------------------------------------------------------------------------------------+
Line 64... Line 64...
64
		return $this->bool_balise_appli;
64
		return $this->bool_balise_appli;
65
	}
65
	}
Line 66... Line 66...
66
	
66
	
67
	function parserBaliseApplette($contenu, $bool_appli = false)
67
	function parserBaliseApplette($contenu, $bool_appli = false)
68
	{
68
	{
69
		$noms_applettes = 'IDENTIFICATION|MENU|MOTEUR_RECHERCHE|SELECTEUR_SITES|VOUS_ETES_ICI';// Compatibilité ancienne syntaxe
69
		$noms_applettes = 'IDENTIFICATION|MENU|MOTEUR_RECHERCHE|SELECTEUR_SITES|VOUS_ETES_ICI|BAZAR_CALENDRIER';// Compatibilite ancienne syntaxe
70
		$GLOBALS['_PAPYRUS_']['applette']['nbr_balise'] = preg_match_all(
70
		$GLOBALS['_PAPYRUS_']['applette']['nbr_balise'] = preg_match_all(
71
				'/\{\{(\w+) ?[^}]*\}\}|<!-- (?:'.$GLOBALS['_GEN_commun']['balise_prefixe'].'|'.$GLOBALS['_GEN_commun']['balise_prefixe_client'].')('.$noms_applettes.')[^ ]* -->/',
71
				'/\{\{(\w+) ?[^}]*\}\}|<!-- (?:'.$GLOBALS['_GEN_commun']['balise_prefixe'].'|'.$GLOBALS['_GEN_commun']['balise_prefixe_client'].')('.$noms_applettes.')[^ ]* -->/',
72
				$contenu,
72
				$contenu,
73
				$tab_decoupage,
73
				$tab_decoupage,
74
				PREG_SET_ORDER);
74
				PREG_SET_ORDER);
75
		if ($bool_appli && $GLOBALS['_PAPYRUS_']['applette']['nbr_balise'] > 0) {
75
		if ($bool_appli && $GLOBALS['_PAPYRUS_']['applette']['nbr_balise'] > 0) {
76
			$this->bool_balise_appli = true;
76
			$this->bool_balise_appli = true;
77
		}
77
		}
78
		for ($i = 0; $i < $GLOBALS['_PAPYRUS_']['applette']['nbr_balise']; $i++) {
78
		for ($i = 0; $i < $GLOBALS['_PAPYRUS_']['applette']['nbr_balise']; $i++) {
79
			// Création du nom de l'applette.
79
			// Creation du nom de l'applette.
80
			$applette_nom = '';
80
			$applette_nom = '';
81
			if (!empty($tab_decoupage[$i][1])) {
81
			if (!empty($tab_decoupage[$i][1])) {
82
				$applette_nom = $tab_decoupage[$i][1];
82
				$applette_nom = $tab_decoupage[$i][1];
83
			} else if (!empty($tab_decoupage[$i][2])) {
83
			} else if (!empty($tab_decoupage[$i][2])) {
Line 88... Line 88...
88
			$applette_nom = strtolower(preg_replace('/([a-z0-9])([A-Z])/', '$1_$2', $applette_nom));
88
			$applette_nom = strtolower(preg_replace('/([a-z0-9])([A-Z])/', '$1_$2', $applette_nom));
89
			if (!isset($GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom])) {
89
			if (!isset($GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom])) {
90
				$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['nom'] = $applette_nom;
90
				$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['nom'] = $applette_nom;
Line 91... Line 91...
91
				
91
				
-
 
92
				// Recherche du fichier de l'applette
-
 
93
				$repertoire = '';
-
 
94
				$applette_nom_fichier = '';
-
 
95
				// Spécial Bazar Calendrier!
-
 
96
				if (preg_match('/_/', $applette_nom)) {
-
 
97
					$e = explode ('_', $applette_nom);
-
 
98
					$repertoire = $e[0];
-
 
99
					$applette_nom_fichier = $e[1];
-
 
100
					//trigger_error('<pre>'.$applette_nom_fichier.'-'.$repertoire.'</pre>', E_USER_ERROR);
92
				// Recherche du fichier de l'applette
101
				}
93
				if (file_exists(GEN_CHEMIN_APPLETTE.$applette_nom.GEN_SEP.$applette_nom.'.php')) {
102
				if (file_exists(GEN_CHEMIN_APPLETTE.$applette_nom.GEN_SEP.$applette_nom.'.php')) {
94
					$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['chemin'] = GEN_CHEMIN_APPLETTE.$applette_nom.GEN_SEP.$applette_nom.'.php';
103
					$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['chemin'] = GEN_CHEMIN_APPLETTE.$applette_nom.GEN_SEP.$applette_nom.'.php';	
95
				} else if (file_exists(GEN_CHEMIN_CLIENT.$applette_nom.GEN_SEP.$applette_nom.'.php')) {
104
				} else if (file_exists(GEN_CHEMIN_CLIENT.$applette_nom.GEN_SEP.$applette_nom.'.php')) {
-
 
105
					$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['chemin'] = GEN_CHEMIN_CLIENT.$applette_nom.GEN_SEP.$applette_nom.'.php';						
-
 
106
				} else if (file_exists(GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'_'.$applette_nom_fichier.'.applette.php')) {
-
 
107
					// Syntaxe à privilièger en cas d'intégration d'une applette dans une application
-
 
108
					$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['chemin'] = GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'_'.$applette_nom_fichier.'.applette.php';
-
 
109
				} else if (file_exists(GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.'.$applette_nom_fichier.'.applette.php')) {
-
 
110
					// Syntaxe obsolete
-
 
111
					$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['chemin'] = GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.'.$applette_nom_fichier.'.applette.php';
-
 
112
					$message = 	'MESSAGE Papyrus : le nom du fichier de l\'applette a une syntaxe obsolete'.'<br />'.
-
 
113
								'Nom applette : '.$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['nom'].'<br />'.
-
 
114
								'Chemin fichier applette : '.$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['chemin'].'<br />'.
-
 
115
								'Chemin fichier correct : '.GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'_'.$applette_nom_fichier.'.applette.php'.'<br />';
-
 
116
								
96
					$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['chemin'] = GEN_CHEMIN_CLIENT.$applette_nom.GEN_SEP.$applette_nom.'.php';
117
					trigger_error($message, E_USER_WARNING);						
97
				} else {
118
				} else {
98
					// On supprime l'applette de la liste
119
					// On supprime l'applette de la liste
99
					unset($GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]);
120
					unset($GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]);
100
			        // Ne devrait pas arrêter le programme! Mais instancier le gestionnaire de débogage.
121
			        // Ne devrait pas arreter le programme! Mais instancier le gestionnaire de deboguage.
101
			        $message = 	'ERREUR Papyrus : Impossible de trouver le fichier de l\'applette. <br />'.
122
			        $message = 	'ERREUR Papyrus : Impossible de trouver le fichier de l\'applette. <br />'.
102
			            		'Nom applette : '.$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['nom'].' <br />'.
123
			            		'Nom applette : '.$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['nom'].' <br />'.
103
			            		'Chemin fichier applette : '.$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['chemin'].' <br />'.
124
			            		'Chemin fichier applette : '.$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['chemin'].' <br />'.
104
			            		'Ligne n° : '. __LINE__ .'<br />'.
125
			            		'Ligne n&deg; : '. __LINE__ .'<br />'.
105
			            		'Fichier : '. __FILE__ ;
126
			            		'Fichier : '. __FILE__ ;
106
					trigger_error($message, E_USER_ERROR);
127
					trigger_error($message, E_USER_ERROR);
107
			    }	
-
 
108
				if (file_exists(GEN_CHEMIN_CLIENT.$applette_nom.GEN_SEP.$applette_nom.'.php'))
128
			    }
109
				// Nous incluons l'applette
129
				// Nous incluons l'applette
110
			    if (file_exists($GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['chemin'])) {
130
			    if (file_exists($GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['chemin'])) {
111
			        include_once($GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['chemin']);
131
			        include_once($GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['chemin']);
112
			        // Nous récupérons l'expression régulière de la balise pour l'utiliser lors de l'appel
132
			        // Nous recuperons l'expression reguliere de la balise pour l'utiliser lors de l'appel
113
			        // de la fonction de l'applette. L'appel des fonctions des applettes à lieu après l'appel
133
			        // de la fonction de l'applette. L'appel des fonctions des applettes a lieu apres l'appel
114
			        // de l'application pour permettre à l'appli de modifier certains paramètres (identification, ordre des menus).
134
			        // de l'application pour permettre a l'appli de modifier certains parametres (identification, ordre des menus).
115
			        $GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['applette_balise'] = $GLOBALS['_GEN_commun']['info_applette_balise'];
135
			        $GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['applette_balise'] = $GLOBALS['_GEN_commun']['info_applette_balise'];
116
			        $GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['applette_fonction'] = $GLOBALS['_GEN_commun']['info_applette_nom_fonction'];
136
			        $GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['applette_fonction'] = $GLOBALS['_GEN_commun']['info_applette_nom_fonction'];
117
			    }
137
			    }
118
			}
138
			}
119
			// Récupération des infos sur la balise courrante.
139
			// Recuperation des infos sur la balise courrante.
120
			if (preg_match(	'/'.$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['applette_balise'].'/', $tab_decoupage[$i][0], $applet_arguments)) {
140
			if (preg_match(	'/'.$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['applette_balise'].'/', $tab_decoupage[$i][0], $applet_arguments)) {
121
				$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['balises'][] = $applet_arguments;
141
				$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['balises'][] = $applet_arguments;
122
			} else {
142
			} else {
123
				$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['balises'][] = array();
143
				$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['balises'][] = array();
124
				$message = 	'ERREUR Papyrus : Impossible de récupérer les arguments de l\'applette. <br />'.
144
				$message = 	'ERREUR Papyrus : Impossible de r&eacute;cup&eacute;rer les arguments de l\'applette. <br />'.
125
							'Nom applette : '.$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['nom'].' <br />'.
145
							'Nom applette : '.$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['nom'].' <br />'.
126
							'Chemin fichier applette : '.$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['chemin'].' <br />'.
146
							'Chemin fichier applette : '.$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['chemin'].' <br />'.
127
							'Ligne n° : '. __LINE__ .'<br />'.
147
							'Ligne n&deg; : '. __LINE__ .'<br />'.
128
							'Fichier : '. __FILE__ .'<br />'.
148
							'Fichier : '. __FILE__ .'<br />'.
129
							'<pre>'.print_r($tab_decoupage[$i][0], true).'</pre>'.
149
							'<pre>'.print_r($tab_decoupage[$i][0], true).'</pre>'.
130
							'<pre>'.print_r('/'.$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['applette_balise'].'/', true).'</pre>';
150
							'<pre>'.print_r('/'.$GLOBALS['_PAPYRUS_']['info_applette'][$applette_nom]['applette_balise'].'/', true).'</pre>';
131
				trigger_error($message, E_USER_ERROR);
151
				trigger_error($message, E_USER_ERROR);
132
			}
152
			}
-
 
153
		}
133
		}
154
		//echo '<pre>'.print_r($GLOBALS['_PAPYRUS_']['info_applette'], true).'</pre>';
Line 134... Line 155...
134
	}
155
	}
135
	
156
	
136
	function remplacerBaliseApplette()
157
	function remplacerBaliseApplette()