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

- Eviter que SQLite 2.x se mélange les pinceaux entre REGEXP et REGEXP_REPLACE...

- Eviter que SQLite 2.x se mélange les pinceaux entre REGEXP et REGEXP_REPLACE (fonction SQLite renommée ici en PREG_REPLACE) lorsqu'il calcule l'écriture de la requete
parent 76f013a7
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -322,15 +322,30 @@ function requete_auteurs($tri, $statut, $recherche=NULL) ...@@ -322,15 +322,30 @@ function requete_auteurs($tri, $statut, $recherche=NULL)
case 'nom': case 'nom':
default: default:
$sql_sel = ", ".sql_multi ("nom", $spip_lang); $sql_sel = sql_multi ("nom", $spip_lang);
$sql_order = "multi"; $sql_order = "multi";
} }
// //
// La requete de base est tres sympa // La requete de base est tres sympa
// (pour les visiteurs, ca postule que les messages concernent des articles) // (pour les visiteurs, ca postule que les messages concernent des articles)
return sql_select(
return sql_select(" aut.id_auteur AS id_auteur, aut.statut AS statut, aut.nom_site AS site, aut.nom AS nom, UPPER(aut.nom) AS unom, COUNT(lien.id_article) AS compteur $sql_sel ", "spip_auteurs as aut " . ($visit ? "LEFT JOIN spip_forum AS lien ON aut.id_auteur=lien.id_auteur " : ("LEFT JOIN spip_auteurs_articles AS lien ON aut.id_auteur=lien.id_auteur LEFT JOIN spip_articles AS art ON (lien.id_article = art.id_article)")), $sql_visible . ($recherche ? " AND $recherche" : ''), "aut.statut, aut.nom_site, aut.nom, aut.id_auteur", $sql_order); array(
"aut.id_auteur AS id_auteur",
"aut.statut AS statut",
"aut.nom_site AS site",
"aut.nom AS nom",
"UPPER(aut.nom) AS unom",
"COUNT(lien.id_article) AS compteur",
$sql_sel),
"spip_auteurs AS aut " . ($visit
? "LEFT JOIN spip_forum AS lien ON aut.id_auteur=lien.id_auteur "
: ("LEFT JOIN spip_auteurs_articles AS lien ON aut.id_auteur=lien.id_auteur LEFT JOIN spip_articles AS art ON (lien.id_article = art.id_article)")),
$sql_visible . ($recherche
? " AND $recherche"
: ''),
"aut.statut, aut.nom_site, aut.nom, aut.id_auteur",
$sql_order);
} }
// http://doc.spip.org/@afficher_n_auteurs // http://doc.spip.org/@afficher_n_auteurs
......
...@@ -41,11 +41,13 @@ function _sqlite_init_functions(&$sqlite){ ...@@ -41,11 +41,13 @@ function _sqlite_init_functions(&$sqlite){
'MD5' => array( 'md5' ,1), 'MD5' => array( 'md5' ,1),
'MONTH' => array( '_sqlite_func_month' ,1), 'MONTH' => array( '_sqlite_func_month' ,1),
'PREG_REPLACE' => array( '_sqlite_func_preg_replace' ,3),
'RAND' => array( '_sqlite_func_rand' ,0), // sinon random() v2.4 'RAND' => array( '_sqlite_func_rand' ,0), // sinon random() v2.4
'REGEXP' => array( '_sqlite_func_regexp_match' ,2), // critere REGEXP supporte a partir de v3.3.2 'REGEXP' => array( '_sqlite_func_regexp_match' ,2), // critere REGEXP supporte a partir de v3.3.2
//'REGEXP_MATCH' => array( '_sqlite_func_regexp_match' ,2), // critere REGEXP supporte a partir de v3.3.2 //'REGEXP_MATCH' => array( '_sqlite_func_regexp_match' ,2), // critere REGEXP supporte a partir de v3.3.2
'REGEXP_REPLACE'=> array( '_sqlite_func_regexp_replace' ,3),
'RIGHT' => array( '_sqlite_func_right' ,2), 'RIGHT' => array( '_sqlite_func_right' ,2),
# 'RTRIM' => array( 'rtrim' ,1), // present en theorie # 'RTRIM' => array( 'rtrim' ,1), // present en theorie
...@@ -170,6 +172,14 @@ function _sqlite_func_month ($d) { ...@@ -170,6 +172,14 @@ function _sqlite_func_month ($d) {
} }
function _sqlite_func_preg_replace($quoi, $cherche, $remplace) {
$return = preg_replace('%'.$cherche.'%', $remplace, $quoi);
#spip_log("preg_replace : $quoi, $cherche, $remplace, $return",'debug');
return $return;
}
function _sqlite_func_rand() { function _sqlite_func_rand() {
return rand(); return rand();
} }
...@@ -187,13 +197,6 @@ function _sqlite_func_regexp_match($cherche, $quoi) { ...@@ -187,13 +197,6 @@ function _sqlite_func_regexp_match($cherche, $quoi) {
} }
function _sqlite_func_regexp_replace($quoi, $cherche, $remplace) {
$return = preg_replace('%'.$cherche.'%', $remplace, $quoi);
#spip_log("regexp_replace : $quoi, $cherche, $remplace, $return",'debug');
return $return;
}
function _sqlite_func_to_days ($d) { function _sqlite_func_to_days ($d) {
$result = date("z", _sqlite_func_unix_timestamp($d)); $result = date("z", _sqlite_func_unix_timestamp($d));
#spip_log("Passage avec TO_DAYS : $d, $result",'debug'); #spip_log("Passage avec TO_DAYS : $d, $result",'debug');
......
...@@ -544,7 +544,7 @@ function spip_sqlite_listdbs($serveur='',$requeter=true) { ...@@ -544,7 +544,7 @@ function spip_sqlite_listdbs($serveur='',$requeter=true) {
function spip_sqlite_multi ($objet, $lang) { function spip_sqlite_multi ($objet, $lang) {
$r = "REGEXP_REPLACE(" $r = "PREG_REPLACE("
. $objet . $objet
. ",'<multi>.*[\[]" . ",'<multi>.*[\[]"
. $lang . $lang
......
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