Fonction récursive et indentation des éléments

Pierre-Henri
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 13
Inscription: 21 Jan 2010

Fonction récursive et indentation des éléments

Message le Mer Sep 28, 2011 10:50

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: Tout sélectionner
// 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


spout
WRInaute accro
WRInaute accro
 
Messages: 4378
Inscription: 14 Mai 2003

Re: Fonction récursive et indentation des éléments

Message le Mer Sep 28, 2011 13:16

http://www.sitepoint.com/hierarchical-data-database/
Code: Tout sélectionner
echo str_repeat('  ',$level).$row['title']."\n";
 

Pierre-Henri
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 13
Inscription: 21 Jan 2010

Re: Fonction récursive et indentation des éléments

Message le Mer Sep 28, 2011 13:55

Merci pour ta réponse.

pH


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités