Vous n'êtes pas identifié(e).
- Discussions : Actives | Sans réponse
Annonce
Pensez d'abord à lire la FAQ, vous y trouverez probablement une solution à votre problème.
Pages : 1
#1 08-04-2022 11:13:35
- ehquionest
- Membre
- Inscription : 28-02-2010
- Messages : 49
Fonction recherche avancée dans les "choux" ?
Bonjour,
Je suis un utilisateur de iGalerie depuis plusieurs années maintenant et il faut bien le dire, c'est un outil FABULEUX !
Je me suis cependant rendu compte ce matin que lorsque j'effectue une recherche avancée avec 3 mots, je n'obtiens que des résultats partiels. Je m'explique : le résultat de ma recherche avancée me propose une série d'images (recherchées à partir des tags), mais je sais que j'ai d'autres images qui devraient y apparaître également et qui sont bien présentes dans mes galeries avec les tags correspondant. Or ces images n'apparaissent pas dans le résultat de recherche...
Une idée du soucis ?
Merci à vous !
Cordialement,
Samuel
#4
Date : 2021-12-27 10:34:17.448379
Version : 3.0
Type : PHP_WARNING
Fichier : includes/core/Update.class.php
Ligne : 30
Page : dashboard
Message : file_get_contents(http://www.igalerie.org/latestversion.txt?93qQY5g19O1uYn1Uq0154cnUTE4vmq8L): failed to open stream: no suitable wrapper could be found
Trace : #1 admin/index.php(26): Admin::start()#2 includes/admin/classes/Admin.class.php(764): require_once('/home/clients/7...')#3 includes/admin/dashboard.php(35): AdminDashboard::newVersion()#4 includes/admin/classes/AdminDashboard.class.php(155): Update::getLatestVersion()#5 includes/core/Update.class.php(30): file_get_contents('http://www.igal...')
#3
Date : 2020-04-10 12:58:50.910697
Version : 3.0
Type : PHP_USER_WARNING
Fichier : includes/core/Update.class.php
Ligne : 33
Page : dashboard
Message : file error
Trace : #1 admin/index.php(26): Admin::start()#2 includes/admin/classes/Admin.class.php(764): require_once('/home/clients/7...')#3 includes/admin/dashboard.php(35): AdminDashboard::newVersion()#4 includes/admin/classes/AdminDashboard.class.php(155): Update::getLatestVersion()#5 includes/core/Update.class.php(33): trigger_error('file error', 512)
#2
Date : 2020-04-10 12:58:50.910378
Version : 3.0
Type : PHP_WARNING
Fichier : includes/core/Update.class.php
Ligne : 30
Page : dashboard
Message : file_get_contents(http://www.igalerie.org/latestversion.txt?66pw1yQYza7CT11i0SMjq27vWR3OsNUW): failed to open stream: no suitable wrapper could be found
Trace : #1 admin/index.php(26): Admin::start()#2 includes/admin/classes/Admin.class.php(764): require_once('/home/clients/7...')#3 includes/admin/dashboard.php(35): AdminDashboard::newVersion()#4 includes/admin/classes/AdminDashboard.class.php(155): Update::getLatestVersion()#5 includes/core/Update.class.php(30): file_get_contents('http://www.igal...')
#1
Date : 2020-04-10 12:58:50.909422
Version : 3.0
Type : PHP_WARNING
Fichier : includes/core/Update.class.php
Ligne : 30
Page : dashboard
Message : file_get_contents(): http:// wrapper is disabled in the server configuration by allow_url_fopen=0
Trace : #1 admin/index.php(26): Admin::start()#2 includes/admin/classes/Admin.class.php(764): require_once('/home/clients/7...')#3 includes/admin/dashboard.php(35): AdminDashboard::newVersion()#4 includes/admin/classes/AdminDashboard.class.php(155): Update::getLatestVersion()#5 includes/core/Update.class.php(30): file_get_contents('http://www.igal...')
Dernière modification par ehquionest (08-04-2022 13:30:22)
Hors ligne
#2 08-04-2022 11:48:28
Re : Fonction recherche avancée dans les "choux" ?
Salut,
Je viens de faire des tests de mon coté et je ne constate aucun problème. Peux-tu donner un exemple précis ? Et est-ce que la case "Rechercher tous les mots" est décochée ?
Hors ligne
#3 08-04-2022 12:08:41
- ehquionest
- Membre
- Inscription : 28-02-2010
- Messages : 49
Re : Fonction recherche avancée dans les "choux" ?
Alors comme exemple précis : je recherche dans ma galerie toutes les images qui ont au moins les mots "ours polaire" ET "wrangel" (= une localité géographique) dans les tags uniquement (vu que je n'utilise pas "titre" et "description").
- Si je ne coche pas la case "Rechercher tous les mots", le résultat de recherche me donne des photos d'ours, quelque soit l'espèce (brun ou polaire) mais aussi les photos taguées avec la destination (wrangel) uniquement (donc sans ours)...
- Si je coche la case "Rechercher tous les mots", le résultat de recherche ne me donne aucun résultat...
Dernière modification par ehquionest (08-04-2022 12:12:02)
Hors ligne
#4 08-04-2022 14:29:18
Re : Fonction recherche avancée dans les "choux" ?
D'accord, je vois le soucis. Le problème vient du fait que la recherche s'effectue dans un seul tag à la fois, donc les trois mots entrés doivent se trouver dans un seul et même tag...
J'ai une solution à proposer qui devrait résoudre ce problème. Il faut remplacer le bloc de code des lignes 524-537 du fichier includes/core/Search.class.php :
$search_tags['sql'] = sprintf($this->_options(), $search_tags['sql']);
$sql = "SELECT i.item_id
FROM {tags} AS t
LEFT JOIN {tags_items} AS ti
ON t.tag_id = ti.tag_id
LEFT JOIN {items} AS i
ON i.item_id = ti.item_id
$sql_from
WHERE " . $search_tags['sql']
. $sql_where;
if (DB::execute($sql, $search_tags['params']))
{
$items_id = array_merge($items_id, DB::fetchAll('item_id', 'item_id'));
}
par celui-ci :
if (empty($this->options['all_words']))
{
$search_tags['sql'] = sprintf($this->_options(), $search_tags['sql']);
$sql = "SELECT i.item_id
FROM {tags} AS t
LEFT JOIN {tags_items} AS ti
ON t.tag_id = ti.tag_id
LEFT JOIN {items} AS i
ON i.item_id = ti.item_id
$sql_from
WHERE " . $search_tags['sql']
. $sql_where;
if (DB::execute($sql, $search_tags['params']))
{
$items_id = array_merge($items_id, DB::fetchAll('item_id', 'item_id'));
}
}
else
{
$sql_search_tags = explode(' AND ', substr($search_tags['sql'], 2, -2));
$sql_search_params = array_values($search_tags['params']);
if (count($sql_search_tags) < 10)
{
$tags_items_id = [];
foreach ($sql_search_tags as $k => $sql_tag)
{
$sql_tag = preg_replace('`:q_\d`', '?', $sql_tag);
$sql = "SELECT i.item_id
FROM {tags} AS t
LEFT JOIN {tags_items} AS ti
ON t.tag_id = ti.tag_id
LEFT JOIN {items} AS i
ON i.item_id = ti.item_id
$sql_from
WHERE ($sql_tag)" . $sql_where;
if (DB::execute($sql, $sql_search_params[$k]))
{
$tags_items_id[] = DB::fetchAll('item_id', 'item_id');
}
}
if ($tags_items_id)
{
foreach ($tags_items_id[0] as &$id)
{
for ($i = 0; $i < count($tags_items_id); $i++)
{
if (!in_array($id, $tags_items_id[$i]))
{
continue 2;
}
}
$items_id[] = $id;
}
}
}
}
Ainsi, la recherche s'effectuera différemment selon que la case "Rechercher tous les mots" est activée ou non.
Hors ligne
#5 08-04-2022 14:57:47
- ehquionest
- Membre
- Inscription : 28-02-2010
- Messages : 49
Re : Fonction recherche avancée dans les "choux" ?
Whoua, fabuleux, un grand merci ! Vous faites un boulot fantastique !
Hors ligne
Pages : 1