/** * Recalcule les langues des rubriques et articles * * Redéfinit la langue du site sur les rubriques sans langue spécifiée * (langue_choisie différent de 'oui') * * Redéfinit les langues des articles sans langue spécifiée * (langue_choisie différent de 'oui') en les rebasant sur la langue * de la rubrique parente lorsque ce n'est pas le cas. * * @return void **/ function calculer_langues_rubriques() { // rubriques (recursivite) sql_updateq("spip_rubriques", array("lang" => $GLOBALS['meta']['langue_site'], "langue_choisie" => 'non'), "id_parent=0 AND langue_choisie != 'oui'"); while (calculer_langues_rubriques_etape()) { } // articles $s = sql_select("A.id_article AS id_article, R.lang AS lang", "spip_articles AS A, spip_rubriques AS R", "A.id_rubrique = R.id_rubrique AND A.langue_choisie != 'oui' AND (length(A.lang)=0 OR length(R.lang)>0) AND R.lang<>A.lang"); while ($row = sql_fetch($s)) { $id_article = $row['id_article']; sql_updateq('spip_articles', array("lang" => $row['lang'], 'langue_choisie' => 'non'), "id_article={$id_article}"); } if ($GLOBALS['meta']['multi_rubriques'] == 'oui') { $langues = calculer_langues_utilisees(); ecrire_meta('langues_utilisees', $langues); } // avertir les plugins qui peuvent faire leur mises a jour egalement pipeline('trig_calculer_langues_rubriques', ''); }
function calculer_langues_rubriques() { // rubriques (recursivite) sql_updateq("spip_rubriques", array("lang" => $GLOBALS['meta']['langue_site'], "langue_choisie" => 'non'), "id_parent=0 AND langue_choisie != 'oui'"); while (calculer_langues_rubriques_etape()); // articles $s = sql_select("fils.id_article AS id_article, mere.lang AS lang", "spip_articles AS fils, spip_rubriques AS mere", "fils.id_rubrique = mere.id_rubrique AND fils.langue_choisie != 'oui' AND (fils.lang='' OR mere.lang<>'') AND mere.lang<>fils.lang"); while ($row = sql_fetch($s)) { $id_article = $row['id_article']; sql_updateq('spip_articles', array("lang"=> $row['lang'], 'langue_choisie'=>'non'), "id_article=$id_article"); } // breves $s = sql_select("fils.id_breve AS id_breve, mere.lang AS lang", "spip_breves AS fils, spip_rubriques AS mere", "fils.id_rubrique = mere.id_rubrique AND fils.langue_choisie != 'oui' AND (fils.lang='' OR mere.lang<>'') AND mere.lang<>fils.lang"); while ($row = sql_fetch($s)) { $id_breve = $row['id_breve']; sql_updateq('spip_breves', array("lang"=>$row['lang'], 'langue_choisie'=>'non'), "id_breve=$id_breve"); } if ($GLOBALS['meta']['multi_rubriques'] == 'oui') { $langues = calculer_langues_utilisees(); ecrire_meta('langues_utilisees', $langues); } // avertir les plugins qui peuvent faire leur mises a jour egalement pipeline('trig_calculer_langues_rubriques',''); }