Skip to content
Extraits de code Groupes Projets
Valider 23dea242 rédigé par RastaPopoulos's avatar RastaPopoulos Validation de cerdic
Parcourir les fichiers

Dans l'API générique pour tout objet : passer à calculer_rubrique_if aussi...

Dans l'API générique pour tout objet : passer à calculer_rubrique_if aussi l'info de quel objet on vient de modifié… C'est quand même une fonction qui teste une modif qui vient d'être effectuée, et on n'avait pas l'info de quoi. Du coup ça permet de tester les vrais statuts considérés publiés de CET objet précis, pas un truc en dur.
parent 78c36e40
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -501,7 +501,13 @@ function objet_editer_heritage($objet, $id, $id_rubrique, $statut, $champs, $con
include_spip('inc/rubriques');
//$postdate = ($GLOBALS['meta']["post_dates"] == "non" AND isset($champs['date']) AND (strtotime($champs['date']) < time()))?$champs['date']:false;
$postdate = false;
calculer_rubriques_if($id_rubrique, $champs, $statut, $postdate);
// On rajoute les infos de l'objet
$infos = array(
'objet' => $objet,
'id_objet' => $id,
'statut_ancien' => $statut,
);
calculer_rubriques_if($id_rubrique, $champs, $infos, $postdate);
}
}
......
......@@ -46,16 +46,43 @@ if (!defined('_ECRIRE_INC_VERSION')) {
* Peut avoir 2 index, 'statut' étant obligatoire :
* - statut : indique le nouveau statut de la rubrique
* - id_rubrique : indiquer la rubrique dans laquelle on déplace la rubrique (son nouveau parent donc)
* @param string $statut_ancien
* Ancien statut de la rubrique
* @param array $infos
* Infos sur l'objet modifié : statut_ancien, objet, id_objet…
* @param bool $postdate
* true pour recalculer aussi la date du prochain article post-daté
* @return bool
* true si le statut change effectivement
**/
function calculer_rubriques_if($id_rubrique, $modifs, $statut_ancien = '', $postdate = false) {
function calculer_rubriques_if($id_rubrique, $modifs, $infos = array(), $postdate = false) {
$neuf = false;
if ($statut_ancien == 'publie') {
// Compat avec l'ancienne signature
if (is_string($infos)) {
$infos = array('statut_ancien' => $infos);
}
if (!isset($infos['statut_ancien'])) {
$infos['statut_ancien'] = '';
}
// On recherche quels statuts tester
if (
isset($infos['objet'])
and include_spip('inc/filtres')
and $declaration_statut = objet_info($infos['objet'], 'statut')
and is_array($declaration_statut)
) {
foreach ($declaration_statut as $champ_statut) {
if ($champ_statut['champ'] == 'statut') {
$statuts_publies = array_map('trim', explode(',', $champ_statut['publie']));
break; // stop on a trouvé le bon champ
}
}
}
else {
$statuts_publies = array('publie');
}
if (in_array($infos['statut_ancien'], $statuts_publies)) {
if (isset($modifs['statut'])
or isset($modifs['id_rubrique'])
or ($postdate and strtotime($postdate) > time())
......@@ -69,7 +96,7 @@ function calculer_rubriques_if($id_rubrique, $modifs, $statut_ancien = '', $post
} elseif (isset($modifs['id_rubrique'])) {
$neuf |= publier_branche_rubrique($modifs['id_rubrique']);
}
} elseif (isset($modifs['statut']) and $modifs['statut'] == 'publie') {
} elseif (isset($modifs['statut']) and in_array($modifs['statut'], $statuts_publies)) {
if ($postdate) {
calculer_prochain_postdate(true);
$neuf |= (strtotime($postdate) <= time()); // par securite
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter