![]() |
|
[RECHERCHE] Nouvelle Fonctionalite - Version imprimable +- Poirsouille (https://forum.poirsouille.org) +-- Forum : Les forums Poirsouille (https://forum.poirsouille.org/Forum-Les-forums-Poirsouille) +--- Forum : Questions et soucis (https://forum.poirsouille.org/Forum-Questions-et-soucis) +--- Sujet : [RECHERCHE] Nouvelle Fonctionalite (/Thread-RECHERCHE-Nouvelle-Fonctionalite) |
[RECHERCHE] Nouvelle Fonctionalite - shef - 11-06-2008 Voila, je me suis charge du cas de Chel ! On peut desormais effectuer des recherche par date. Bon, ca reste pas tres "user-friendly", mais bon. Voila comment on procede: on va sur le panneau de recherche, et dans le champ Recherche par mot-clé on rentre : date YYYY-MM-DD en remplacant YYYY par l'annee, par exemple 2008 en remplacant MM par le mois, par exemple 06 en remplacant DD par le jour, par exemple 08 Ce qui donnerait dans l'exemple ici: date 2008-06-08 Le resultat renvoie tous les sujets qui ont eu au moins une reponse depuis la date donnee (on ne peut pas afficher directement le contenu des messages, desole !). Voila ! En cas de bug, poster ici une description aussi detaillee que possible. RE: [RECHERCHE] Nouvelle Fonctionalite - Vilbrekin - 11-06-2008 Faudrait que tu me dises ce que tu as modifié, que je ne l'écrase pas lors des mises à jour. RE: [RECHERCHE] Nouvelle Fonctionalite - shef - 11-06-2008 search.php, j'ai ajouté des lignes pour vérifier le format de l'input: Code : ...
$search_data = array(
"keywords" => $mybb->input['keywords'],
"author" => $mybb->input['author'],
"postthread" => $mybb->input['postthread'],
"matchusername" => $mybb->input['matchusername'],
"postdate" => $mybb->input['postdate'],
"pddir" => $mybb->input['pddir'],
"forums" => $mybb->input['forums'],
"findthreadst" => $mybb->input['findthreadst'],
"numreplies" => $mybb->input['numreplies']
);
// Ca commence ici
if (ereg("date ([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $mybb->input['keywords'], $regs)){
$date_to_search = mktime(0,0,0,$regs[2],$regs[3],$regs[1]);
$where_sql = "t.lastpost >= '".$date_to_search."'";
if($mybb->input['fid'])
{
$where_sql .= " AND t.fid='".intval($mybb->input['fid'])."'";
}
$unsearchforums = get_unsearchable_forums();
if($unsearchforums)
{
$where_sql .= " AND t.fid NOT IN ($unsearchforums)";
}
$inactiveforums = get_inactive_forums();
if($inactiveforums)
{
$where_sql .= " AND t.fid NOT IN ($inactiveforums)";
}
$sid = md5(uniqid(microtime(), 1));
$searcharray = array(
"sid" => $db->escape_string($sid),
"uid" => $mybb->user['uid'],
"dateline" => time(),
"ipaddress" => $db->escape_string($session->ipaddress),
"threads" => '',
"posts" => '',
"searchtype" => "titles",
"resulttype" => "threads",
"querycache" => $db->escape_string($where_sql),
);
$plugins->run_hooks("search_do_search_process");
$db->insert_query(TABLE_PREFIX."searchlog", $searcharray);
redirect("search.php?action=results&sid=".$sid, $lang->redirect_searchresults);
}
// ET ça s'arrête là
if($config['dbtype'] == "mysql" || $config['dbtype'] == "mysqli")
{
if($mybb->settings['searchtype'] == "fulltext" && $db->supports_fulltext_boolean(TABLE_PREFIX."posts") && $db->is_fulltext(TABLE_PREFIX."posts"))
...RE: [RECHERCHE] Nouvelle Fonctionalite - shef - 06-07-2008 Bon, je uppe pour le Chel, qu'il me confirme qu'il a bien lu ce topic... RE: [RECHERCHE] Nouvelle Fonctionalite - Le Chel - 06-07-2008 shef a écrit :Bon, je uppe pour le Chel, qu'il me confirme qu'il a bien lu ce topic... J'ai bien pris connaissance de ton post, Shef . ![]() Et ne me reste plus qu'à apprendre à me servir de ce merveilleux outil que tu viens de nous concocter. Merci en tout cas ! RE: [RECHERCHE] Nouvelle Fonctionalite - shef - 18-08-2008 (11-06-2008, 18:49)Vilbrekin a écrit : Faudrait que tu me dises ce que tu as modifié, que je ne l'écrase pas lors des mises à jour. Je vois que ca a servi ![]() Bon, la nouvelle mouture: Code : $search_data = array(
"keywords" => $mybb->input['keywords'],
"author" => $mybb->input['author'],
"postthread" => $mybb->input['postthread'],
"matchusername" => $mybb->input['matchusername'],
"postdate" => $mybb->input['postdate'],
"pddir" => $mybb->input['pddir'],
"forums" => $mybb->input['forums'],
"findthreadst" => $mybb->input['findthreadst'],
"numreplies" => $mybb->input['numreplies']
);
// Ca commence ici
if (ereg("date ([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $mybb->input['keywords'], $regs)){
$date_to_search = mktime(0,0,0,$regs[2],$regs[3],$regs[1]);
$where_sql = "t.lastpost >= '".$date_to_search."'";
if($mybb->input['fid'])
{
$where_sql .= " AND t.fid='".intval($mybb->input['fid'])."'";
}
$unsearchforums = get_unsearchable_forums();
if($unsearchforums)
{
$where_sql .= " AND t.fid NOT IN ($unsearchforums)";
}
$inactiveforums = get_inactive_forums();
if($inactiveforums)
{
$where_sql .= " AND t.fid NOT IN ($inactiveforums)";
}
$sid = md5(uniqid(microtime(), 1));
$searcharray = array(
"sid" => $db->escape_string($sid),
"uid" => $mybb->user['uid'],
"dateline" => time(),
"ipaddress" => $db->escape_string($session->ipaddress),
"threads" => '',
"posts" => '',
"searchtype" => "titles",
"resulttype" => "threads",
"querycache" => $db->escape_string($where_sql),
);
$plugins->run_hooks("search_do_search_process");
$db->insert_query("searchlog", $searcharray);
redirect("search.php?action=results&sid=".$sid, $lang->redirect_searchresults);
}
// ET ça s'arrête là
if($db->can_search == true)
{
if($mybb->settings['searchtype'] == "fulltext" && $db->supports_fulltext_boolean("posts") && $db->is_fulltext("posts"))
{
$search_results = perform_search_mysql_ft($search_data);
}
else
{
$search_results = perform_search_mysql($search_data);
}
} |