diff --git a/ecrire/exec/auteurs.php b/ecrire/exec/auteurs.php index 5c628857e3496a0528b31f106d681ee6f1f8027d..d7c473e6189efbae10716568f38a4925029790e1 100644 --- a/ecrire/exec/auteurs.php +++ b/ecrire/exec/auteurs.php @@ -322,15 +322,30 @@ function requete_auteurs($tri, $statut, $recherche=NULL) case 'nom': default: - $sql_sel = ", ".sql_multi ("nom", $spip_lang); + $sql_sel = sql_multi ("nom", $spip_lang); $sql_order = "multi"; } // // La requete de base est tres sympa // (pour les visiteurs, ca postule que les messages concernent des articles) - - 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); + return sql_select( + 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 diff --git a/ecrire/req/sqlite_fonctions.php b/ecrire/req/sqlite_fonctions.php index 59cf248cafabf647df95ea102f6772e80516ccc1..0410162154dca568b578bcdead183d392e7188bf 100644 --- a/ecrire/req/sqlite_fonctions.php +++ b/ecrire/req/sqlite_fonctions.php @@ -41,11 +41,13 @@ function _sqlite_init_functions(&$sqlite){ 'MD5' => array( 'md5' ,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 '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_REPLACE'=> array( '_sqlite_func_regexp_replace' ,3), + 'RIGHT' => array( '_sqlite_func_right' ,2), # 'RTRIM' => array( 'rtrim' ,1), // present en theorie @@ -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() { return rand(); } @@ -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) { $result = date("z", _sqlite_func_unix_timestamp($d)); #spip_log("Passage avec TO_DAYS : $d, $result",'debug'); diff --git a/ecrire/req/sqlite_generique.php b/ecrire/req/sqlite_generique.php index 9776c66448a3f0aa6feef43b15176d664c34e2ee..e1a7f396a8b0a2cb3b9767f3864c9c547a016275 100644 --- a/ecrire/req/sqlite_generique.php +++ b/ecrire/req/sqlite_generique.php @@ -544,7 +544,7 @@ function spip_sqlite_listdbs($serveur='',$requeter=true) { function spip_sqlite_multi ($objet, $lang) { - $r = "REGEXP_REPLACE(" + $r = "PREG_REPLACE(" . $objet . ",'<multi>.*[\[]" . $lang