Browse Source

mauvais déclenchement du statut publié pour un secteur, et optimisation de 10537

2.0
Committo,Ergo:sum 16 years ago
parent
commit
99f5497972
  1. 6
      ecrire/action/editer_article.php
  2. 9
      ecrire/action/editer_rubrique.php
  3. 12
      ecrire/inc/rubriques.php

6
ecrire/action/editer_article.php

@ -155,15 +155,15 @@ function instituer_article($id_article, $c, $calcul_rub=true) {
include_spip('inc/rubriques');
include_spip('inc/modifier');
$s = sql_select("statut, id_rubrique", "spip_articles", "id_article=$id_article");
$row = sql_fetch($s);
$row = sql_fetsel("statut, id_rubrique", "spip_articles", "id_article=$id_article");
$id_rubrique = $row['id_rubrique'];
$statut_ancien = $statut = $row['statut'];
$champs = array();
$date = _request('date', $c);
$s = _request('statut', $c);
if ($s AND _request('statut', $c) != $statut) {
if ($s AND $s != $statut) {
if (autoriser('publierdans', 'rubrique', $id_rubrique))
$statut = $champs['statut'] = $s;
else if (autoriser('modifier', 'article', $id_article) AND $s != 'publie')

9
ecrire/action/editer_rubrique.php

@ -120,9 +120,10 @@ function revisions_rubriques($id_rubrique, $c=false) {
// Deplacement d'une rubrique publiee ==> chgt general de leur statut
if ($statut_ancien == 'publie')
calculer_rubriques_if($old_parent, array('id_rubrique' => $id_parent), $statut_ancien);
// Creation ou deplacement d'une rubrique
// Creation ou deplacement d'une rubrique non publiee
// invalider le cache de leur menu
elseif (!$statut_ancien || $old_parent!=$id_parent)
calculer_rubriques();
effacer_meta("date_calcul_rubriques");
calculer_langues_rubriques();
@ -154,8 +155,8 @@ function editer_rubrique_breves($id_rubrique, $id_parent, $c=false)
if (!$t) return true;
$t = (_request('confirme_deplace', $c) <> 'oui');
if ($t) return false;
$id_secteur = sql_fetsel("id_secteur", "spip_rubriques", "id_rubrique=$id_parent");
if ($id_secteur= $id_secteur['id_secteur'])
$id_secteur = sql_getfetsel("id_secteur", "spip_rubriques", "id_rubrique=$id_parent");
if ($id_secteur)
sql_updateq("spip_breves", array("id_rubrique" => $id_secteur), "id_rubrique=$id_rubrique");
return true;
}

12
ecrire/inc/rubriques.php

@ -51,13 +51,13 @@ function calculer_rubriques_if ($id_rubrique, $modifs, $statut_ancien='')
// http://doc.spip.org/@publier_branche_rubrique
function publier_branche_rubrique($id_rubrique)
{
$id_pred = $id_rubrique;
while ($r = sql_getfetsel('id_parent', 'spip_rubriques AS R', "R.id_rubrique=$id_pred AND R.statut != 'publie'")) {
do {
$id_parent = sql_getfetsel('id_parent', 'spip_rubriques AS R', "R.id_rubrique=$id_pred AND R.statut != 'publie'");
if (id_parent === NULL) break;
sql_update('spip_rubriques', array('statut'=>"'publie'", 'date'=>'NOW()'), "id_rubrique=$id_rubrique");
$id_rubrique = $id_parent;
} while ($id_rubrique);
sql_update('spip_rubriques', array('statut'=>"'publie'", 'date'=>'NOW()'), "id_rubrique=$id_pred");
if (!($id_pred = $r)) break;
}
# spip_log(" publier_branche_rubrique($id_rubrique $id_pred");
return $id_pred != $id_rubrique;
}

Loading…
Cancel
Save