Subversion Repositories Applications.wikini

Rev

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

Rev 64 Rev 65
1
<?php
1
<?php
2
class WikiApi {
2
class WikiApi {
3
	
3
	
4
	private $page = null;
4
	private $page = null;
5
	private $wikiObjet = null;
5
	public $wikiObjet = null;
6
	private $cheminWiki = null;
6
	private $cheminWiki = null;
7
	private $cheminApi = null;
7
	private $cheminApi = null;
8
	
8
	
9
	public function __construct($cheminWiki, $cheminApi) {
9
	public function __construct($cheminWiki, $cheminApi) {
10
		$this->cheminWiki = $cheminWiki;
10
		$this->cheminWiki = $cheminWiki;
11
		$this->cheminApi = $cheminApi;
11
		$this->cheminApi = $cheminApi;
12
		$this->initialiser();
12
		$this->initialiser();
13
	}
13
	}
14
	
14
	
15
	private function initialiser() {
15
	private function initialiser() {
16
		if ($this->page != null) {
16
		if ($this->page != null) {
17
        	$_REQUEST['wiki'] = $this->page;
17
        	$_REQUEST['wiki'] = $this->page;
18
        }
18
        }
19
		
19
		
20
		ini_set('include_path',ini_get('include_path').':'.$this->cheminWiki.':');
20
		ini_set('include_path',ini_get('include_path').':'.$this->cheminWiki.':');
21
		chdir($this->cheminWiki);
21
		chdir($this->cheminWiki);
22
        include 'api.php';
22
        include 'api.php';
23
        $this->wikiObjet = $wiki;
23
        $this->wikiObjet = $wiki;
24
        chdir($this->cheminApi);
24
        chdir($this->cheminApi);
25
	}
25
	}
26
	
26
	
27
	public function setPageCourante($page) {
27
	public function setPageCourante($page) {
28
		$this->page = $page;
28
		$this->page = $page;
29
	}
29
	}
30
	
30
	
31
	public function chargerClasseWiki($classe) {
31
	public function chargerClasseWiki($classe) {
32
		$chemins = array($this->cheminWiki.'/tools/', $this->cheminWiki.'/formatters/');
32
		$chemins = array($this->cheminWiki.'/tools/', $this->cheminWiki.'/formatters/');
33
		foreach ($chemins as $chemin) {
33
		foreach ($chemins as $chemin) {
34
			$chemin = $chemin.$classe.'.php';
34
			$chemin = $chemin.$classe.'.php';
35
			if (file_exists($chemin)) {
35
			if (file_exists($chemin)) {
36
				require_once $chemin;
36
				require_once $chemin;
37
				$classeTrouvee = true;
37
				$classeTrouvee = true;
38
			}
38
			}
39
		}
39
		}
40
	}
40
	}
41
	
41
	
42
	public function __call($methodeNom, $arguments) {
42
	public function __call($methodeNom, $arguments) {
43
 
43
 
44
        if ($this->wikiObjet == null) {
44
        if ($this->wikiObjet == null) {
45
        	$this->initialiser();
45
        	$this->initialiser();
46
        }
46
        }
47
        	
47
        	
48
        chdir($this->cheminWiki);
48
        chdir($this->cheminWiki);
49
        $retour = call_user_func_array(array($this->wikiObjet, $methodeNom), $arguments);
49
        $retour = call_user_func_array(array($this->wikiObjet, $methodeNom), $arguments);
50
        chdir($this->cheminApi);
50
        chdir($this->cheminApi);
51
        return $retour;
51
        return $retour;
52
    }
52
    }
53
}
53
}
54
?>
54
?>