Subversion Repositories Applications.papyrus

Rev

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

Rev 433 Rev 434
Line 19... Line 19...
19
// |                                                                                                      |
19
// |                                                                                                      |
20
// | You should have received a copy of the GNU General Public License                                    |
20
// | You should have received a copy of the GNU General Public License                                    |
21
// | along with Foobar; if not, write to the Free Software                                                |
21
// | along with Foobar; if not, write to the Free Software                                                |
22
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
22
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
23
// +------------------------------------------------------------------------------------------------------+
23
// +------------------------------------------------------------------------------------------------------+
24
// CVS : $Id: integrateur_wikini.php,v 1.1 2005-08-18 10:20:07 ddelon Exp $
24
// CVS : $Id: integrateur_wikini.php,v 1.2 2005-08-25 08:59:12 ddelon Exp $
25
/**
25
/**
26
* Integrateur de page Wikini
26
* Integrateur de page Wikini
27
*
27
*
28
* Application permettant d'intégrer des pages wikini dans Papyrus.
28
* Application permettant d'intégrer des pages wikini dans Papyrus.
29
*
29
*
Line 31... Line 31...
31
//Auteur original :
31
//Auteur original :
32
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
32
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
33
//Autres auteurs :
33
//Autres auteurs :
34
*@author        Aucun
34
*@author        Aucun
35
*@copyright     Tela-Botanica 2000-2004
35
*@copyright     Tela-Botanica 2000-2004
36
*@version       $Revision: 1.1 $ $Date: 2005-08-18 10:20:07 $
36
*@version       $Revision: 1.2 $ $Date: 2005-08-25 08:59:12 $
37
// +------------------------------------------------------------------------------------------------------+
-
 
38
*/
37
*
39
 
-
 
40
// +------------------------------------------------------------------------------------------------------+
38
// +------------------------------------------------------------------------------------------------------+
41
// |                                            ENTETE du PROGRAMME                                       |
39
// |                                            ENTETE du PROGRAMME                                       |
42
// +------------------------------------------------------------------------------------------------------+
40
// +------------------------------------------------------------------------------------------------------+
43
/** Inclusion de la classe PEAR de gestion des URL. */
41
/** Inclusion de la classe PEAR de gestion des URL. */
44
require_once 'Net/URL.php';
42
require_once 'Net/URL.php';
Line 48... Line 46...
48
/** Inclusion du fichier permettant d'encoder du texte mais pas les balises XHTML.*/
46
/** Inclusion du fichier permettant d'encoder du texte mais pas les balises XHTML.*/
49
require_once IW_CHEMIN_BIBLIO.'iw_encodage.fonct.php';
47
require_once IW_CHEMIN_BIBLIO.'iw_encodage.fonct.php';
50
/** Inclusion du fichier permettant d'inclure les données dans du XHTML.*/
48
/** Inclusion du fichier permettant d'inclure les données dans du XHTML.*/
51
require_once IW_CHEMIN_BIBLIO.'iw_affichage_xhtml.fonct.php';
49
require_once IW_CHEMIN_BIBLIO.'iw_affichage_xhtml.fonct.php';
Line -... Line 50...
-
 
50
 
-
 
51
global $wiki;
-
 
52
global $wiki_p;
-
 
53
 
-
 
54
if ( ! isset( $_REQUEST['wiki'] ) ) {
-
 
55
    $_REQUEST['wiki'] = $GLOBALS['_GEN_commun']['info_application']->page;
-
 
56
}
-
 
57
 
-
 
58
$server=$_SERVER['PHP_SELF'];
-
 
59
$_SERVER['PHP_SELF']="wakka.php";
-
 
60
 
-
 
61
// Utilise le wakkaconfig de la racine ...
-
 
62
// TODO : generer un wakkaconfig en fonction des parametres, dans un temp et l'ecrire
-
 
63
// juste avant ... : bof (car conflits possibles).
-
 
64
// Ou alors : on utilise un wakkaconfig generique à minima ...
52
 
65
// Dans tous les cas, il faut gerer le WakaConfig Generique !
-
 
66
// Prevoir de revoir la contrib menu ... qui doit être switchable, ou plutot,
-
 
67
// Customiser son menu avec papyrus ...
-
 
68
 
-
 
69
ob_start();
-
 
70
include_once '/home/david/workspace/papyrus/wikini/wikini_01/wakka.php';
-
 
71
ob_end_clean();
-
 
72
 
-
 
73
$_SERVER['PHP_SELF']=$server;
-
 
74
 
-
 
75
 
-
 
