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

le flag boucle->statut en presence du critere statut est generalise :

boucle->modificateur['criteres'][xxx] est positionné a true pour chaque critere xxx rencontré
permet aux plugins de faire varier le contenu par defaut des boucles en fonction des criteres
parent 4788bd90
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -58,7 +58,7 @@ function boucle_ARTICLES_dist($id_boucle, &$boucles) { ...@@ -58,7 +58,7 @@ function boucle_ARTICLES_dist($id_boucle, &$boucles) {
$mstatut = $id_table .'.statut'; $mstatut = $id_table .'.statut';
// Restreindre aux elements publies // Restreindre aux elements publies
if (!$boucle->statut) { if (!$boucle->modificateur['criteres']['statut']) {
if (!$GLOBALS['var_preview']) { if (!$GLOBALS['var_preview']) {
$boucle->where[]= array("'='", "'$mstatut'", "'\"publie\"'"); $boucle->where[]= array("'='", "'$mstatut'", "'\"publie\"'");
if ($GLOBALS['meta']["post_dates"] == 'non') if ($GLOBALS['meta']["post_dates"] == 'non')
...@@ -80,7 +80,7 @@ function boucle_AUTEURS_dist($id_boucle, &$boucles) { ...@@ -80,7 +80,7 @@ function boucle_AUTEURS_dist($id_boucle, &$boucles) {
$mstatut = $id_table .'.statut'; $mstatut = $id_table .'.statut';
// Restreindre aux elements publies // Restreindre aux elements publies
if (!$boucle->statut) { if (!$boucle->modificateur['criteres']['statut']) {
// Si pas de lien avec un article, selectionner // Si pas de lien avec un article, selectionner
// uniquement les auteurs d'un article publie // uniquement les auteurs d'un article publie
if (!$GLOBALS['var_preview']) if (!$GLOBALS['var_preview'])
...@@ -110,7 +110,7 @@ function boucle_BREVES_dist($id_boucle, &$boucles) { ...@@ -110,7 +110,7 @@ function boucle_BREVES_dist($id_boucle, &$boucles) {
$mstatut = $id_table .'.statut'; $mstatut = $id_table .'.statut';
// Restreindre aux elements publies // Restreindre aux elements publies
if (!$boucle->statut) { if (!$boucle->modificateur['criteres']['statut']) {
if (!$GLOBALS['var_preview']) if (!$GLOBALS['var_preview'])
$boucle->where[]= array("'='", "'$mstatut'", "'\"publie\"'"); $boucle->where[]= array("'='", "'$mstatut'", "'\"publie\"'");
else else
...@@ -137,7 +137,7 @@ function boucle_FORUMS_dist($id_boucle, &$boucles) { ...@@ -137,7 +137,7 @@ function boucle_FORUMS_dist($id_boucle, &$boucles) {
$boucle->where[]= array("'='", "'$id_table." ."id_parent'", 0); $boucle->where[]= array("'='", "'$id_table." ."id_parent'", 0);
} }
// Restreindre aux elements publies // Restreindre aux elements publies
if (!$boucle->statut) { if (!$boucle->modificateur['criteres']['statut']) {
if ($GLOBALS['var_preview']) if ($GLOBALS['var_preview'])
$boucle->where[]= array("'IN'", "'$mstatut'", "'(\"publie\",\"prive\")'"); $boucle->where[]= array("'IN'", "'$mstatut'", "'(\"publie\",\"prive\")'");
else else
...@@ -160,7 +160,7 @@ function boucle_SIGNATURES_dist($id_boucle, &$boucles) { ...@@ -160,7 +160,7 @@ function boucle_SIGNATURES_dist($id_boucle, &$boucles) {
$boucle->from[$id_table] = "spip_signatures"; $boucle->from[$id_table] = "spip_signatures";
// Restreindre aux elements publies // Restreindre aux elements publies
if (!$boucle->statut) { if (!$boucle->modificateur['criteres']['statut']) {
$boucle->where[]= array("'='", "'$mstatut'", "'\"publie\"'"); $boucle->where[]= array("'='", "'$mstatut'", "'\"publie\"'");
} }
return calculer_boucle($id_boucle, $boucles); return calculer_boucle($id_boucle, $boucles);
...@@ -193,7 +193,7 @@ function boucle_RUBRIQUES_dist($id_boucle, &$boucles) { ...@@ -193,7 +193,7 @@ function boucle_RUBRIQUES_dist($id_boucle, &$boucles) {
$mstatut = $id_table .'.statut'; $mstatut = $id_table .'.statut';
// Restreindre aux elements publies // Restreindre aux elements publies
if (!$boucle->statut) { if (!$boucle->modificateur['criteres']['statut']) {
if (!$GLOBALS['var_preview']) if (!$GLOBALS['var_preview'])
if (!isset($boucle->modificateur['tout'])) if (!isset($boucle->modificateur['tout']))
$boucle->where[]= array("'='", "'$mstatut'", "'\"publie\"'"); $boucle->where[]= array("'='", "'$mstatut'", "'\"publie\"'");
...@@ -244,7 +244,7 @@ function boucle_SYNDICATION_dist($id_boucle, &$boucles) { ...@@ -244,7 +244,7 @@ function boucle_SYNDICATION_dist($id_boucle, &$boucles) {
// Restreindre aux elements publies // Restreindre aux elements publies
if (!$boucle->statut) { if (!$boucle->modificateur['criteres']['statut']) {
if (!$GLOBALS['var_preview']) { if (!$GLOBALS['var_preview']) {
$boucle->where[]= array("'='", "'$mstatut'", "'\"publie\"'"); $boucle->where[]= array("'='", "'$mstatut'", "'\"publie\"'");
} else } else
...@@ -264,7 +264,7 @@ function boucle_SYNDIC_ARTICLES_dist($id_boucle, &$boucles) { ...@@ -264,7 +264,7 @@ function boucle_SYNDIC_ARTICLES_dist($id_boucle, &$boucles) {
$mstatut = $id_table .'.statut'; $mstatut = $id_table .'.statut';
// Restreindre aux elements publies, sauf critere contraire // Restreindre aux elements publies, sauf critere contraire
if ($boucle->statut) {} if ($boucle->modificateur['criteres']['statut']) {}
else if ($GLOBALS['var_preview']) else if ($GLOBALS['var_preview'])
$boucle->where[]= array("'IN'", "'$mstatut'", "'(\"publie\",\"prop\")'"); $boucle->where[]= array("'IN'", "'$mstatut'", "'(\"publie\",\"prop\")'");
else { else {
......
...@@ -690,11 +690,14 @@ function calculer_critere_infixe($idb, &$boucles, $crit) { ...@@ -690,11 +690,14 @@ function calculer_critere_infixe($idb, &$boucles, $crit) {
$table = $calculer_critere_externe($boucle, $boucle->jointures, $col, $desc, ($crit->cond OR $op !='='), $t); $table = $calculer_critere_externe($boucle, $boucle->jointures, $col, $desc, ($crit->cond OR $op !='='), $t);
} }
} }
// tag du critere pour permettre aux boucles de modifier leurs requetes par defaut en fonction de ca
$boucles[$idb]->modificateur['criteres'][$col] = true;
// ajout pour le cas special d'une condition sur le champ statut: // ajout pour le cas special d'une condition sur le champ statut:
// il faut alors interdire a la fonction de boucle // il faut alors interdire a la fonction de boucle
// de mettre ses propres criteres de statut // de mettre ses propres criteres de statut
// http://www.spip.net/@statut (a documenter) // http://www.spip.net/@statut (a documenter)
// garde pour compatibilite avec code des plugins anterieurs, mais redondant avec la ligne precedente
if ($col == 'statut') $boucles[$idb]->statut = true; if ($col == 'statut') $boucles[$idb]->statut = true;
// ajout pour le cas spécial des forums // ajout pour le cas spécial des forums
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter