Subversion Repositories Applications.papyrus

Rev

Rev 1899 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4 jpm 1
<?php
2
/*vim: set expandtab tabstop=4 shiftwidth=4: */
3
// +------------------------------------------------------------------------------------------------------+
4
// | PHP version 4.1                                                                                      |
5
// +------------------------------------------------------------------------------------------------------+
6
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
7
// +------------------------------------------------------------------------------------------------------+
8
// | This library is free software; you can redistribute it and/or                                        |
9
// | modify it under the terms of the GNU Lesser General Public                                           |
10
// | License as published by the Free Software Foundation; either                                         |
11
// | version 2.1 of the License, or (at your option) any later version.                                   |
12
// |                                                                                                      |
13
// | This library is distributed in the hope that it will be useful,                                      |
14
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
15
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                                    |
16
// | Lesser General Public License for more details.                                                      |
17
// |                                                                                                      |
18
// | You should have received a copy of the GNU Lesser General Public                                     |
19
// | License along with this library; if not, write to the Free Software                                  |
20
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
21
// +------------------------------------------------------------------------------------------------------+
1920 alexandre_ 22
// CVS : $Id: pap_script.fonct.php,v 1.6 2008-10-01 08:25:00 alexandre_tb Exp $
4 jpm 23
/**
24
* Les fonctions permettant d'inclure des scripts.
25
*
26
* Ces fonctions permettent d'inclure des scripts, éxécuté côté client, directement dans les pages
27
* des applications. Elles peuvent donc être appelées par les applications
28
* intégrées à Génésia. Par défaut, c'est le Javascript qui est conscidéré commé utilisé.
29
*
30
*@package Papyrus
31
*@subpackage Fonctions
32
//Auteur original :
285 jpm 33
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
34
//Autres auteurs :
35
*@author        Alexandre GRANIER <alexandre@tela-botanica.org>
4 jpm 36
*@author        Laurent COUDOUNEAU <lc@gsite.org>
37
*@copyright     Tela-Botanica 2000-2004
1920 alexandre_ 38
*@version       $Revision: 1.6 $ $Date: 2008-10-01 08:25:00 $
4 jpm 39
// +------------------------------------------------------------------------------------------------------+
40
*/
41
 
42
// +------------------------------------------------------------------------------------------------------+
43
// |                                           LISTE de FONCTIONS                                         |
44
// +------------------------------------------------------------------------------------------------------+
45
 
46
/** Fonction GEN_modifierTypeScript() - Permet de stocker le type des scripts.
47
*
36 jpm 48
* Papyrus permet à une application donnée d'intégrer du code de scripts, exécuté côté client,
4 jpm 49
* directement dans l'entête de la page. Cette fonction définit le type Mime du langage de script utilisé.
50
* En XHTML strict, cette fonction ne devrait pas être utilisé car les scripts devraient être
51
* stocké dans des fichiers séparés.
52
*
53
* @deprecated déprécier dans le cadre d'application XHTML.
54
* @global   string  "script_type" : utilisé pour stocker le type des scripts intégrés.
55
* @param    string  le code à insérer.
56
* @return   void    le code est stocké dans une variable globale.
57
*/
58
function GEN_modifierTypeScript($type = 'text/javascript')
59
{
60
    global $_GEN_commun;
61
 
62
    $_GEN_commun['script_type'] .= $type;
63
}
64
 
65
/** Fonction GEN_stockerCodeScript() - Permet de stocker le code d'un script côté client utilisé par une application.
66
*
36 jpm 67
* Papyrus permet à une application donnée de stocker du code de script, exécuté côté client, qui sera
4 jpm 68
* envoyer directement dans l'entête de la page. En XHTML strict, l'utilisation de cette
69
* fonction est déconseillée. Utiliser plutôt une fichier de scripts séparé qui
70
* sera appelé par l'entête. Cette fonction peut être appelé plusieurs fois. Elle ne
71
* fait que stocker le code dans une variable globale utilisée par Génésia.
72
*
73
* @deprecated déprécier dans le cadre d'application XHTML.
74
* @global   string  "script_code" : utilisé pour stocker le code des scripts.
75
* @param    string  le code à insérer.
76
* @return   void    le code est stocké dans une variable globale.
77
*/
78
function GEN_stockerCodeScript($bloc_code)
79
{
80
    global $_GEN_commun;
81
 
82
    $_GEN_commun['script_code'] .= $bloc_code;
83
}
84
 