76
// On surcharge la classe Wiki pour en faire ce qu'on en veut
53
/** Inclusion du fichier permettant l'utilisation de la classe wiki.*/
77
Class Wiki_Papyrus extends Wiki {
-
 
78
    function Format($text, $formatter = "wakka") {
-
 
79
		return $this->IncludeBuffered("/home/david/workspace/papyrus/wikini/wikini_01/formatters/".$formatter.".php", "<i>Impossible de trouver le formateur \"$formatter\"</i>", compact("text")); 
-
 
80
	}
-
 
81
	function Header() {
-
 
82
		
-
 
83
		$sortie='';
-
 
84
		$sortie.='<h1 class="wiki_name">';
-
 
85
		// Todo : Initialiser : wakka_nom
-
 
86
		$sortie.= $this->config["wakka_name"];
-
 
87
		$sortie.='</h1>';
-
 
88
		$sortie.='<h1 class="page_name">';
-
 
89
		$sortie.='<a href="';
-
 
90
		$sortie.=$this->config["base_url"];
-
 
91
		$sortie.='RechercheTexte&amp;phrase=';
-
 
92
		$sortie.=htmlentities($this->GetPageTag());
-
 
93
		$sortie.='">';
-
 
94
		$sortie.=htmlentities($this->GetPageTag()); 
-
 
95
		$sortie.='</a>';
-
 
96
		$sortie.='</h1>';
-
 
97
 
-
 
98
		$sortie.='<div class="header">';
-
 
99
		$sortie.= $this->ComposeLinkToPage($this->config["root_page"]).'::';
-
 
100
		$sortie.= $this->config["navigation_links"] ? $this->Format($this->config["navigation_links"])." :: \n" : "";
-
 
101
		$sortie.='Vous &ecirc;tes ';
-
 
102
		$sortie.= $this->Format($this->GetUserName());
-
 
103
		if ($user = $this->GetUser()) { 
-
 
104
			$sortie.="(<a href=\"".$this->config["base_url"]."ParametresUtilisateur&amp;action=logout\">D&eacute;connexion</a>)\n";
-
 
105
		}
-
 
106
		$sortie.='</div>';
-
 
107
		return $sortie;
-
 
108
	}
-
 
109
	
-
 
110
	function Footer() {
-
 
111
		return;
-
 
112
	}	
-
 
113
}
Line 54... Line 114...
54
require_once IW_CHEMIN_BIBLIO_WIKINI.'wakka.php';
114
 
55
 
115
 
56
// Appel du fichier de traduction des textes de l'application Integrateur Wikini
116
// Appel du fichier de traduction des textes de l'application Integrateur Wikini
57
if (file_exists(IW_CHEMIN_LANGUES.'iw_langue_'.IW_I18N.'.inc.php')) {
117
if (file_exists(IW_CHEMIN_LANGUES.'iw_langue_'.IW_I18N.'.inc.php')) {
58
    /** Inclusion du fichier de traduction de l'application Integrateur Wikini. */
118
    /** Inclusion du fichier de traduction de l'application Integrateur Wikini. */
59
    include_once IW_CHEMIN_LANGUES.'iw_langue_'.IW_I18N.'.inc.php';
119
    include_once IW_CHEMIN_LANGUES.'iw_langue_'.IW_I18N.'.inc.php';
60
} else {
120
} else {
61
    /** Inclusion du fichier de traduction fr par défaut. */
121
    /** Inclusion du fichier de traduction fr par défaut. */
-
 
122
    include_once IW_CHEMIN_LANGUES.'iw_langue_fr.inc.php';
-
 
123
}
62
    include_once IW_CHEMIN_LANGUES.'iw_langue_fr.inc.php';
124
 
63
}
125
 
