Bonjour,
Je tente de construire une classe perso pour gérer des templates,
mais je me retrouve face à un casse tête que je n'arrive pas à résoudre.
je tente d'imbriquer des blocs, grâce à array et ensuite de les lire.
voici le code :
<?php
class template {
private $template; // contenu fichier
private $fichier; // url fichier
// -------------
public $tableauVaraibleLibre; // tableau des variables libres
// -------------
public $tableauNomBloc; // tableau des noms des blocs
public $tableauVariableBloc; // tableau des varaibles des blocs
public $tableauNomParent; // tableau des blocs parents
// -------------
public $tableauVariableSousBloc; // tableau des variables des sous bocs
// -------------
public function template($template) {
//on vérifie que le fichier template existe
if(is_file($template)) {
$this->template = file_get_contents($template);
$this->fichier = $template;
}
else {
echo 'Template - Erreur. L\'erreur retournée est :
template '.$this->fichier.' introuvable';
}
}
// -------------
public function variableLibre($array) {
$this->tableauVaraibleLibre = $array;
}
// -------------
public function variableBloc($bloc,$array) {
$this->tableauNomBloc[] = $bloc;
$nombreArray = count($array);
for($u=0; $u<$nombreArray; $u++) {
$this->tableauVariableBloc[] = $array[$u];
}
}
// ------------
public function sousbloc($sousB='', $nomSousB='') {
for($i=0; $i<count($this->tableauVariableBloc);$i++) {
foreach($this->tableauVariableBloc[$i] as $val) {
if(is_array($val)) {
$this->tableauNomParent[] = $i;
$this->tableauVariableSousBloc[] = $val;
}
}
}
}
// -------------
public function constructeur() {
}
}
// TEST //
$page = new template('test.html');
$page->variableLibre(array('MESSAGE'=>'un petit test de template', 'TEXTE'=>'un exemple de texte'));
$page->variableBloc('BLOC',
array(
array('TITRE'=>'titre 001', 'CONTENU'=>'contenu 001'),
array('TITRE'=>'titre 002', 'CONTENU'=>'contenu 002'),
array(
array('TITRE'=>'titre 011', 'CONTENU'=>'contenu 011'),
array('TITRE'=>'titre 012', 'CONTENU'=>'contenu 012'),
array(
array('TITRE'=>'titre 111', 'CONTENU'=>'contenu 111')
)
),
array('TITRE'=>'titre 003', 'CONTENU'=>'contenu 003'),
array('TITRE'=>'titre 004', 'CONTENU'=>'contenu 004')
)
);
$page->variableBloc('BLOC-2',
array(
array('TITRE'=>'titre 011', 'CONTENU'=>'contenu 011'),
array('TITRE'=>'titre 012', 'CONTENU'=>'contenu 012'),
array('TITRE'=>'titre 013', 'CONTENU'=>'contenu 013'),
array('TITRE'=>'titre 014', 'CONTENU'=>'contenu 014')
)
);
$page->sousbloc();
$page->constructeur();
print_r($page->tableauVariableSousBloc);
echo '
Nombre de Bloc recu : '. count($page->tableauNomBloc);
echo '
Nombre de tableau de variable recu : '.count($page->tableauVariableBloc);
echo '
Nombre de tableau parent recu : '.count($page->tableauNomParent);
echo '
Nombre de tableau de variable de sous bloc recu : '.count($page->tableauVariableSousBloc);
?>
Voici ce que j'obtiens grâce à print_r($page->tableauVariableSousBloc); :
<?php
Array (
[0] => Array (
[TITRE] => titre 011
[CONTENU] => contenu 011
)
[1] => Array (
[TITRE] => titre 012
[CONTENU] => contenu 012
)
[2] => Array (
[0] => Array (
[TITRE] => titre 111
[CONTENU] => contenu 111
)
)
)
?>
comment aller chercher le array [2] et le remplacer par l'array [2][0]
Cordialement,
JéjéScript.
Si on ne réussi pas du premier coup, il faut se rappeler que le grand chêne aussi au début était un gland !