85
/** Fonction GEN_stockerFonctionScript() - Permet de stocker des fonctions Javascript.
86
*
87
* Papyrus permet à une application donnée de stocker des fonctions dans un langage de script donné
88
* qui seront envoyer directement dans l'entête de la page. En XHTML strict, l'utilisation de cette
89
* fonction est déconseillée. Utiliser plutôt une fichier de scripts séparé qui
90
* sera appelé par l'entête. Cette fonction peut être appelé plusieurs fois. Elle ne
91
* fait que stocker les fonctions dans une variable (tableau associatif) globale utilisée
92
* par Génésia.
93
*
94
* @deprecated déprécier dans le cadre d'application XHTML.
95
* @global   array   "script_fonction" : utilisé pour stocker le code des fontions du script.
96
* @param    string  la clé du tableau de fontion, par exemple le nom de la fonction à insérer.
97
* @param    string  le code complet de la fonction à insérer.
98
* @return   void    la fonction est stockée dans une variable (tableau associatif) globale.
99
*/
100
function GEN_stockerFonctionScript($id_fonction, $code_fonction)
101
{
102
    global $_GEN_commun;
103
 
104
    if (empty($_GEN_commun['script_fonction'][$id_fonction])) {
105
        $_GEN_commun['script_fonction'][$id_fonction] = $code_fonction;
36 jpm 106
    } else {
107
        if (GEN_DEBOGAGE) {
108
            $_GEN_commun['debogage_info'] .=
109
            'ERREUR Papyrus : cet identifiant de fonction à déjà été enregistré par GEN_stockerFonctionJavascript(). <br />'.
4 jpm 110
            'Identifiant : '. $id_fonction .'<br />'.
111
            'Ligne n° : '. __LINE__ .'<br />'.
36 jpm 112
            'Fichier : '. __FILE__;
113
        }
4 jpm 114
    }
115
}
116
 
117
/** Fonction GEN_stockerFichierScript() - Permet de stocker des fichiers de scripts.
118
*
119
* Papyrus permet à une application donnée de stocker des fichiers de script qui seront
120
* appelés depuis l'entête de la page. En XHTML strict, l'utilisation de cette
121
* fonction est conseillée.
122
* Cette fonction peut être appelé plusieurs fois. Elle ne fait que stocker les chemin des
36 jpm 123
* fichiers dans une variable (tableau associatif) globale utilisée par Papyrus.
4 jpm 124
*
125
* @global   array   "script_fichier" : utilisé pour stocker les chemins des scripts.
126
* @param    string  la clé du tableau de fichiers, par exemple le nom du fichier à insérer.
127
* @param    string  le chemin complet du fichier à insérer.
128
* @param    string  le type MIME du langage de script utilisé dans le fichier à insérer.
129
* @return   void    le chemin du fichier est stocké dans une variable (tableau associatif) globale.
130
*/
1899 alexandre_ 131
function GEN_stockerFichierScript($id_fichier, $chemin_fichier, $type_fichier = 'text/javascript', $attributs = array())
1920 alexandre_ 132
{
133
    if (empty($GLOBALS['_GEN_commun']['script_fichier'][$id_fichier])) {
134
        $GLOBALS['_GEN_commun']['script_fichier'][$id_fichier]['type']   = $type_fichier;
135
        $GLOBALS['_GEN_commun']['script_fichier'][$id_fichier]['chemin'] = $chemin_fichier;
136
        $GLOBALS['_GEN_commun']['script_fichier'][$id_fichier]['attributs'] = $attributs;
1899 alexandre_ 137
    } else {
138
        if (GEN_DEBOGAGE) {
1920 alexandre_ 139
            $GLOBALS['_GEN_commun']['debogage_info'] .=
36 jpm 140
                    'ERREUR Papyrus : cet identifiant de fichier à déjà été enregistré par GEN_stockerFichierJavascript(). <br />'.
141
                    'Identifiant : '. $id_fichier .'<br />'.
142
                    'Ligne n° : '. __LINE__ .'<br />'.
1899 alexandre_ 143
                    'Fichier : '. __FILE__;
36 jpm 144
        }
4 jpm 145
    }
146
}
147
 
