Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[RECHERCHE] Nouvelle Fonctionalite
#1
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.
Straightliner
Jamais plus vite que ma peur
[Image: signcarre.JPG]
Répondre
#2
Faudrait que tu me dises ce que tu as modifié, que je ne l'écrase pas lors des mises à jour.
[Image: vilo_castellet.png]
Répondre
#3
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"))
...
Straightliner
Jamais plus vite que ma peur
[Image: signcarre.JPG]
Répondre
#4
Bon, je uppe pour le Chel, qu'il me confirme qu'il a bien lu ce topic...
Straightliner
Jamais plus vite que ma peur
[Image: signcarre.JPG]
Répondre
#5
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 .En accord 2
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 !
Répondre
#6
(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 Big Grin

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);
        }
    }
Straightliner
Jamais plus vite que ma peur
[Image: signcarre.JPG]
Répondre


[-]
Réponse rapide
Message
Entrez votre réponse à ce message ici.

Vérification par image
Veuillez entrer le texte contenu dans l’image dans la zone de texte en-dessous. Cette procédure permet d’éviter les processus automatisés.
Vérification par image
(insensible à la casse)

Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  [blème recherche ] Le Chel 6 5,043 22-02-2021, 21:19
Dernier message: Burn

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)