boucle dite recursive // // http://doc.spip.org/@boucle_BOUCLE_dist function boucle_BOUCLE_dist($id_boucle, &$boucles) { return calculer_boucle($id_boucle, $boucles); } // // // // http://doc.spip.org/@boucle_HIERARCHIE_dist function boucle_HIERARCHIE_dist($id_boucle, &$boucles) { $boucle = &$boucles[$id_boucle]; $id_table = $boucle->id_table . ".id_rubrique"; // Si la boucle mere est une boucle RUBRIQUES il faut ignorer la feuille // sauf en presence du critere {tout} (vu par phraser_html) // ou {id_article} qui positionne aussi le {tout} $boucle->hierarchie = 'if (!($id_rubrique = intval(' . calculer_argument_precedent($boucle->id_boucle, 'id_rubrique', $boucles) . ")))\n\t\treturn '';\n\t" . '$hierarchie = ' . (isset($boucle->modificateur['tout']) ? '",$id_rubrique"' : "''") . ";\n\t" . 'while ($id_rubrique = sql_getfetsel("id_parent","spip_rubriques","id_rubrique=" . $id_rubrique,"","","", "", $connect)) { $hierarchie = ",$id_rubrique$hierarchie"; } if (!$hierarchie) return ""; $hierarchie = substr($hierarchie,1);'; $boucle->where[]= array("'IN'", "'$id_table'", '"($hierarchie)"'); $order = "FIELD($id_table, \$hierarchie)"; if (!isset($boucle->default_order[0]) OR $boucle->default_order[0] != " DESC") $boucle->default_order[] = "\"$order\""; else $boucle->default_order[0] = "\"$order DESC\""; return calculer_boucle($id_boucle, $boucles); } ?>