[spip-dev] calcul_branche

J'ai bien noté que le critère {boucle} est à utiliser avec parcimonie.
Toutefois, il m'est utile à plusieurs reprises dans la même page.
En activant le chronométrage des requetes MySQL ($mysql_profile = true;), j'ai
constaté des redondances entre certaines requêtes (en effet, j'utilise le
critère branche à plusieurs reprises dans la même page).
Aussi, j'ai ajouté à la fonction "calcul_branche", une sorte de mise en cache de
son résultat dans une variable statique. Ceci évite les redondances de requêtes
que j'avais constaté.

function calcul_branche ($generation) {
/*
  if ($generation) {
    $branche[] = $generation;
    while ($generation = calcul_generation ($generation))
      $branche[] = $generation;
    return join(",",$branche);
  } else
    return '0';

*/
static $ciresult=array();

  if ($generation) {
    $cigeneration = $generation;
    if ($ciresult[$generation]) {
      return $ciresult[$generation];
    } else {
      $branche[] = $generation;
      while ($generation = calcul_generation ($generation))
        $branche[] = $generation;
      $ciresult[$cigeneration]=join(",",$branche);
      return $ciresult[$cigeneration];
    }
  } else
    return '0';

}