Bonjour, je souhaite utiliser smarty et j'aimerai utiliser mes objets ( ex $access->connecte() ).

J'ai commencé a faire :

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
$smarty->assign("ma_class",$ma_class);

J'ai eu un soucis, les variables sont enregistré en cache. C'est pourquoi j'ai du supprimer la cache :

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
$smarty->caching = false;

Cette solution fonctionne mais j'ai vraiment l'impression de passer totalement a coté des avantages de ce template.

Après avoir recherché , j'ai compris qu'il avait une fonction pour les objet avec la possibilité de limiter les accès à la partie graphique. Soit la fonction
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
$smarty->register_object('access',$access,'connect');
Malheureusement je n'arrive pas a utiliser cette fonction .

J'obtiens :

( ! ) Fatal error: Uncaught exception 'SmartyException' with message 'Call of unknown method 'register_object'.' in C:\wamp\www\Stage\libs\sysplugins\smarty_internal_templatebase.php on line 806
( ! ) SmartyException: Call of unknown method 'register_object'. in C:\wamp\www\Stage\libs\sysplugins\smarty_internal_templatebase.php on line 806

Le code complet:

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
....
$smarty = new Smarty;
 
class access{
 
private $id_client;
 
function __construct() {
	if(isset($_SESSION['id_client']))
		$this->id_client=$_SESSION['id_client'];
	else 
		$this->id_client=-1;
 
    }
 
public function connex(){
	return rand(1,5); //c'est juste pour le test
}
 
 
 
}
$access =new access();
$smarty->register_object('access',$access,'connex');
 
....
$smarty->display('index.tpl');

Code Smarty : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Petit test<b>{$access->connex()}</b>

Merci d'avance pour votre aide.