Submitted by JayVee on
Bonjour,
Je cherche à savoir comment passer un argument depuis une view.
Je m'explique, en fait a partir du module view j'ai crée une page. Cette page permet d'offrir a l'utilisateur deux listes de selection pour l'affichage qu'il souhaite réalisé(utilisation des parametres "filtre" et de l'option "exposer").
Les choix se basent en fait sur les termes de taxonomie (pour la liste 1) et du type de contenu (pour la liste 2).
Suite à sa selection, je souhaiterai que des blocs répondant aux divers contenus filtrés apparaissent sur la page. Pour cela toujours dans views j'ai crée 3 blocs différents et qui correspondent aux affichages que je souhaite réalisé.
Par exemple: le terme "sport" est selectionné dans la liste1
Le bloc 1 affichera uniquement les titres liés au type de contenu "Reportages"
Le bloc 2 affichera uniquement les titres liés au type de contenu "Resultats"
Le bloc 3 affichera uniquement les titres liés au type de contenu "Boutiques"
Bien sur pour ces trois types de contenus il ne sera question que des sujets lié au terme pré-sélectionné çàd "sport".
Maintenant si l'utilisateur en plus d'avoir sélectionné "sport" dans la liste 1, il sélectionne le type de contenu "Reportages" dans la liste 2 uniquement le bloc 1 sera affiché.
Je ne sais pas si j'ai été bien clair, mais en gros je veux faire passer les différentes pré-selection effectuer sur ma page aux différents blocs que j'ai réalisé à partir du meme fichier view.
J'ai deja joué pas mal avec les options du parametre "Argument" lors de la création de chacun de mes blocs, mais pour l'instant c'est la peine seche grave.
Bonjour, Le post est ancien
Permalien Soumis par Wooha le 15 Décembre, 2011 - 16:18
Bonjour,
Le post est ancien mais il est très très proche de ce que je souhaite faire sans y arriver ... Si vous avez trouvé la solution ou des pistes pour y arriver, je suis fortement intéressé par ces connaissances.
Bonjour, Je vais essayer de
Permalien Soumis par Aya le 16 Décembre, 2011 - 14:30
Bonjour,
Je vais essayer de me penché avec vous sur ce sujet (en espérant quand même que JayVee s'en est sorti depuis le temps).
Donc pour la solution vous comment j'aurais fonctionné:
Création d'une page avec filtres comme déjà fait:
Filtre 1 -> Terme
Filtre 2 -> Type de contenu
Création des 3 Blocs avec Comme Argument:
Bloc 1 : Taxonomie Terme, Node Type
Bloc 2 : Taxonomy Terme
Bloc 3 : Taxonomy Terme
Pour l'argument Taxonomy Term dans les 3 Blocs mettre une valeur par défaut en php :
return $_GET['nom_de_largument'];
Pour avoir le nom de l'argument c'est plutôt simple il suffit d'aller sur la page de la vue et de filtrer dans la barre d'adresse vous aurez quelques choses de ce genre :
http://localhost/monsite/blabla?term_node_tid_depth=All&type=All
blabla étant le chemin
term_node_tid_depth étant le filtre par taxonomie
type le filtre par type de contenu
A vous de repérer lequel est lequel.
Pour moi l'argument par défaut donnera donc
return $_GET['term_node_tid_depth'];
Ensuite pour le bloc 1 nous avons le deuxième argument qui est le type donc nous faisons la même chose en passant un argument par défaut, celui-ci sera du coup le type:
return $_GET['type'];
Ainsi les blocs prendront les arguments des filtres passé en paramètres.
Ensuite pour l'affichage des blocs (ça se complique un peu et ne suit pas sur que se soit la meilleur des solutions.
Nous allons à l'interface de placement des blocs sur lequel nous allons mettre nos blocs dans les régions voulues.
Ensuite nous allons paramétrer chacun des bloc (bloc2 et 3 identiques au niveau du paramétrage).
Pour le bloc 1: on affectera dans le filedset "Paramètres de visibilité spécifiques à la page" la valeur "Afficher si le code PHP suivant retourne TRUE (mode PHP, experts seulement)." avec cette valeur ci:
if (arg(1) == 'blabla'){
if($_GET['term_node_tid_depth'] || $_GET['type']){
return TRUE;
}else return FALSE;
}else return FALSE;
Pour le bloc 2 et 3 même technique mais avec cette valeur:
if (arg(1) == 'blabla'){
if($_GET['term_node_tid_depth'] || !$_GET['type']){
return TRUE;
}else return FALSE;
}else return FALSE;
Faire attention de remplacer les valeur par les vôtres. Valeur à remplacer:
- blabla ( lien vers la page )
- term_node_tid_depth (nom mis pour le filtre par taxonomy
- type (nom mis pour le filtre par type)
Avec tous cela normalement vous devrait avoir les vues fonctionnelles et prenant compte des paramètres.
J'espère ne pas avoir fait de fautes dans le code ou dans l'explication.
Si vous ne pouvez pas insérer de valeurs php verifiez que le module PHP filter est activé dans la liste de vos modules.
J'attends une réponse de votre part pour savoir si cela fonctionne et vous a aidé. J’essaierai d'être le plus réactif possible afin de vous aidez dans vos développement en cette période de fêtes.
Cordialement,
AyA
Dès lecture de votre long
Permalien Soumis par Wooha le 16 Décembre, 2011 - 15:07
Dès lecture de votre long mot, je ne pouvais que réagir rapidement pour vous en remercier.
Maintenant ... j'analyse, je teste, je triture, je vous raconte ... à bientôt, dans pas trop longtemps, je l'espère ...
Je devais un retour sur cette
Permalien Soumis par Wooha le 4 Janvier, 2012 - 15:33
Je devais un retour sur cette aide de Aya.
Et bien ce fut parfaitement ça. Je précise juste qu'il a fallu exposer les filtres pour les voir dans l'URL, ce qui, pour ma connaissance d'alors, n'allait pas de soit.