'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 .= "
$les_enfants1 | "; echo "", http_img_pack("rien.gif", ' ', "width='20'") ." | \n"; echo "$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 " |