148
/** Fonction GEN_afficherScript() - Permet de renvoyer les scripts.
149
*
150
* Cette fonction récupère les scripts stockés dans les variables globales de Papyrus
151
* et le retourne formaté pour l'affichage dans l'entête du squelette du site.
152
* C'est la balise Papyrus <!-- SCRIPTS --> qui permet de situer l'endroit où afficher
153
* les script.
154
*
155
* @global   array   "script_fichier" : utilisé pour stocker les chemins des scripts,
156
* "script_fonction" : utilisé pour stocker le code des fontions et "script_code" :
157
* utilisé pour stocker le code des script.
158
* @return string le code XHTML contenant les scripts à insérer dans l'entête.
159
*/
160
function GEN_afficherScript()
161
{
1920 alexandre_ 162
 
4 jpm 163
    $sortie = '';
164
 
165
    $fichiers = '';
1920 alexandre_ 166
    if (isset($GLOBALS['_GEN_commun']['script_fichier'])) {
167
        while (list($cle, $valeur) = each($GLOBALS['_GEN_commun']['script_fichier'])) {
1899 alexandre_ 168
            $fichiers .= str_repeat(' ', 8).'<script type="'.$valeur['type'].'" src="'.$valeur['chemin'].'"';
169
            if (is_array ($valeur['attributs'])) foreach ($valeur['attributs'] as $attr => $val) $fichiers .= ' '.$attr.'="'.$val.'"';
170
            $fichiers .=  '></script>'."\n";
4 jpm 171
        }
172
        $sortie .= $fichiers;
173
    } else {
174
        $sortie .= '<!-- Aucun script externe -->'."\n";
175
    }
176
 
177
 
178
    $fonctions = '';
1920 alexandre_ 179
    while (list($cle, $valeur) = each($GLOBALS['_GEN_commun']['script_fonction'])) {
4 jpm 180
        $fonctions .= $valeur;
181
    }
182
 
183
    $code = '';
1920 alexandre_ 184
    $code = $GLOBALS['_GEN_commun']['script_code'];
4 jpm 185
 
186
    if ($fonctions != '' || $code != '') {
187
        $sortie .= "\n";
1920 alexandre_ 188
        $sortie .= str_repeat(' ', 8).'<script type="'.$GLOBALS['_GEN_commun']['script_type'].'">'."\n";
4 jpm 189
        $sortie .= str_repeat(' ', 12).'<!--/*--><![CDATA[//><!--'."\n";
190
        $sortie .=      $fonctions."\n";
191
        $sortie .=      $code."\n";
192
        $sortie .= str_repeat(' ', 12).'//--><!]]>'."\n";
193
        $sortie .= str_repeat(' ', 8).'</script>';
194
    } else {
195
        $sortie .= '<!-- Aucun script intégré -->'."\n";
196
    }
197
 
198
    return $sortie;
199
}
200
 
201
 
1584 neiluj 202
/*
203
 * Ajout ou suppression des attributs de la balise BODY
204
 * (ex: pour Google MAPS)
205
 * -
206
 * pour supprimer un attribut, appeler la fonction avec un seul parametre.
207
 */
208
function GEN_AttributsBody($nomAttribut, $valeurAttribut = NULL)
209
{
210
	global $_GEN_commun;
211
 
212
	$_GEN_commun['attributs_body'][$nomAttribut] = $valeurAttribut;
213
 
214
	if($valeurAttribut == NULL && isset($_GEN_commun['attributs_body'][$nomAttribut]))
215
		unset($_GEN_commun['attributs_body'][$nomAttribut]);
216
}
217
 
4 jpm 218
/* +--Fin du code ----------------------------------------------------------------------------------------+
219
*
220
* $Log: not supported by cvs2svn $
1920 alexandre_ 221
* Revision 1.5  2008-08-26 15:32:57  alexandre_tb
222
* ajout du parametre $attributs dans la fonction GEN_stockerFichierScript
223
*
1899 alexandre_ 224
* Revision 1.4  2007-09-06 14:45:06  neiluj
225
* ajout de la balise PAPYRUS_BODY_ATTRIBUTS
226
*
1584 neiluj 227
* Revision 1.3  2005/02/28 11:12:03  jpm
228
* Modification des auteurs.
229
*
285 jpm 230
* Revision 1.2  2004/09/10 16:40:41  jpm
231
* Ajout de messages d'erreurs dans les infos de débogage.
232
*
36 jpm 233
* Revision 1.1  2004/06/15 15:13:07  jpm
234
* Changement de nom et d'arborescence de Genesia en Papyrus.
235
*
4 jpm 236
* Revision 1.6  2004/04/30 16:18:56  jpm
237
* Correction d'un bogue dans les fonctions de gestion des scripts.
238
*
239
* Revision 1.5  2004/04/20 15:25:58  jpm
240
* Ajout de commentaire html à la place d'une chaine vide lors du remplacement de balise Genesia.
241
*
242
* Revision 1.4  2004/04/20 12:18:03  jpm
243
* Ajout d'une fonction permettant de modifier le type de scripts intégrés à une page.
244
*
245
* Revision 1.3  2004/04/20 10:46:58  jpm
246
* Modification des commentaires.
247
*
248
* Revision 1.2  2004/04/05 16:37:08  jpm
249
* Correction de bogues concernant les variables globales javascript.
250
*
251
* Revision 1.1  2004/04/05 12:35:09  jpm
252
* Ajout du fichier contenant les fonctions permettant d'inclure le Javascript dans l'entete des pages générées par Génésia.
253
*
254
*
255
* +-- Fin du code ----------------------------------------------------------------------------------------+
256
*/
257
?>