IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

[eZ Publish] créer son propre drill down avec ezfind


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 113
    Points : 74
    Points
    74
    Par défaut [eZ Publish] créer son propre drill down avec ezfind
    bonjours,

    j'ai réussis à installer ezfind et à indexer mes contenu.

    et je souhaiterai faire des catégories avec des drill down spécifique

    mais je ne sais pas du tout comment m'y prendre

    voici un exemple de drill down que j'ai trouvé
    http://www.herault-tourisme.com/hebe...iques-1-1.html

    pour commencer petit j'ai fait une classe hôtel et et je veux trier sur le critère nombre d'étoiles

    je veux donc avoir un drill down sous cette forme
    Hotel :
    5 étoiles (1)
    4 étoiles (9)
    3 étoiles (69)
    2 étoiles (144)
    1 étoile (15)
    Sans étoile (14)


    par quoi dois-je commencer ?

    en vous remerciant

  2. #2
    Membre éclairé Avatar de sboyer
    Homme Profil pro
    Développeur PHP chez OpenWide
    Inscrit en
    Février 2010
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur PHP chez OpenWide
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 348
    Points : 683
    Points
    683
    Par défaut
    Salut,

    Ce que tu veux faire se réalise en mettant en place une recherche à facettes.

    Personnellement j'ai procédé comme cela :

    J'ai ajouté mes facettes personnalisées dans ezfind.ini :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    [searchFacets]
    Facets[]
    Facets[]=facet_1
    Facets[]=facet_2
    Facets[]=facet_3
     
    [facet_1]
    Field=ma_classe/mon_attribut1
    Name=Nom à afficher 1
    Limit=10
    SolrField=attr_identifiantdemonattribut_typeindexédanssolr
     
    [facet_2]
    Field=ma_classe/mon_attribut2
    Name=Nom à afficher 2
    Limit=10
    SolrField=attr_identifiantdemonattribut_typeindexédanssolr
     
    [facet_3]
    Field=ma_classe/mon_attribut3
    Name=Nom à afficher 3
    Limit=10
    SolrField=attr_identifiantdemonattribut_typeindexédanssolr
    Puis j'ai surchargé le template content/search.tpl pour prendre en compte ces nouveaux paramètres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    {def $filterParameters = fetch( 'ezfind', 'filterParameters' )
             $defaultSearchFacets = array()}
    	{foreach ezini( 'searchFacets', 'Facets', 'ezfind.ini' ) as $facet}
    		{set $defaultSearchFacets=$defaultSearchFacets|append(
    				hash(  	'field', ezini( concat('facet_',$facet), 'Field', 'ezfind.ini' ),
      						'name',  ezini( concat('facet_',$facet), 'Name', 'ezfind.ini' ),
      						'limit', ezini( concat('facet_',$facet), 'Limit', 'ezfind.ini' ) )
    		)}
    	{/foreach}
    Pour afficher les facettes actives :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <ul>
    {foreach $defaultSearchFacets as $key => $defaultFacet}
    	              {if array_keys( $activeFacetParameters )|contains( concat( $defaultFacet['field'], ':', $defaultFacet['name']  ) )}
    	                  {def $facetData=$search_extras.facet_fields.$key}
    	                  {foreach $facetData.nameList as $key2 => $facetName}                
    	                      {if eq( $activeFacetParameters[concat( $defaultFacet['field'], ':', $defaultFacet['name'] )], $facetName )}
    	                          {def $activeFacetsCount=sum( $key, 1 )}
    	                          {def $suffix=$uriSuffix|explode( concat( '&filter[]=', $facetData.queryLimit[$key2]|wash ) )|implode( '' )|explode( concat( '&activeFacets[', $defaultFacet['field'], ':', $defaultFacet['name'], ']=', $facetName ) )|implode( '' )}
    				              <li>
    				                  <a class="filter_selected" href={concat( $baseURI, $suffix )|ezurl}>{$defaultFacet['name']} &raquo; {$facetName}</a>
    				              </li>                        
    	                      {/if}
    	                  {/foreach}
    	              {/if}          
    	          {/foreach}
    </ul>
    Pour afficher les autres facettes disponibles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    {def $facetData=array()}
    	          <ul id="facet-list">
    	          {foreach $defaultSearchFacets as $key => $defaultFacet}
    		          {if array_keys( $activeFacetParameters )|contains( concat( $defaultFacet['field'], ':', $defaultFacet['name']  ) )|not}
    		          <li>
    		            {set $facetData=$search_extras.facet_fields.$key}
    		              <div class="facet_name"><strong>{$defaultFacet['name']}</strong></div>
    		              <ul>
    		                {foreach $facetData.nameList as $key2 => $facetName}
    			                {if ne( $key2, '' )}
    			                <li>
    			                    <a href={concat( $baseURI, '&filter[]=', $facetData.queryLimit[$key2]|wash, '&activeFacets[', $defaultFacet['field'], ':', $defaultFacet['name'], ']=', $facetName, $uriSuffix )|ezurl}>                
    			                    {$facetName}</a> ({$facetData.countList[$key2]})</a>
    			                </li>
    			                {/if}
    		                {/foreach}
    		              </ul>
    		          </li>
    		          {/if}
    	          {/foreach}
    	          {undef $facetData}
    C'est assez compliqué à prendre en main...
    Bon courage

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 113
    Points : 74
    Points
    74
    Par défaut
    merci,

    je vais donc commencer par ça

    par contre pour juste pour bien comprendre
    tu surcharges content/search.tpl dans ton design c'est bien ça ?
    donc c'est la page search que tu affiche toujours ?

    le truc c'est que je veux pouvoir faire plusieurs catégories avec chacune un drill down spécifique

    je suppose que je doit donc faire plusieurs templates ?
    et ces templates doivent se trouver dans extension/ezfind/design/<mon design>/override/templates/full/ nan ?

    j'ai déjà essayé comme ça en voulant modifier la requette ezfind
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    {set $search=fetch( ezfind,search,
                            hash( 'query', $search_text,
                                  'offset', $view_parameters.offset,
                                  'limit', $page_limit,
                                  'sort_by', hash( 'score', 'desc' ),
                                  'facet', $defaultSearchFacets,
                                  'filter', $filterParameters,
                                  'publish_date', $dateFilter,
                                  'spell_check', array( true() )
                                 ))}
    en la remplaçant par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    {set $search=fetch( ezfind,search,
                            hash( 'query', '',
                                  'parent_node_id', 228,
                                  'offset', $view_parameters.offset,
                                  'limit', $page_limit,
                                  'sort_by', hash( 'score', 'desc' ),
                                  'facet', $defaultSearchFacets,
                                  'filter', $filterParameters,
                                  'publish_date', $dateFilter,
                                  'spell_check', array( true() )
                                 ))}
    mais je n'ai aucun résultat

  4. #4
    Membre éclairé Avatar de sboyer
    Homme Profil pro
    Développeur PHP chez OpenWide
    Inscrit en
    Février 2010
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur PHP chez OpenWide
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 348
    Points : 683
    Points
    683
    Par défaut
    Citation Envoyé par ricozor Voir le message
    tu surcharges content/search.tpl dans ton design c'est bien ça ?
    donc c'est la page search que tu affiche toujours ?
    Oui c'est bien ça

    Citation Envoyé par ricozor Voir le message
    je suppose que je doit donc faire plusieurs templates ?
    et ces templates doivent se trouver dans extension/ezfind/design/<mon design>/override/templates/full/ nan ?
    Non surtout pas, tous tes templates doivent se trouver dans tes extensions persos. Il ne faut jamais modifier ou ajouter un seul fichier dans les extensions existantes.

    Citation Envoyé par ricozor Voir le message
    mais je n'ai aucun résultat
    As-tu bien démarré ton serveur solr et indexé le contenu ?
    Regarde les instructions d'installation de ezfind

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 113
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par sboyer Voir le message
    Oui c'est bien ça
    bon alors je vais déjà surcharger content/search.tpl dans mon design perso et voir ce que ça donne.

    Citation Envoyé par sboyer Voir le message
    As-tu bien démarré ton serveur solr et indexé le contenu ?
    Regarde les instructions d'installation de ezfind
    Solr est bien lancé et mes éléments sont bien indexé, j'ai des résultats quand je fait un search full texte, et le drill down opar defaut marche

    Citation Envoyé par sboyer Voir le message
    Non surtout pas, tous tes templates doivent se trouver dans tes extensions persos. Il ne faut jamais modifier ou ajouter un seul fichier dans les extensions existantes.
    ce que souhaite faire vraiment c'est un template 'catégorie' qui contient un drill down ce n'est donc pas content/search que je doit surcharger mais je doit faire un autre template qui fonctionne de la même manière que content/search.tpl nan ? c'est pour ça que je pensait que je devait le créer dans extension/ezfind/design/<mon design>/override/templates/full/ mais donc il faut que que je le fasse dans extension/<mon design>/design/ezwebin/override/templates/full/ (<mon design> est une surcharge de ezwebin)

    tu en penses quoi ?

  6. #6
    Membre éclairé Avatar de sboyer
    Homme Profil pro
    Développeur PHP chez OpenWide
    Inscrit en
    Février 2010
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur PHP chez OpenWide
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 348
    Points : 683
    Points
    683
    Par défaut
    Ce que tu peux faire dans ce cas c'est créer un template parts/drill_down.tpl et faire un include de ce template dans ta surcharge de content/search.tpl

    Pour l'emplacement de tes templates :
    extension/<ton_extension>/design/<ton_design>/templates/content/search.tpl

    et
    extension/<ton_extension>/design/<ton_design>/templates/parts/drill_down.tpl

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 113
    Points : 74
    Points
    74
    Par défaut
    concernant ezfind.ini

    j'édite directement ce fichier ezfind.ini ou il vaut mieux faire mes modif dans un fichier ezfind.ini.append.php ?

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 113
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par sboyer Voir le message
    Ce que tu peux faire dans ce cas c'est créer un template parts/drill_down.tpl et faire un include de ce template dans ta surcharge de content/search.tpl

    Pour l'emplacement de tes templates :
    extension/<ton_extension>/design/<ton_design>/templates/content/search.tpl

    et
    extension/<ton_extension>/design/<ton_design>/templates/parts/drill_down.tpl
    je ne comprend pas pourquoi je ne peu pas mettre mon template dans full

    ça permet quoi de le mettre dans parts ?

  9. #9
    Membre éclairé Avatar de sboyer
    Homme Profil pro
    Développeur PHP chez OpenWide
    Inscrit en
    Février 2010
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur PHP chez OpenWide
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 348
    Points : 683
    Points
    683
    Par défaut
    Citation Envoyé par sboyer Voir le message
    Il ne faut jamais modifier ou ajouter un seul fichier dans les extensions existantes.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 113
    Points : 74
    Points
    74
    Par défaut
    Ok j'ai bien compris que je ne modifier pas mes extension existantes.

    je fais donc bien mes templates dans mon extension de design

    mais est-ce que je peut faire mon template de drill down dans full soit

    extension/<mon design>/design/ezwebin/override/templates/full/drill_down.tpl ?

  11. #11
    Membre éclairé Avatar de sboyer
    Homme Profil pro
    Développeur PHP chez OpenWide
    Inscrit en
    Février 2010
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur PHP chez OpenWide
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 348
    Points : 683
    Points
    683
    Par défaut
    Les templates dans full correspondent à des vues full... C'est à dire à un appel du module "content/view", avec le paramètre "full".

    Là tu n'affiches pas une vue full mais tu appelles le module "content/search".

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 113
    Points : 74
    Points
    74
    Par défaut
    OK j'ai réussi à faire marché ton exemple en créant mes 3 facettes mais j'ai des problèmes de résultats, j'ai compris pourquoi mais je ne sais pas comment les corrigé

    pour ma 1ère facette j'ai fait un attribut de type select avec les critères suivants :
    aucune étoile, 1 étoile, ..., 5 étoiles.
    pb : la recherche sur le filtre n'est pas strict, j'ai donc toutes mes fiches qui ont l'attribut nombre d'étoile renseigné qui remonte

    j'ai compris comment faire une recherche strict sur query, par contre dans filter ça ne marche pas pour les texte qui sont passé dans filter[]

    car la valeur de $facetData.queryLimit[$key2] est
    attr_mon_attribut_type:ma valeur de recherche
    et je veux
    attr_mon_attribut_type:"ma valeur de recherche"
    pour que ça marche
    je vais faire un slipt et un join pour rajouter les guillemets autour de ma valeur de recherche

    y a t'il un moyen plus simple, genre un paramètre à passer pour faire une recherche strict sur la valeur des filtres ?

  13. #13
    Membre éclairé Avatar de sboyer
    Homme Profil pro
    Développeur PHP chez OpenWide
    Inscrit en
    Février 2010
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur PHP chez OpenWide
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 348
    Points : 683
    Points
    683
    Par défaut
    Salut,
    Normalement les espaces ne posent pas de problèmes et ne requièrent pas de guillemets.
    Exemple : /content/search?SearchText=lorem ipsum&filter[]=attr_categories_k:Carrières et métiers&activeFacets[rubric/categories:Catégories]=Carrières et métiers

    Tout dépend de la manière dont tes attributs sont indexés dans solr.
    Est-ce que solr sépare chaque mot ou indexe le contenu avec les espaces ?

    Pour le savoir :
    1. Va sur l'interface admin de solr : http://localhost:8983/solr/admin/
    2. Clique sur "Schema browser"
    3. Cherche ton attribut dans la colonne de gauche (section FIELDS), sous la forme "attr_mon_attribut_type"
    4. Regarde en haut de page les différentes valeurs indexées

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 113
    Points : 74
    Points
    74
    Par défaut
    j'ai regardé mes différentes valeurs indexées de attr_nombre_d_etoiles_s

    term --> frequency
    --> 8
    0_etoile --> 7
    5_etoiles --> 1
    Aucune étoile --> 1
    1 étoile --> 1

    voici ce que j'ai.

    c'est donc bien la chaîne de caractères entière qui est indexée et pas les mots 1 par 1

    pourtant j'ai refait les testes avec et sans les guillemets
    sans les guillemets :
    0_etoile et 5_etoiles me renvoi bien le bon nombre de résultats
    Aucune étoile et 1 étoile me renvoi tous les résultats qui contiennent le mot etoile dans l'attribut nombre d'étoile,

    avec les guillemets, ça marche correctement, j'ai le bon nombre de résultats quelque soit la valeur selectionnée

    Voici l'explode/implode que j'ai fait pour ajouter les guillemets au bon endroit :

    dans la partie affichage des facettes actives :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    {def $queryLimit = concat( $facetData.queryLimit[$key2]|wash|explode(':')|implode(':"') , '"')}
    {*def $queryLimit =$facetData.queryLimit[$key2]|wash*}
    {def $suffix=$uriSuffix|explode( concat( '&filter[]=', $queryLimit ) )|implode( '' )|explode( concat( '&activeFacets[', $defaultFacet['field'], ':', $defaultFacet['name'], ']=', $facetName ) )|implode( '' )}
    dans la partie affichages des autres facettes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    {def $queryLimit = concat( $facetData.queryLimit[$key2]|wash|explode(':')|implode(':"') , '"')}
    {*def $queryLimit =$facetData.queryLimit[$key2]|wash*}
    <a href={concat( $baseURI, '&filter[]=', $queryLimit, '&activeFacets[', $defaultFacet['field'], ':', $defaultFacet['name'], ']=', $facetName, $uriSuffix )|ezurl}>                
    {$facetName}</a> ({$facetData.countList[$key2]})

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 113
    Points : 74
    Points
    74
    Par défaut
    bon j'ai à peu près compris le principe du drill down,

    maintenant je souhaiterait en faire un un peu plus complexe :
    sur plusieurs niveaux (des critères qui apparaissent si le parent a été coché)

    j'ai réussis sur 2 niveaux en gérant au cas par cas

    mais si je veux le faire sur n niveaux et n critères, est-ce que ça existe déjà ?
    si je veux le faire moi même j'ai l'impression que je vais m'embarquer dans un truc assez complexe.

    En vous remerciant,

    Eric

  16. #16
    Membre éclairé Avatar de sboyer
    Homme Profil pro
    Développeur PHP chez OpenWide
    Inscrit en
    Février 2010
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur PHP chez OpenWide
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 348
    Points : 683
    Points
    683
    Par défaut
    Salut,

    Ce système de facettes peut fonctionner à plusieurs niveaux, dans la mesure où quand une facette est sélectionnée, les autres facettes sont automatiquement filtrées selon les résultats.

    Cependant si tu as besoin de mettre en place une structure conditionnelle, peut-être que ça ne relève plus des facettes ?

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 113
    Points : 74
    Points
    74
    Par défaut
    oui c'est bien une structure conditionnelle que j'ai besoin de faire

    je pense qu'il y moyen de boucler sur les éléments en faisant qq chose dans le genre dans mon fichier ezfind.ini :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
    [searchFacetsHebergements]
    Niveau=0
    Facets[]
    Facets[]=facet_hebergements_1
    Facets[]=facet_hebergements_2
    Facets[]=facet_hebergements_3
     
     
     
    [facet_hebergements_1]
    Niveau=1
    Parent=searchFacetsHebergements
     
    Field=objet_touristique_fiche_hebergements/type_obt
    Name=Type d'hébergements
    Limit=10
    SolrField=attr_type_obt_lk
     
    Facets[]
    Facets[]=hotels
    Facets[]=campings
    Facets[]=chambres_dhotes
     
    [facet_hebergements_1_hotels]
    Niveau=2
    Parent=facet_hebergements_1
     
    Field=objet_touristique_fiche_hebergements/classement
    Name=Nombre d'étoile Hôtels
    Limit=10
    SolrField=attr_classement_s
     
    [facet_hebergements_1_campings]
    Niveau=2
    Parent=facet_hebergements_1
     
    Field=objet_touristique_fiche_hebergements/classement
    Name=Nombre d'étoile Campings
    Limit=10
    SolrField=attr_classement_s
     
    [facet_hebergements_1_chambres_dhotes]
    Niveau=2
    Parent=facet_hebergements_1
     
    Field=objet_touristique_fiche_hebergements/sub_classements
    Name=Gîtes de France
    Limit=10
    SolrField=attr_sub_classements_s
     
    Facets[]
    Facets[]=gites_de_france
    Facets[]=cles_vacances
     
    [facet_hebergements_1_chambres_dhotes_gites_de_france]
    Niveau=3
    Parent=facet_hebergements_1_chambres_dhotes
     
    Field=objet_touristique_fiche_hebergements/sub_classements_gites_de_france
    Name=Gîtes de France
    Limit=10
    SolrField=attr_sub_classements_gites_de_france_s
     
    [facet_hebergements_1_chambres_dhotes_cles_vacances]
    Niveau=3
    Parent=facet_hebergements_1_chambres_dhotes
     
    Field=objet_touristique_fiche_hebergements/sub_classements_cles_vacances
    Name=Clé vacances
    Limit=10
    SolrField=attr_sub_classements_cles_vacances_s
     
    [facet_hebergements_2]
    Niveau=1
    Parent=searchFacetsHebergements
    Field=objet_touristique_fiche_hebergements/piscine
    Name=Piscine
    Limit=10
    SolrField=attr_piscine_b
     
    [facet_hebergements_3]
    Niveau=1
    Parent=searchFacetsHebergements
    Field=objet_touristique_fiche_hebergements/classifications
    Name=Classifications
    Limit=10
    SolrField=attr_classifications_lk
    le truc c'est pour gérer l'affichage des facettes actives et inactives mère et fille,
    j'ai besoin de savoir ou je me trouve dans mes tableaux, je compte donc me servi des paramètres Niveau et Parent, et je doit les passer dans mon url.

    Bref c'est chaud

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 113
    Points : 74
    Points
    74
    Par défaut
    question subsidiaire

    à quoi sert le paramètre Limit ?

    j'ai changé sa valeur, je n'ai vu aucune différence
    et je ne trouve nul part dans le code l'endroit ou la donnée est exploitée.

  19. #19
    Membre éclairé Avatar de sboyer
    Homme Profil pro
    Développeur PHP chez OpenWide
    Inscrit en
    Février 2010
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur PHP chez OpenWide
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 348
    Points : 683
    Points
    683
    Par défaut
    Le paramètre "Limit" est pris en compte lors de la définition des facettes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    {def $filterParameters = fetch( 'ezfind', 'filterParameters' )
             $defaultSearchFacets = array()}
    	{foreach ezini( 'searchFacets', 'Facets', 'ezfind.ini' ) as $facet}
    		{set $defaultSearchFacets=$defaultSearchFacets|append(
    				hash(  	'field', ezini( concat('facet_',$facet), 'Field', 'ezfind.ini' ),
      						'name',  ezini( concat('facet_',$facet), 'Name', 'ezfind.ini' ),
      						'limit', ezini( concat('facet_',$facet), 'Limit', 'ezfind.ini' ) )
    		)}
    	{/foreach}
    Je pense que c'est le nombre de proposition max à afficher dans la facette (ex: dans la catégorie "Hébergement", on peut avoir "Maison", "Chateau", "Tente".... Si on met "Limit" à 2, On affichera que "Maison" et "Chateau". A vérifier.

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 113
    Points : 74
    Points
    74
    Par défaut
    justement non ce n'est pas ça, j'ai testé

    j'ai fait une recherche de la variable 'limit' elle est bien enregistrer dans le tableau $defaultSearchFacets mais elle n'est pas réutilisée dans le reste du code.

    Enfin ce n'est pas vraiment gênant pour mon fonctionnement,

    et je sais que je peu utiliser cette variable si je veux limiter le nombre de propositions si j'ai besoin, il faudra juste adapter un peu le code de l'affichage des propositions

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/10/2015, 19h34
  2. Réponses: 14
    Dernier message: 15/01/2014, 15h37
  3. Créer son propre système de fichiers
    Par L'immortel dans le forum Programmation d'OS
    Réponses: 15
    Dernier message: 15/12/2013, 22h16
  4. Créer son propre LayoutManager
    Par tomburn dans le forum Agents de placement/Fenêtres
    Réponses: 9
    Dernier message: 17/03/2005, 16h15
  5. créer son propre protocole
    Par matthew_a_peri dans le forum Développement
    Réponses: 11
    Dernier message: 04/03/2005, 14h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo