Submitted by evets on
Bonjour,
J'ai un petit soucis que je n'arrive pas à résoudre avec Views sous drupal 7
J'ai un type de contenu "Etablissement"
J'ai 2 vocabulaires :
- "Rubrique" qui correspond à Hotels, Restaurants etc.....
- "Villes" qui correspond à Paris, Marseille etc....
J'ai lié mon Type de contenu à ces 2 vocabulaires lors de la saisie d'un contenu de type "Etablissement". Tout est OK.
Une fois les contenu enregistré, je crée une vue avec Views. Je désire juste que les restaurants de Paris soient affichés.
Je paramètre donc :
- Critères de filtrage
Contenu : Publié (Oui)
Contenu : Type (= Etablissement)
- Paramètres de la page
Chemin: /%-%.html
- Relations
Contenu : Taxonomy terms on node () avec choix des vocabulaires "Rubrique" et "Villes" et j'"exige" cette Relation.
- Filtres contextuels
(terme) Terme de taxonomie : Identifiant (ID) du terme
Cela marche très bien dans l'update Preview. avec les paramètres 104-106.html qui correspond aux paramètres id de taxonomie "104" pour la rubrique "Restaurant" et l'id de taxonomie "106" pour la "Ville" Paris
En revanche, en tapant l'url comme ceci la page est non trouvée :-( : http://localhost/monsite/104-106.html
De plus, ce que je souhaite, c'est d'avoir à taper non pas http://localhost/monsite/104-106.html, ni http://localhost/monsite/Restaurant-Paris.html mais que l'url soit rewritée de cette manière : http://localhost/monsite/restaurant-paris.html comme le font les modules Pathauto et Tansliteration
Avez-vous des pistes svp ?
Merci !!!!
Bonjour, De ce que j’ai
Permalien Soumis par Marina_Kha le 19 Juillet, 2011 - 08:17
Bonjour,
De ce que j'ai compris, l'argument (ou les arguments) passe par l'URL. Il me semble donc contradictoire de demander un filtrage dynamique sur des tid (104-106) ET leur traduction en termes intelligibles dans l'adresse (restaurant-paris).
Soit vous envoyez à views 104-106, soit vous lui envoyez restaurant-paris et lui construit sa vue en fonction de cet argument.
Merci pour votre réponse. Ce
Permalien Soumis par evets le 20 Juillet, 2011 - 13:03
Merci pour votre réponse.
Ce que je trouve bizarre, c'est que le preview marche bien en mettant mes paramètres 104 et 106 mais quand je souhaite afficher la page, il me met "Page non trouvée" ;-(
Je ne comprend pas pourquoi ?
J’en conclus que c’est sans
Permalien Soumis par Marina_Kha le 20 Juillet, 2011 - 13:18
J'en conclus que c'est sans doute la façon dont vous faites passer vos arguments qui n'est pas bonne.
Pourtant, j’ai refait ma vue
Permalien Soumis par evets le 20 Juillet, 2011 - 14:35
Pourtant, j'ai refait ma vue avec qu'un seul argument (enfin "filtre contextuel" dans ma version 7.3 de Views) et tout semble OK : Voici la requête SQL générée :
SELECT node.created AS node_created, node.nid AS nid
FROM
{node} node
INNER JOIN {taxonomy_index} taxonomy_index ON node.nid = taxonomy_index.nid
WHERE (( (node.status = '1') AND (node.type IN ('etablissement')) AND (taxonomy_index.tid = '105') ))
ORDER BY node_created DESC
LIMIT 10 OFFSET 0
L'aperçu est bon mais j'ai toujours "Page non trouvée" quand je mets mon chemin défini.
J'ai supprimé tous les alias d'url de pathauto et toujours le même problème de Page non trouvée :-( Bizarre bizarre... :-(
En fait, mon problème de
Permalien Soumis par evets le 20 Juillet, 2011 - 16:14
En fait, mon problème de "Page non trouvée" venait du fait de mon url. En effet, je mettais directement ma vue à la racine et mon url etait donc : -http://localhost/monsite/104-106.html
J'ai modifié mon chemin en /liste/%/% et à présent l'adresse -http://localhost/monsite/liste/105/106 marche parfaitement bien avec comme arguments :
- Contenu : Nom Rubrique
- Contenu : Nom Ville
Ces derniers sont des term reference de taxonomie lié à mon type de contenu Etablissement.
Donc à présent ca marche, il ne me reste plus qu'à transformer cette url en -http://localhost/monsite/liste/restaurant-paris.html ou mieux encore -http://localhost/monsite/restaurant-paris.html et là.... c'est pas gagné :-(
…mais y’a du progrès. Bravo !
Permalien Soumis par Marina_Kha le 20 Juillet, 2011 - 16:28
...mais y'a du progrès. Bravo !
merci ! je m’accroche :-p
Permalien Soumis par evets le 20 Juillet, 2011 - 16:51
merci ! je m'accroche :-p
C’est bon, j’ai trouvé !! En
Permalien Soumis par evets le 21 Juillet, 2011 - 09:08
C'est bon, j'ai trouvé !!
En fait, c'est Views3 qui pose problème. Si cela doit arriver à quelqu'un d'autre, voici les étapes :
Pour des arguments autre que l'id, voici les étapes :
Choisir dans "Contextual filters" --> "Content: Has taxonomy term ID"
Choisir dans les options "Display all results for the specified field"
Cocher : "Specify validation criteria"
Validator: "Taxonomy Term"
Selectionner le vocabulaire désiré
Enfin choisir le "Filter value type" : Term Name converted to Term ID
J'espère que c'est la bonne méthode mais cela marche pour moi à présent en tapant l'url :
http://localhost/monsite/liste/hotel/bordeaux
Bravo pour la constance et
Permalien Soumis par Marina_Kha le 21 Juillet, 2011 - 09:39
Bravo pour la constance et l'opiniâtreté !
Je rebondis sur mon post
Permalien Soumis par evets le 25 Juillet, 2011 - 15:35
Je rebondis sur mon post résolu pour un affichage de vue de type Page.
En effet, je souhaite à présent, et pour clore définitivement ce post, récupérer les arguments à travers un affichage de vue de type "Bloc". J'ai beau cherche sur internet, je ne trouve pas bonheur :-(
Ce bloc doit s'afficher dans http://localhost/monsite/liste/hotel/paris, même page que précédemment.
Voici ce que j'ai effectué à travers l'interface d'admin views3 de Drupal7 :
Add Block
Display name: BlockCoupsdeCoeurCateg
Format: Grid
Fields
Content: Title
Filter criteria
Content: Published (Yes)
Content: Type (= Etablissement)
Sort criteria
Content: Post date (desc)
Global: Random (asc)
Block settings
Block name: Bloc Coups de Coeur Categ
Pager
Use pager: Display a specified number of items | 4 items
Contextual filters
Add the filter: "Content: Has taxonomy term ID"
This Block (override)
Provide default value
Type: Taxonomy Term ID from URL
Je coche "Load default filter from node page, that’s good for related taxonomy blocks."
Je choisis mon vocabulaire désiré : "Rubrique"
Je coche : «Specify validation criteria»
Validator : «Taxonomy Term»
Je sélectionne le vocabulaire désiré : "Rubrique"
Enfin je choisi le «Filter value type» : Term Name converted to Term ID
Je crée un deuxième même filtre contextuel pour le vocabulaire "Ville"
Machine Name: block_coupcoeurcateg
J'intègre ensuite ce bloc dans une région de mon template de page.
Dans mon "Preview with contextual filters" je mets hotel/paris, ca marche super !! En revanche quand j'affiche ma page http://localhost/monsite/liste/hotel/paris, le bloc ne s'affiche pas :-(
J'ai dû loupé une étape mais là je suis bloqué :-(
Merci pour votre aide....
Bon en fait quand j’écris mes
Permalien Soumis par evets le 25 Juillet, 2011 - 16:53
Bon en fait quand j'écris mes problèmes, je finis par les résoudre :-)
Dans "Provide default value", il faut choisir "PHP Code" et mettre l'argument de l'url désiré : return arg(X);
Bonjour à tous ! Je rebondis
Permalien Soumis par evets le 12 Octobre, 2011 - 17:41
Bonjour à tous !
Je rebondis sur ce vieux post car y'a un truc qui me turlupine ;-)
en fait,j'ai fini par faire une vue qui fonctionne mais qui a comme chemin : /guide/%/rubrique/%
Le 1er % est le nom d'une ville et le 2eme le nom de la rubrique.
Or, je souhaiterais une url avec l'extension .html
J'ai donc mis, dans le paramètres views de la page, le chemin : /guide/%/rubrique/%.html
Cependant, pour mes tests, cela ne fonctionne pas pour l'url http://www.monsite.local/guide/bordeaux/rubrique/mode.html
En revanche pour l'url suivante, url un peu bizarre, cela fonctionne dans l'update preview : http://www.monsite.local/guide/bordeaux/rubrique/%.html/mode
Savez-vous comment je pourrais faire pour avoir une url qui ressemble à http://www.monsite.local/guide/bordeaux/rubrique/mode.html et qui fonctionne ? Pathauto ?
Merci !!
Pathauto ne semble
Permalien Soumis par Wayen le 14 Octobre, 2011 - 04:23
Pathauto ne semble malheureusement pas fonctionner avec les chemins des views. J'étais confronté au même problème, et je n'ai trouvé qu'une seule solution qui serait dans ton cas:
/guide/%/rubrique/%
Ensuite il faut utiliser les templates pour ajouter .html aux liens qui seront cliqués (sommaire d'articles par exemple), et dans la view qui a le chemin écrit au dessus il faut utiliser php pour supprimer .html de l'argument reçu. (Contextual filter, cocher specify validation criteria, validator php code avec par exemple le code:
$handler->argument = preg_replace('/.html$/i', '', $handler->argument);
return true;
Si quelqu'un à une autre solution je suis interessé.
bonne bidouille en effet.
Permalien Soumis par evets le 17 Octobre, 2011 - 18:02
bonne bidouille en effet. Bravo ;-)
Salut evets, Dans ce cas ton
Permalien Soumis par rorschach le 19 Octobre, 2011 - 09:16
Salut evets,
Dans ce cas ton chemin est de quel type ?
J'essai de faire comme toi avec pour chemin %/% car mes url sont du type
vocabulaire/terme
ingredients/oignon