function http_auteurs_ressemblants($cherche_auteur, $id_message) { $cherche_auteur = htmlspecialchars($cherche_auteur); global $connect_id_auteur; $query = sql_select("id_auteur, nom", "spip_auteurs", "messagerie<>'non' AND id_auteur<>'$connect_id_auteur' AND pass<>'' AND login<>''"); $table_auteurs = array(); $table_ids = array(); while ($row = sql_fetch($query)) { $table_auteurs[] = $row['nom']; $table_ids[] = $row['id_auteur']; } $resultat = mots_ressemblants($cherche_auteur, $table_auteurs, $table_ids); if (!$resultat) { return '<b>' . _T('info_recherche_auteur_zero', array('cherche_auteur' => $cherche_auteur))."</b><br />"; } else if (count($resultat) == 1) { // action/editer_message a du prendre en compte ce cas list(, $nouv_auteur) = each($resultat); $row = sql_fetsel("nom", "spip_auteurs", "id_auteur=$nouv_auteur"); $nom_auteur = $row['nom']; return "<b>"._T('info_ajout_participant')."</b><br />" . "<ul><li><span class='verdana1 spip_small'><b><span class='spip_medium'>$nom_auteur</span></b></span></li>\n</ul>"; } else if (count($resultat) < 16) { $res = ''; $query = sql_select("*", "spip_auteurs", "id_auteur IN (" . join(',', $resultat) . ")", "", "nom"); while ($row = sql_fetch($query)) { $id_auteur = $row['id_auteur']; $nom_auteur = $row['nom']; $email_auteur = $row['email']; $bio_auteur = $row['bio']; $res .= "\n<li><span class='spip_medium verdana1'><b>$nom_auteur</b></span>" . ($email_auteur ? " ($email_auteur)" : '') . "\n <a href='" . redirige_action_auteur("editer_message","$id_message/@$id_auteur", 'message', "id_message=$id_message") . "'>" . _T('lien_ajout_destinataire'). "</a>" . (!trim($bio_auteur) ? '' : ("<br />\n<span class='spip_x-small'>".propre(couper($bio_auteur, 100))."</span>\n")) . "</li>\n"; } return "<b>"._T('info_recherche_auteur_ok', array('cherche_auteur' => $cherche_auteur))."</b><br />" .($res ? "<ul>$res</ul>" : ''); } else { return "<b>"._T('info_recherche_auteur_a_affiner', array('cherche_auteur' => $cherche_auteur))."</b><br />"; } }
function action_editer_message_post_choisir($id_message) { if ($id_auteur = _request('nouv_auteur')) action_editer_message_post_ajouter($id_message, $id_auteur); else { include_spip('inc/mots'); include_spip('inc/charsets'); // pour tranlitteration $id_auteur = $GLOBALS['visiteur_session']['id_auteur']; $cherche_auteur= _request('cherche_auteur'); $query = sql_select("id_auteur, nom", "spip_auteurs", "messagerie<>'non' AND pass<>'' AND login<>'' AND id_auteur<>" . sql_quote($id_auteur)); $table_auteurs = array(); $table_ids = array(); while ($row = sql_fetch($query)) { $table_auteurs[] = $row['nom']; $table_ids[] = $row['id_auteur']; } $res = mots_ressemblants($cherche_auteur, $table_auteurs, $table_ids); $n = count($res); if ($n == 1) # Bingo action_editer_message_post_ajouter($id_message, $res[0]); # renvoyer la valeur ==> formulaire de choix si n !=1 # notification que $res[0] a ete rajoute sinon redirige_par_entete(parametre_url(urldecode(_request('redirect')), 'cherche_auteur', $cherche_auteur, '&')); } }
function spiplistes_cherche_auteur () { if (!$cherche_auteur = _request('cherche_auteur')) return; $col = strpos($cherche_auteur, '@') !== false ? 'email' : 'nom'; $like = ''; if (strpos($cherche_auteur, '%') !== false) { $like = " WHERE $col LIKE '" . $cherche_auteur . "'"; $cherche_auteur = str_replace('%', ' ', $cherche_auteur); } $sql_result = sql_select("id_auteur,$col", "spip_auteurs", $like); while($row = sql_fetch($sql_result)) { $table_auteurs[] = $row[$col]; $table_ids[] = $row['id_auteur']; } $resultat = mots_ressemblants($cherche_auteur, $table_auteurs, $table_ids); $result = "" . "<div id='boite-result-chercher-auteur'>" . debut_boite_info(true) ; if (!$resultat) { $result .= "" . "<strong>"._T('texte_aucun_resultat_auteur', array('cherche_auteur' => $cherche_auteur)).".</strong><br />\n" ; } else if (count($resultat) == 1) { list(, $nouv_auteur) = each($resultat); $result .= "" . "<strong>"._T('spiplistes:une_inscription')."</strong>:<br />\n" . "<ul>" ; $sql_result = sql_select("id_auteur,nom,email,bio", "spip_auteurs", "id_auteur=".sql_quote($nouv_auteur), '', '', 1); while ($row = sql_fetch($sql_result)) { $id_auteur = $row['id_auteur']; $nom_auteur = $row['nom']; $email_auteur = $row['email']; $bio_auteur = $row['bio']; $result .= "" . "<li class='auteur'>" . "<a class='nom_auteur' href=\"".generer_url_ecrire(_SPIPLISTES_EXEC_ABONNE_EDIT, "id_auteur=$id_auteur")."\">".typo($nom_auteur)."</a>" . " | $email_auteur" . "</li>\n" ; } $result .= "" . "</ul>\n" ; } else if (count($resultat) < 16) { reset($resultat); unset($les_auteurs); while (list(, $id_auteur) = each($resultat)) { $les_auteurs[] = $id_auteur; } if($les_auteurs) { $les_auteurs = join(',', $les_auteurs); $result .= "" . "<strong>"._T('texte_plusieurs_articles', array('cherche_auteur' => $cherche_auteur))."</strong><br />" . "<ul>" ; $sql_select = array('id_auteur','nom','email','bio'); $sql_result = sql_select($sql_select, "spip_auteurs", "id_auteur IN ($les_auteurs)", '', array('nom')); while ($row = sql_fetch($sql_result)) { $id_auteur = $row['id_auteur']; $nom_auteur = $row['nom']; $email_auteur = $row['email']; $bio_auteur = $row['bio']; $result .= "" . "<li class='auteur'><span class='nom_auteur'>".typo($nom_auteur)."</span>" ; if ($email_auteur) { $result .= "" . " ($email_auteur)" ; } $result .= "" . " | <a href=\"".generer_url_ecrire(_SPIPLISTES_EXEC_ABONNE_EDIT,"id_auteur=$id_auteur")."\">" . _T('spiplistes:choisir')."</a>" ; if (trim($bio_auteur)) { $result .= "" . "<br /><font size=1>".couper(propre($bio_auteur), 100)."</font>\n" ; } $result .= "" . "</li>\n" ; } $result .= "" . "</ul>\n" ; } } else { $result .= "" . "<strong>"._T('texte_trop_resultats_auteurs', array('cherche_auteur' => $cherche_auteur))."</strong><br />" ; } $result .= "" . fin_boite_info(true) . "</div>" ; return($result); } // end spiplistes_cherche_auteur()
function recherche_mot_cle($cherche_mots, $id_groupe, $objet, $id_objet, $table, $table_id, $url_base) { $ou = _T('info_mot_cle_ajoute') . ' '; if ($table == 'articles') $ou .= _T('info_l_article'); else if ($table == 'breves') $ou .= _T('info_la_breve'); else if ($table == 'rubriques') $ou .= _T('info_la_rubrique'); $result = sql_select("id_mot, titre", "spip_mots", (!$id_groupe ? '' : sql_in('id_groupe', $id_groupe))); $table_mots = array(); $table_ids = array(); while ($row = sql_fetch($result)) { $table_ids[] = $row['id_mot']; $table_mots[] = $row['titre']; } $nouveaux_mots = array(); $res = ''; foreach (preg_split("/ *[,;] */", $cherche_mots) as $cherche_mot) { if ($cherche_mot) { $resultat = mots_ressemblants($cherche_mot, $table_mots, $table_ids); $res .= "<br />" . debut_boite_info(true); if (!$resultat) { $res .= "<b>"._T('info_non_resultat', array('cherche_mot' => htmlspecialchars($cherche_mot)))."</b><br />"; } else if (count($resultat) == 1) { $n = $resultat[0]; $nouveaux_mots[] = $n; $t = sql_getfetsel("titre", "spip_mots", "id_mot=$n"); $res .= "<b>" . $ou . ": </b><br />\n<ul><li><span class='verdana1 spip_small'><b><span class='spip_medium'>" . typo($t) . "</span></b></span></li></ul>"; } else $res .= affiche_mots_ressemblant($cherche_mot, $objet, $id_objet, $resultat, $table, $table_id, $url_base); $res .= fin_boite_info(true) . "<br />"; } } return array($res, $nouveaux_mots); }
function rechercher_auteurs($cherche_auteur) { include_spip('inc/mots'); include_spip('inc/charsets'); // pour tranlitteration $result = sql_select("id_auteur, nom", "spip_auteurs"); $table_auteurs = array(); $table_ids = array(); while ($row = sql_fetch($result)) { $table_auteurs[] = $row["nom"]; $table_ids[] = $row["id_auteur"]; } return mots_ressemblants($cherche_auteur, $table_auteurs, $table_ids); }