Bonsoir, j'ai un soucis... enfin vous vous en doutez surement.
Je voudrais dans une variable contenant un "contenu" remplacer touts les
"<!--ICI OBJETLUGIN=1 -->" par un include.
exemple : remplacer <!--ICI OBJETLUGIN=1 --> par include('plugin/inscription/inscription.php');
Voici le code que j'ai fais... mais il ne semble pas marcher, quelqu'un aurait une solution plus simple que la mienne ?
voilà mon code de test (je ne mets pas les instanciations de classe et tout le tralala
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 /*GESTION DES OBJETS*/ //si PLUGIN=4 ALORS $e[0] => PLUGIN et $e[1] => id du plugin dans bdd public function getIdAndTypeObjet($objet) { $e = explode("=",$objet); return $e; } //$this->balises['objet'][0] c'est <!--ICI OBJET: et $this->balises['objet'][1] c'est --> public function getObjetsDansContenu($contenu) { $nbOccurences = preg_match_all('#'.$this->balises['objet'][0].'(.*)'.$this->balises['objet'][1].'#Uis', $contenu, $m); if ($nbOccurences > 0) { for ($i = 0; $i < $nbOccurences; $i++) { $obj = $this->getIdAndTypeObjet($m[1][$i]); $this->objets[] = $obj[1];//mets dans le tableau objet, l'ID de l'objet } return $this->objets; } else return false; } public function parseObjets($contenu, DB $DB) { $objetArray = $this->getObjetsDansContenu($contenu); $i = 0; while ($i < count($objetArray)) { $this->objetInfos = $DB->getInfosObjet($objetArray[$i]);//recupere les infos en bdd de l'objets if($this->objetInfos['TypeObjet_Id'] == 1)//c'est un plugin { $replace = "include_once('".$this->objetInfos[0]['Objets_Parametre'].";')"; $contenu = str_replace('#'.$this->balises['objet'][0].'PLUGIN='.$objetArray[$i].$this->balises['objet'][1].'#Uis',$replace,$contenu); } $i++; } return $contenu; }
Voilà le rendu (code source html)
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 //les variables $langue = $Moteur->returnLangue($User); //DEBUT $article = $Moteur->getArticle('4', $langue, $DB); $test = $Moteur->getObjetsDansContenu($article['ArticleAvoirLangue_Contenu']); $content = $Moteur->parseObjets($article['ArticleAvoirLangue_Contenu'],$DB); //$article['ArticleAvoirLangue_Contenu'] => dans la bdd = <!--ICI OBJET:PLUGIN=1--> test blabla <!--ICI OBJET:IMAGE=2--> echo $content; print_r($test); //FIN
<!--ICI OBJETLUGIN=1--> test blabla <!--ICI OBJET:IMAGE=2-->Array
(
[0] => 1
[1] => 2
)
Merci de votre aide
Partager