2005 |
Aurelien |
1 |
<?php
|
2011 |
Aurelien |
2 |
/**
|
|
|
3 |
*
|
|
|
4 |
* Fichier contenant les fonctions d'initialisation de code igniter
|
|
|
5 |
* permettant de l'utiliser en combinaison avec Papyrus.
|
|
|
6 |
*
|
|
|
7 |
*/
|
2007 |
Aurélien |
8 |
|
2011 |
Aurelien |
9 |
/**
|
|
|
10 |
* Initialise la configuration de code igniter pour une application
|
|
|
11 |
* donnée. Normalement, cette fonction ne doit pas être appelée directement
|
|
|
12 |
* @param string le nom de l'application à initialiser
|
|
|
13 |
*/
|
|
|
14 |
function initialiserCodeIgniter($nom_appli) {
|
|
|
15 |
|
2005 |
Aurelien |
16 |
error_reporting(E_ALL);
|
|
|
17 |
|
|
|
18 |
$system_folder = PAP_CHEMIN_RACINE.'papyrus/bibliotheque/system';
|
|
|
19 |
|
|
|
20 |
$application_folder = GEN_CHEMIN_APPLICATION.$nom_appli;
|
|
|
21 |
|
|
|
22 |
if (strpos($system_folder, '/') === FALSE) {
|
|
|
23 |
if (function_exists('realpath') AND @realpath(dirname(__FILE__)) !== FALSE) {
|
|
|
24 |
$system_folder = realpath(dirname(__FILE__)).'/'.$system_folder;
|
|
|
25 |
}
|
|
|
26 |
} else {
|
|
|
27 |
// Swap directory separators to Unix style for consistency
|
|
|
28 |
$system_folder = str_replace("\\", "/", $system_folder);
|
|
|
29 |
}
|
|
|
30 |
|
|
|
31 |
define('EXT', '.'.pathinfo(__FILE__, PATHINFO_EXTENSION));
|
|
|
32 |
define('FCPATH', __FILE__);
|
|
|
33 |
define('SELF', pathinfo(__FILE__, PATHINFO_BASENAME));
|
|
|
34 |
define('BASEPATH', $system_folder.'/');
|
|
|
35 |
|
|
|
36 |
if (is_dir($application_folder)) {
|
|
|
37 |
define('APPPATH', $application_folder.'/');
|
|
|
38 |
} else {
|
|
|
39 |
if ($application_folder == '') {
|
|
|
40 |
$application_folder = 'application';
|
|
|
41 |
}
|
|
|
42 |
define('APPPATH', BASEPATH.$application_folder.'/');
|
|
|
43 |
}
|
|
|
44 |
|
2011 |
Aurelien |
45 |
$GLOBALS[$nom_appli] = array('ci' => true) ;
|
|
|
46 |
}
|
|
|
47 |
|
|
|
48 |
/**
|
|
|
49 |
* Fonction intermédiaire entre Papyrus et code igniter,
|
|
|
50 |
* appelant une application et une fonction donnée
|
|
|
51 |
* @param string le nom de l'application à éxécuter
|
|
|
52 |
* @param string le nom de la fonction à éxécuter (optionnel)
|
|
|
53 |
* @return string le code html à afficher généré par l'application
|
|
|
54 |
*/
|
|
|
55 |
function executerCodeIgniter($nom_appli,$nom_fonction = '') {
|
2005 |
Aurelien |
56 |
|
2011 |
Aurelien |
57 |
// si l'application n'a pas encore été initialisée
|
|
|
58 |
if(!isset($GLOBALS[$nom_appli]['ci']) || $GLOBALS[$nom_appli]['ci'] != true) {
|
|
|
59 |
// on appelle la fonction d'initialisation de code igniter
|
|
|
60 |
initialiserCodeIgniter($nom_appli) ;
|
|
|
61 |
}
|
|
|
62 |
|
|
|
63 |
// code igniter fonctionnant grâce à l'url, faute de mieux, on ajoute les bons
|
|
|
64 |
// paramètres au tableau superglobal GET
|
|
|
65 |
$_GET['c'] = $nom_appli ;
|
|
|
66 |
if($nom_fonction != '') {
|
|
|
67 |
$_GET['m'] = $nom_fonction ;
|
|
|
68 |
}
|
|
|
69 |
|
|
|
70 |
// N'ayant aucun moyen de récupérer directement le html généré par code igniter
|
|
|
71 |
// on le stockera dans une globale qui sera remplie par le controleur appelé.
|
|
|
72 |
$GLOBALS['retour'] = '' ;
|
|
|
73 |
|
|
|
74 |
// enfin on appelle le fichier principal de code igniter
|
|
|
75 |
// TODO: trouver comment faire pour l'appeller plusieurs fois dans une page
|
|
|
76 |
// sans que ça pose de problèmes
|
|
|
77 |
require_once BASEPATH.'codeigniter/CodeIgniter'.EXT;
|
|
|
78 |
|
|
|
79 |
// on renvoie la variable globale remplie par le code
|
|
|
80 |
return $GLOBALS['retour'] ;
|
|
|
81 |
}
|
2005 |
Aurelien |
82 |
|
|
|
83 |
?>
|