|
@@ 869-884 (lines=16) @@
|
| 866 |
|
* @param string $champ Texte suivant l'expression ('titre' dans {par num titre}) |
| 867 |
|
* @return string Clause pour le Order by |
| 868 |
|
*/ |
| 869 |
|
function calculer_critere_par_expression_num($idb, &$boucles, $crit, $tri, $champ) { |
| 870 |
|
$_champ = calculer_critere_par_champ($idb, $boucles, $crit, $champ, true); |
| 871 |
|
if (is_array($_champ)) { |
| 872 |
|
return array('zbug_critere_inconnu', array('critere' => $crit->op . " num $champ")); |
| 873 |
|
} |
| 874 |
|
$boucle = &$boucles[$idb]; |
| 875 |
|
$texte = '0+' . $_champ; |
| 876 |
|
$suite = calculer_liste($tri, array(), $boucles, $boucle->id_parent); |
| 877 |
|
if ($suite !== "''") { |
| 878 |
|
$texte = "\" . ((\$x = $suite) ? ('$texte' . \$x) : '0')" . " . \""; |
| 879 |
|
} |
| 880 |
|
$as = 'num' . ($boucle->order ? count($boucle->order) : ""); |
| 881 |
|
$boucle->select[] = $texte . " AS $as"; |
| 882 |
|
$order = "'$as'"; |
| 883 |
|
return $order; |
| 884 |
|
} |
| 885 |
|
|
| 886 |
|
/** |
| 887 |
|
* Calculs pour le critère `{par sinum champ}` qui ordonne les champs avec numéros en premier |
|
@@ 903-918 (lines=16) @@
|
| 900 |
|
* @param string $champ Texte suivant l'expression ('titre' dans {par sinum titre}) |
| 901 |
|
* @return string Clause pour le Order by |
| 902 |
|
*/ |
| 903 |
|
function calculer_critere_par_expression_sinum($idb, &$boucles, $crit, $tri, $champ) { |
| 904 |
|
$_champ = calculer_critere_par_champ($idb, $boucles, $crit, $champ, true); |
| 905 |
|
if (is_array($_champ)) { |
| 906 |
|
return array('zbug_critere_inconnu', array('critere' => $crit->op . " sinum $champ")); |
| 907 |
|
} |
| 908 |
|
$boucle = &$boucles[$idb]; |
| 909 |
|
$texte = '0+' . $_champ; |
| 910 |
|
$suite = calculer_liste($tri, array(), $boucles, $boucle->id_parent); |
| 911 |
|
if ($suite !== "''") { |
| 912 |
|
$texte = "\" . ((\$x = $suite) ? ('$texte' . \$x) : '0')" . " . \""; |
| 913 |
|
} |
| 914 |
|
$as = 'sinum' . ($boucle->order ? count($boucle->order) : ""); |
| 915 |
|
$boucle->select[] = 'CASE (' . $texte . ') WHEN 0 THEN 1 ELSE 0 END AS ' . $as; |
| 916 |
|
$order = "'$as'"; |
| 917 |
|
return $order; |
| 918 |
|
} |
| 919 |
|
|
| 920 |
|
|
| 921 |
|
/** |