Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

[Search & Gallery] - recherche dans le module Gallery
#2

La galerie n'est pas un contenu texte, je suppose que ça ne peut pas marcher avec le module search.
Crée plutôt une udt de recherche dans la bd.

Voici un exemple pour un site de booking d'artistes dans lequel je veux afficher toutes les affiches de concerts en cours sur la page d'accueil et tout cela dans un bloc qui fait défiler chaque images trouvées (le tout géré par CGSmartImage).
J'ai créé un champ personnalisé (bouton radio) avec comme valeur afficheIn (concert à venir) ou afficheOut (concert terminé).
Code :
[== PHP ==]
$db = cmsms()->GetDb();
$smarty = cmsms()->GetSmarty();
$sql = "SELECT filepath,filename
FROM ".cms_db_prefix()."module_gallery
INNER JOIN ".cms_db_prefix()."module_gallery_fieldvals ON ".cms_db_prefix()."module_gallery.fileid = ".cms_db_prefix()."module_gallery_fieldvals.fileid
WHERE ".cms_db_prefix()."module_gallery_fieldvals.value = 'AfficheIn'";
$dbretour = $db->Execute($sql);
echo "<div class='affichesCycle'>";
while ($row = $dbretour->FetchRow())
{
$image="uploads/images/Gallery/".$row['filepath'].$row['filename'];
echo '<div class="affiches"><a href="agenda">';
$smarty_data = "{cms_module module='CGSmartImage' src='$image' alias='afficheAccueil'}";
echo $smarty->display('string:'.$smarty_data);
echo '</a></div>';
}
echo "</div>";
Il te suffit de modifier la clause WHERE ".cms_db_prefix()."module_gallery_fieldvals.value = 'AfficheIn'";
par la valeur de la recherche. Si tu mets cette valeur entre %...%, ça devrait le faire.
Et comme tu cherches également sur le titre, tu dois ajouter un OR pour tester .cms_db_prefix()."module_gallery.title
Répondre


Messages dans ce sujet

Atteindre :


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