64
// +------------------------------------------------------------------------------------------------------+
126
// +------------------------------------------------------------------------------------------------------+
65
// |                                            CORPS du PROGRAMME                                        |
127
// |                                            CORPS du PROGRAMME                                        |
66
// +------------------------------------------------------------------------------------------------------+
128
// +------------------------------------------------------------------------------------------------------+
Line 70... Line 132...
70
*
132
*
71
* @return  string  du code XHTML correspondant au contenu renvoyé par l'application.
133
* @return  string  du code XHTML correspondant au contenu renvoyé par l'application.
72
*/
134
*/
73
function afficherContenuCorps()
135
function afficherContenuCorps()
74
{
136
{
-
 
137
	global $wiki;
-
 
138
	
-
 
139
	$sortie='';
-
 
140
	
75
    $wakkaConfig = $GLOBALS['wikini_config_defaut'];
141
    $wakkaConfig = $GLOBALS['wikini_config_defaut'];
76
    
-
 
77
    // Démarrage de session php
-
 
78
    //session_start();
-
 
79
    
-
 
80
    // Récupération du nom de la page wikini recherchée
-
 
81
    if ( ! isset( $_REQUEST['wiki'] ) ) {
142
    $wiki  = new Wiki_Papyrus($wakkaConfig);
82
        $GLOBALS['wiki'] = $GLOBALS['_GEN_commun']['info_application']->page;
-
 
83
    } else {
-
 
84
        $GLOBALS['wiki'] = $_REQUEST['wiki'];
-
 
85
    }
-
 
86
    
143
 
87
    // Gestion de la variable de session "linktracking"
144
	// Gestion de la variable de session "linktracking"
88
    if ( ! isset( $_SESSION['linktracking'] ) ) {
145
    if ( ! isset( $_SESSION['linktracking'] ) ) {
89
        $_SESSION['linktracking'] = 1;
146
        $_SESSION['linktracking'] = 1;
90
    }
147
    }
91
    
148
 
92
    // Suppression des slash.
149
    // Suppression des slash.
93
    $wiki = preg_replace("/^\//", '', $GLOBALS['wiki']);
150
    $_REQUEST['wiki'] = preg_replace("/^\//", '',  $_REQUEST['wiki']);
94
    
151
 
95
    // split into page/method
152
    // split into page/method
96
    if ( preg_match( "#^(.+?)/(.*)$#", $GLOBALS['wiki'], $matches ) ) {
153
    if ( preg_match( "#^(.+?)/(.*)$#",  $_REQUEST['wiki'], $matches ) ) {
97
        list(, $page, $method) = $matches;
154
        list(, $page, $method) = $matches;
98
    } else if ( preg_match( "#^(.*)$#", $GLOBALS['wiki'], $matches ) ) {
155
    } else if ( preg_match( "#^(.*)$#",  $_REQUEST['wiki'], $matches ) ) {
99
        list(, $page) = $matches;
156
        list(, $page) = $matches;
100
    }
157
    }
Line 101... Line -...
101
    
-
 
102
    // Création de l'objet Wiki
-
 
103
    $GLOBALS['wiki'] = new Wiki( $GLOBALS['wikini_config_defaut'] );
-
 
104
    
158
    
105
    // Vérification de la méthode d'affichage employée!
159
    // Vérification de la méthode d'affichage employée!
106
    if ( ! isset( $method ) ) {
160
    if ( ! isset( $method ) ) {
107
        $method = '';
161
        $method = '';
108
    }
162
    }
109
    
163
		
110
    //Récupération du contenu de la page Wikini
-
 
Line 111... Line 164...
111
    $sortie =  remplacerEntiteHTLM('<div id="wikini_page">'."\n".$GLOBALS['wiki']->Run($page, $method).'</div>'."\n");
164
    //Récupération du contenu de la page Wikini
-
 
165
    
-
 
166
    ob_start();
-
 
167
    
-
 
168
    $server=$_SERVER['PHP_SELF'];
-
 
169
	$_SERVER['PHP_SELF']="wakka.php";
-
 
170
    
-
 
171
	$wiki->Run($page, $method);
-
 
172
    
-
 
173
    $_SERVER['PHP_SELF']=$server;
-
 
174
    
-
 
175
    $sortie.= ob_get_contents();
-
 
176
    ob_end_clean();
-
 
177
 
-
 
178
 
-
 
179
 
-
 
180
	return remplacerEntiteHTLM("<div id=\"wikini_page\" ondblclick=\"document.location='".$wiki->href("edit")."';"."\">"."\n".$sortie.'</div>'."\n"); 
112
    
181
			
Line -... Line 182...
-
 
182
		
-
 
183
}
113
    return $sortie;
184
 
114
}
185
 
115
 
186
// TODO : qu'affiche-t-on en pied ?
116
/** Fonction afficherContenuPied() - Fonction appelé par le gestionnaire Papyrus.
187
/** Fonction afficherContenuPied() - Fonction appelé par le gestionnaire Papyrus.
117
*
188
*
118
* Elle retourne le pied de l'application.
189
* Elle retourne le pied de l'application.
119
*
190
*
120
* @return  string  du code XHTML correspondant au pied renvoyé par l'application.
191
* @return  string  du code XHTML correspondant au pied renvoyé par l'application.
121
*/
192
*/
122
function afficherContenuPied()
193
function afficherContenuPied()
123
{
-
 
124
    return inclusion_html('pied_page');
-
 
125
}
-
 
126
 
-
 
127
// +------------------------------------------------------------------------------------------------------+
-
 
128
// |                                            PIED du PROGRAMME                                         |
-
 
129
// +------------------------------------------------------------------------------------------------------+
-
 
130
 
-
 
131
 
-
 
132
 
-
 
133
/* +--Fin du code ----------------------------------------------------------------------------------------+
-
 
134
*
-
 
135
* $Log: not supported by cvs2svn $
-
 
136
* Revision 1.3  2005/05/19 15:22:46  jpm
-
 
137
* Ajout du remplacement des & par des &amp;
-
 
138
*
-
 
139
* Revision 1.2  2005/05/19 13:17:02  jpm
-
 
140
* Ajout d'une balise div pour encadre le contenu du wikini.
-
 
141
*
-
 
142
* Revision 1.1  2005/03/02 17:47:05  jpm
-
 
143
* Ajout des fichiers necessaires à l'intégrateur de wikini.
-
 
144
*
-
 
145
*
194
{
146
* +-- Fin du code ----------------------------------------------------------------------------------------+
195
    return inclusion_html('pied_page');