Page 1 sur 1

interval et rendu html

Posté : 13 nov. 2011, 19:09
par tyty22
bonjour,

je trouve beaucoup de tuto pour expliquer les intervalles mais personne ne montre comment faire le rendu ce qui me pose aujourd'hui des problèmes.
j'ai une table :
id parent_id lft rght name

je souhaiterai faire une rendu dans une table avec un décalage pour les enfants

ex :

dev
--php
----exemples
----tuto
maison
--liens
--articles
----tuto
j'obtiens bien l'ensembles des resultats dans un array mais comment mettre en forme avec des foreach je suppose ?
merci d'avance.

Re: interval et rendu html

Posté : 13 nov. 2011, 20:52
par stealth35
encore du crosspost ...

Re: interval et rendu html

Posté : 13 nov. 2011, 21:12
par tyty22
encore du crosspost ...
Oui je suis désolé, mais j'ai une vie et un travail et je passe beaucoup d'heure à apprendre tout seul sans personne qui connaît le développement.
Je sais qu'il y a des gens où c'est leur métier et où j'espère que cette question paraîtra simple.
C'est le dernier point qu'il me reste à faire pour réaliser mon livre photo de famille et sans ça je ne préfère pas continuer.
Donc merci de comprendre que j'ai déjà énormément chercher sur le net et passé de nombreuses heures et que je n'y arrive toujours pas.
Merci pour votre compréhension et pour tout post pouvant m'aider de la manière la plus explicite possible.

Re: interval et rendu html

Posté : 15 nov. 2011, 16:12
par tyty22
voilà déjà un début, mais...
   foreach ($categories as $k=>$v){
            //récupère les infos de la rubriques
            
            if ($levelPrevious < $v['Category']['level']) {
                    $r .= str_repeat('<ul>', $v['Category']['level'] - $levelPrevious);
                    $levelPrevious=$v['Category']['level'];
                    //si feuilles on modifie le lien
                    IF($v['Category']['rght'] - $v['Category']['lft'] == 1){
                            $r .= '--'.$v['Category']['name'].'<br />';
                    }
                    else{
                            $r .= '--+'.$v['Category']['name'].'<br />';
                    }
            }
            elseif($levelPrevious > $v['Category']['level']){
                    $r .= str_repeat('</ul>', ++$levelPrevious - $v['Category']['level']);
                    $levelPrevious=$v['Category']['level'];
                    //si feuilles on modifie le lien
                    IF($v['Category']['rght'] - $v['Category']['lft'] == 1){
                            $r .= '--'.$v['Category']['name'].'<br />';
                    }else{
                            $r .= '--+'.$v['Category']['name'].'<br />';
                    }
            }
            else{
                    //si feuilles on modifie le lien
                    IF($v['Category']['rght'] - $v['Category']['lft'] == 1){
                            $r .= '<li>'.$v['Category']['name'].'</li>';
                    }
                    else{
                            $r .= '<li>'.$v['Category']['name'].'</li>';
                    }
                    $levelPrevious=$v['Category']['level'];
            }
    }
Mais ça donne ça donc...
Développement

--+Php
--Code
Liens

--+Maison

--Plans

Ce qui m'embête le plus est de mettre une notion de level. Je souhaiterai faire sans.

Re: interval et rendu html

Posté : 15 nov. 2011, 16:31
par zeus
Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans un forum plus adapté

Re: interval et rendu html

Posté : 15 nov. 2011, 23:29
par tyty22
Bon j'ai trouvé une solution sans la notion de level qui est pas mal mais qui m'oblige à faire pas mal de requête donc si quelqu'un à mieux, merci.

Code : Tout sélectionner

/*on ajout un caractere en fonction du nom d'ancetre*/ for ($i=2;$i <=$v['nbparents']; $i++){ if($v['Category']['parent_id'] != 0){ echo '<span style="margin:3px;color:#979EA3">|-</span>'; } } if($v['Category']['parent_id'] == 0){ echo '-&nbsp;'; } echo $v['Category']['name'].''; echo '<br />';
Ca donne ce que je veux mais au niveau de la requête je suis obligé de faire un select et après un foreach qui prend les différents id. Donc pour 10 rubriques, 10 count.

Merci si qq'un à mieux