'publie') AND fille.statut_tmp='publie' GROUP BY rub.id_rubrique"); while ($row = spip_fetch_array($r)) { spip_query("UPDATE spip_rubriques SET statut_tmp='publie', date_tmp='".$row['date_h']."' WHERE id_rubrique=".$row['id']); $continuer = true; } } while ($continuer); // "Commit" des modifs spip_query("UPDATE spip_rubriques SET date=date_tmp, statut=statut_tmp"); // // Propager les secteurs // // fixer les id_secteur des rubriques racines spip_query("UPDATE spip_rubriques SET id_secteur=id_rubrique WHERE id_parent=0"); // reparer les rubriques qui n'ont pas l'id_secteur de leur parent do { $continuer = false; $r = spip_query("SELECT fille.id_rubrique AS id, maman.id_secteur AS secteur FROM spip_rubriques AS fille, spip_rubriques AS maman WHERE fille.id_parent = maman.id_rubrique AND fille.id_secteur <> maman.id_secteur"); while ($row = spip_fetch_array($r)) { spip_query("UPDATE spip_rubriques SET id_secteur=".$row['secteur']." WHERE id_rubrique=".$row['id']); $continuer = true; } } while ($continuer); // reparer les articles $r = spip_query("SELECT fille.id_article AS id, maman.id_secteur AS secteur FROM spip_articles AS fille, spip_rubriques AS maman WHERE fille.id_rubrique = maman.id_rubrique AND fille.id_secteur <> maman.id_secteur"); while ($row = spip_fetch_array($r)) spip_query("UPDATE spip_articles SET id_secteur=".$row['secteur']." WHERE id_article=".$row['id']); // reparer les sites $r = spip_query("SELECT fille.id_syndic AS id, maman.id_secteur AS secteur FROM spip_syndic AS fille, spip_rubriques AS maman WHERE fille.id_rubrique = maman.id_rubrique AND fille.id_secteur <> maman.id_secteur"); while ($row = spip_fetch_array($r)) spip_query("UPDATE spip_syndic SET id_secteur=".$row['secteur']." WHERE id_syndic=".$row['id']); // Sauver la date de la derniere mise a jour (pour menu_rubriques) ecrire_meta("date_calcul_rubriques", date("U")); ecrire_metas(); } // // Calculer la langue des sous-rubriques et des articles // function calculer_langues_rubriques_etape() { $s = spip_query ("SELECT fille.id_rubrique AS id_rubrique, mere.lang AS lang FROM spip_rubriques AS fille, spip_rubriques AS mere WHERE fille.id_parent = mere.id_rubrique AND fille.langue_choisie != 'oui' AND mere.lang<>'' AND mere.lang<>fille.lang"); while ($row = spip_fetch_array($s)) { $lang = addslashes($row['lang']); $id_rubrique = $row['id_rubrique']; $t = spip_query ("UPDATE spip_rubriques SET lang='$lang', langue_choisie='non' WHERE id_rubrique=$id_rubrique"); } return $t; } function calculer_langues_rubriques() { // rubriques (recursivite) $langue_site = addslashes(lire_meta('langue_site')); spip_query ("UPDATE spip_rubriques SET lang='$langue_site', langue_choisie='non' WHERE id_parent=0 AND langue_choisie != 'oui'"); while (calculer_langues_rubriques_etape()); // articles $s = spip_query ("SELECT fils.id_article AS id_article, mere.lang AS lang FROM spip_articles AS fils, spip_rubriques AS mere WHERE fils.id_rubrique = mere.id_rubrique AND fils.langue_choisie != 'oui' AND (fils.lang='' OR mere.lang<>'') AND mere.lang<>fils.lang"); while ($row = spip_fetch_array($s)) { $lang = addslashes($row['lang']); $id_article = $row['id_article']; spip_query ("UPDATE spip_articles SET lang='$lang', langue_choisie='non' WHERE id_article=$id_article"); } // breves $s = spip_query ("SELECT fils.id_breve AS id_breve, mere.lang AS lang FROM spip_breves AS fils, spip_rubriques AS mere WHERE fils.id_rubrique = mere.id_rubrique AND fils.langue_choisie != 'oui' AND (fils.lang='' OR mere.lang<>'') AND mere.lang<>fils.lang"); while ($row = spip_fetch_array($s)) { $lang = addslashes($row['lang']); $id_breve = $row['id_breve']; spip_query ("UPDATE spip_breves SET lang='$lang', langue_choisie='non' WHERE id_breve=$id_breve"); } if (lire_meta('multi_rubriques') == 'oui') { // Ecrire meta liste langues utilisees dans rubriques include_ecrire('inc_meta.php3'); $s = spip_query ("SELECT lang FROM spip_rubriques WHERE lang != '' GROUP BY lang"); while ($row = spip_fetch_array($s)) { $lang_utilisees[] = $row['lang']; } if ($lang_utilisees) { $lang_utilisees = join (',', $lang_utilisees); ecrire_meta('langues_utilisees', $lang_utilisees); } else { ecrire_meta('langues_utilisees', ""); } } } function enfant_rub($collection){ global $les_enfants, $couleur_foncee, $lang_dir; global $spip_display, $spip_lang_left, $spip_lang_right, $spip_lang; global $connect_id_auteur; $query2 = "SELECT * FROM spip_rubriques WHERE id_parent='$collection' ORDER BY 0+titre,titre"; $result2 = spip_query($query2); if ($spip_display == 4) $les_enfants .= ""; changer_typo($spip_lang); # remettre la typo de l'interface pour la suite } function sous_enfant_rub($collection2){ global $lang_dir, $spip_lang_dir, $spip_lang_left; $query3 = "SELECT * FROM spip_rubriques WHERE id_parent='$collection2' ORDER BY 0+titre,titre"; $result3 = spip_query($query3); if (spip_num_rows($result3) > 0){ $retour = debut_block_invisible("enfants$collection2")."\n\n\n".fin_block()."\n\n"; } return $retour; } function afficher_enfant_rub($id_rubrique, $afficher_bouton_creer=false) { global $les_enfants, $spip_lang_right; enfant_rub($id_rubrique); $les_enfants2=substr($les_enfants,round(strlen($les_enfants)/2),strlen($les_enfants)); if (strpos($les_enfants2,"
")){ $les_enfants2=substr($les_enfants2,strpos($les_enfants2,"
"),strlen($les_enfants2)); $les_enfants1=substr($les_enfants,0,strlen($les_enfants)-strlen($les_enfants2)); }else{ $les_enfants1=$les_enfants; $les_enfants2=""; } // Afficher les sous-rubriques echo "
 
"; echo ""; echo ""; echo "\n"; echo ""; echo ""; echo "
$les_enfants1", http_img_pack("rien.gif", ' ', "width='20'") ."$les_enfants2  "; if (strlen($les_enfants2) > 0) echo "

"; echo "

"; if ($afficher_bouton_creer) { if ($id_rubrique == "0") icone(_T('icone_creer_rubrique'), "rubriques_edit.php3?new=oui&retour=nav", "secteur-24.gif", "creer.gif"); else icone(_T('icone_creer_sous_rubrique'), "rubriques_edit.php3?new=oui&retour=nav&id_parent=$id_rubrique", "rubrique-24.gif", "creer.gif"); echo "

"; } echo "

"; ////// } ?>