Bonsoir,

j'ai pas trop su comment nommé le sujet de mon message mais j'essaierais d'être le plus clair possible ^^

J'utilise des méthodes afin d'afficher les différentes pages de mon site de cette façon :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
// Méthode qui affiche la page d'accueil du site
function afficherAccueil()
{
$a = new Affichage();
$a->set_file('MODELE','index.tpl.php');
$a->set_var('Keywords',KEYWORDS);
}
mais j'aurais voulu centraliser toutes les variables de méta dans une fonction de cette manière :

Code : 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
// Méthode qui affiche la page d'accueil du site
function afficherAccueil()
{
$this->template('index.tpl.php','Accueil');
$a = new Affichage();
$a->set_var('title','test');
}
 
// Méthode qui génère la page HTML en fonction du template
function template($page, $titre)
{
$a = new Affichage();
$a->set_file('MODELE',$page);
 
$a->set_var('title',APPLICATION.' : '.$titre);
$a->set_var('Author',AUTHOR);
$a->set_var('Publisher',PUBLISHER);
$a->set_var('Reply-to',REPLY_TO);
$a->set_var('Description',DESCRIPTION);
$a->set_var('Keywords',KEYWORDS);
$a->set_var('Indentifier-URL',IDENTIFIER_URL);
$a->set_var('Copyright',COPYRIGHT);
$a->set_var('Robots',ROBOTS);
$a->set_var('Revisit-after',REVISIT_AFTER);
}
le problème c'est que de cette façon la variable test ne s'affichera pas sur la page... je sais pas comment faire pour faire appel à la fonction des méta tout en gérant les variables sans la méthode mère !

Quelqu'un m'a dit de déclarer $a en protected, d'en faire appel dans la fonction afficherAccueil, et de l'utiliser comme ça dans la méthode template :

Code : 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
29
30
31
32
33
class Index
{
protected $a;
 
// Méthode qui affiche la page d'accueil du site
function afficherAccueil()
{
$a = new Affichage();
$this->template('index.tpl.php','Index');
$a->set_var('test','test');
}
 
// Méthode qui génère la page HTML en fonction du template
function template($page,$titre)
{
$this->a->set_file('MODELE',$page);
 
$this->a->set_var('title',APPLICATION.' : '.$titre);
$this->a->set_var('Author',AUTHOR);
$this->a->set_var('Publisher',PUBLISHER);
$this->a->set_var('Reply-to',REPLY_TO);
$this->a->set_var('Description',DESCRIPTION);
$this->a->set_var('Keywords',KEYWORDS);
 
$this->a->set_var('Indentifier-URL',IDENTIFIER_URL
);
$this->a->set_var('Copyright',COPYRIGHT);
$this->a->set_var('Robots',ROBOTS);
 
$this->a->set_var('Revisit-after',REVISIT_AFTER);
 
}
}
je dois vraiment pas être doué, car ça me retourne cette erreur :

Fatal error: Call to a member function set_file() on a non-object in index.php on line 23

première ligne de la méthode template, donc toutes les suivantes génèreront les mêmes erreurs

Si vous savez comment faire je suis preneur ^^

Merci !
bonne soirée !