Messages : 9,356
Sujets : 427
Inscription : Sep 2007
Réputation :
5
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.
Recule fils!!!
Messages : 13,531
Sujets : 296
Inscription : Sep 2007
Réputation :
6
Faudrait que tu me dises ce que tu as modifié, que je ne l'écrase pas lors des mises à jour.
Messages : 9,356
Sujets : 427
Inscription : Sep 2007
Réputation :
5
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"))
...
Recule fils!!!
Messages : 9,356
Sujets : 427
Inscription : Sep 2007
Réputation :
5
Bon, je uppe pour le Chel, qu'il me confirme qu'il a bien lu ce topic...
Recule fils!!!
Messages : 18,606
Sujets : 762
Inscription : Sep 2007
Réputation :
8
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 !
Vas Vite ou Flânes. Mais Roule !
Messages : 9,356
Sujets : 427
Inscription : Sep 2007
Réputation :
5
(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);
}
}
Recule fils!!!
|