Subversion Repositories Sites.tela-botanica.org

Rev

Rev 376 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 376 Rev 380
1
<?php
1
<?php
2
/**
2
/**
3
* La fonction __autoload() charge dynamiquement les classes trouvées dans le code.
3
* La fonction __autoload() charge dynamiquement les classes trouvées dans le code.
4
*
4
*
5
* Cette fonction est appelée par php5 quand il trouve une instanciation de classe dans le code.
5
* Cette fonction est appelée par php5 quand il trouve une instanciation de classe dans le code.
6
*
6
*
7
*@param string le nom de la classe appelée.
7
*@param string le nom de la classe appelée.
8
*@return void le fichier contenant la classe doit être inclu par la fonction.
8
*@return void le fichier contenant la classe doit être inclu par la fonction.
9
*/
9
*/
10
function __autoload($classe)
10
function __autoload($classe)
11
{
11
{
12
	// Gestion des classes de la bibliothèque et du module "ef_commun"
12
	// Gestion des classes de la bibliothèque et du module "ef_commun"
13
	foreach ($GLOBALS['_SCRIPT_']['chemins_classes'] as $chemin) {
13
	foreach ($GLOBALS['_SCRIPT_']['chemins_classes'] as $chemin) {
14
		if (file_exists($fichier_a_tester = $chemin.$classe.'.class.php')) {
14
		if (file_exists($fichier_a_tester = $chemin.$classe.'.class.php')) {
15
			//echo $fichier."<br>";
15
			//echo $fichier."<br>";
16
			require_once $fichier_a_tester;
16
			require_once $fichier_a_tester;
17
			return null;
17
			return null;
18
		}
18
		}
19
	}
19
	}
20
	
20
	
21
	// Gestion des fichiers présents dans l'include_path (PEAR)
21
	// Gestion des fichiers présents dans l'include_path (PEAR)
22
	$fichier = $classe.'.php';
22
	$fichier = $classe.'.php';
23
	if (substr_count($classe, '_') > 0) {
23
	if (substr_count($classe, '_') > 0) {
24
		// Gestion des classes PEAR
24
		// Gestion des classes PEAR
25
		$tab_chemin = explode('_', $classe);
25
		$tab_chemin = explode('_', $classe);
26
		$fichier = '';
26
		$fichier = '';
27
		$nbre_niveau = count($tab_chemin);
27
		$nbre_niveau = count($tab_chemin);
28
		for ($i = 0; $i < $nbre_niveau; $i++) {
28
		for ($i = 0; $i < $nbre_niveau; $i++) {
29
			if (($nbre_niveau-1) == $i) {
29
			if (($nbre_niveau-1) == $i) {
30
				$fichier .= $tab_chemin[$i].'.php';
30
				$fichier .= $tab_chemin[$i].'.php';
31
			} else {
31
			} else {
32
				$fichier .= $tab_chemin[$i].DIRECTORY_SEPARATOR;
32
				$fichier .= $tab_chemin[$i].DIRECTORY_SEPARATOR;
33
			}
33
			}
34
		}
34
		}
35
	}
35
	}
-
 
36
	
36
	
37
	if (file_exists($fichier)) {
37
	if (include_once $fichier) {
38
		include_once $fichier;
38
		return null;
39
		return null;
39
	}
40
	}
40
}
41
}
41
?>
42
?>