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

"un critere {collecte xx} qui est pris en compte au moment du calcul de la...

"un critere {collecte xx} qui est pris en compte au moment du calcul de la boucle dans la clause order
Attention : la collecte doit etre coherente avec le charset du champ, en particulier il ne doit pas etre binaire
"
parent 6ac11dbe
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -312,7 +312,7 @@ function calculer_requete_sql(&$boucle)
('"' . join(", ", $boucle->group)) . '"') .
', # GROUP
array(' .
join(', ', $order) .
calculer_order($boucle) .
"), # ORDER
" . (strpos($boucle->limit, 'intval') === false ?
"'".$boucle->limit."'" :
......@@ -357,6 +357,18 @@ function calculer_from(&$boucle)
return 'array(' . substr($res,1) . ')';
}
function calculer_order(&$boucle)
{
$order = $boucle->order;
if (isset($boucle->modificateur['collate'])){
$col = $boucle->modificateur['collate'];
$col = ".($col ?' COLLATE '.$col:'')";
foreach($order as $k=>$o)
$order[$k] .= $col;
}
return join(', ', $order);
}
//
// fonction traitant les criteres {1,n} (analyses dans inc-criteres)
//
......
......@@ -276,6 +276,18 @@ function critere_fusion_dist($idb,&$boucles, $crit) {
"{groupby ?} BOUCLE$idb");
}
// c'est la commande SQL "COLLATE"
// qui peut etre appliquee sur les order by, group by, where like ...
function critere_collecte_dist($idb,&$boucles, $crit) {
if (isset($crit->param[0])) {
$_coll = calculer_liste($crit->param[0], array(), $boucles, $boucles[$idb]->id_parent);
$boucle = $boucles[$idb];
$boucle->modificateur['collate'] = $_coll;
} else
erreur_squelette(_T('zbug_info_erreur_squelette'),
"{collecte ?} BOUCLE$idb");
}
// http://doc.spip.org/@calculer_critere_arg_dynamique
function calculer_critere_arg_dynamique($idb, &$boucles, $crit, $suffix='')
{
......
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