Fonction récursive et indentation des éléments

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par Pierre-Henri, 28 Septembre 2011.

  1. Pierre-Henri
    Pierre-Henri Nouveau WRInaute
    Inscrit:
    21 Janvier 2010
    Messages:
    46
    J'aime reçus:
    0
    Bonjour,

    Je travaille actuellement pour l'un de mes clients sur une gestion approfondie des pages de contenu.

    Je développe mon propre CMS que j'adapte au fil des demandes.

    La gestion approfondie des pages inclue la gestion parent-enfant. Ce qui permet de définir telle ou telle page comme étant une sous page.

    Exemple : La page « Réinstallation d'un OS » pourrait être une sous-page de « Dépannage informatique ».

    Ma fonction récursive fonctionne au poil. Elle parcourt bien l'ensemble de l'arborescene et me retourne un array() de toutes mes pages. Cependant, elle ne gère pas l'indentation...

    Comment gérer l'indentation dans cette fonction pour que les noms des sous-pages soient indentés d'un " ", que les sous-sous-pages soient indentées d'un "  ", ...

    Code:
    // Liste pages, nested pages
    function pages_list($parent = 0, &$catlistids = array(), &$indent = '') {
    	global $db;
    	
    	$pages_query = "SELECT pages_id, pages_title, parent_id FROM ".TABLE_PAGES." WHERE parent_id='".$parent."' ORDER BY sort_order ASC";
    	$pages = $db->prepare($pages_query);
    	$pages->Execute();
    	if ($pages->RowCount() > 0) {
    		$pages->setFetchMode(PDO::FETCH_ASSOC);
    			
    		while ($pages_res = $pages->fetch()) {
    		
    			$catlistids[] = array(	'parent' => $pages_res['parent_id'],
    									'id' => $pages_res['pages_id'],
    									'link' => href_link('page', $pages_res['pages_id']),
    									'title' => $indent.$pages_res['pages_title']);
    									
    			pages_list($pages_res['pages_id'], &$catlistids, &$indent);
    		}
    		return $catlistids;
    	}
    	$pages = NULL ;
    }
    Merci par avance pour votre réponse.

    pH
     
  2. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 194
    J'aime reçus:
    333
    http://www.sitepoint.com/hierarchical-data-database/
    PHP:
    <span class="syntaxdefault"><br /></span><span class="syntaxkeyword">echo&nbsp;</span><span class="syntaxdefault">str_repeat</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'&nbsp;&nbsp;'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">$level</span><span class="syntaxkeyword">).</span><span class="syntaxdefault">$row</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'title'</span><span class="syntaxkeyword">].</span><span class="syntaxstring">"\n"</span><span class="syntaxkeyword">;<br />&nbsp;</span><span class="syntaxdefault"></span>
     
  3. Pierre-Henri
    Pierre-Henri Nouveau WRInaute
    Inscrit:
    21 Janvier 2010
    Messages:
    46
    J'aime reçus:
    0
    Merci pour ta réponse.

    pH
     
Chargement...
Similar Threads - Fonction récursive indentation Forum Date
Fonction récursive PHP. Développement d'un site Web ou d'une appli mobile 24 Avril 2021
fonction recursive Développement d'un site Web ou d'une appli mobile 20 Mai 2015
Des adresses qui ne fonctionnent plus... Développement d'un site Web ou d'une appli mobile 6 Novembre 2021
fonctionnement précis outil suppression url search console Débuter en référencement 18 Octobre 2021
PHP / CURL : interrogation page tiers ne fonctionne plus Développement d'un site Web ou d'une appli mobile 2 Octobre 2021
ma redirection ne fonctionne pas URL Rewriting et .htaccess 18 Août 2021
url rewriting ne fonctionne pas chez moi URL Rewriting et .htaccess 4 Août 2021
mon code ne fonctionne pas pour masquer les .php URL Rewriting et .htaccess 31 Juillet 2021
htaccess qui fonctionne partout sauf sur 1 seul PC URL Rewriting et .htaccess 28 Juillet 2021
La fonction mail (PHP) ne passe pas ! Demandes d'avis et de conseils sur vos sites 28 Juin 2021