2009-11-26 4 views
1

Je cherche un moyen de construire une vue dans drupal6 en la laissant saisir la 'date ajoutée' d'un champ cck nodereference qui a plusieurs valeurs. Ce dont j'ai besoin, c'est d'une liste de titres de noeuds référencés, triés (desc) par la date à laquelle ils ont été ajoutés à la liste de référence.Tri des champs cck dans les vues drupal6 par 'date de révision'

J'ai essayé de configurer une vue 'node', en la laissant saisir un identifiant de noeud de l'URL et en lui laissant afficher les titres de noeud qui sont liés par une relation au champ cck. Lors du tri par 'date de révision' ou 'révision vid' j'ai évidemment la liste "normale", puisque toutes les entrées étaient présentes dans la dernière révision.

Des idées pour y remédier?

Répondre

0

Je ne suis pas sûr que ce soit réellement possible dans SQL comme je le comprends. Si je comprends bien, vous voulez la date de révision des noeuds attachés, mais ces noeuds sont joints via une relation qui fera ressembler revision_date à quelque chose comme attached_node.revision_date et attached_node_2.revision_date. Le tri par date de révision serait donc ambigu, mais vous ne pouvez pas trier sur la même colonne à partir de deux tables différentes.

Donc, vous devrez peut-être redéfinir l'objectif, ou si vous pouvez comprendre le SQL (peut-être je suis juste rempli de dinde et lent aujourd'hui) mais les vues ne peuvent pas gérer, vous pouvez utiliser hook_views_query_alter dans votre module et ajuster $query->where iirc. Vous pouvez également hook_views_pre_execute bien que ce soit nettement plus laide et exige que vous soyez en mesure d'analyser le SQL. C'est bien si vous allez juste remplacer le SQL entièrement sur certains points de vue et n'utilisez les vues que pour son merveilleux argument et ses options de sortie.

+0

"Si je comprends bien, vous voulez la date de révision des nœuds attachés" Je cherche la date à laquelle le nœud nodereferenced a été ajouté au nœud visualisé. – Haiko

+0

Ah, je comprends. Malheureusement avec le stock CCK je ne crois pas que ce soit possible. Vous pouvez certainement faire un crochet nodeapi qui facilite cela, mais je ne connais pas d'autre moyen. Il y a peut-être déjà un module pour le faire, mais je ne l'ai pas encore rencontré. Souhaitez-vous plus de description sur la façon de faire le crochet nodeapi ou êtes-vous familier avec la création de modules? En outre, je suis curieux de savoir pourquoi vous avez choisi ce chemin. Qu'est-ce que vous obtenez de savoir quand un noeud est attaché? –

+0

Eh bien, c'est comme ça. J'ai des pages qui contiennent des informations sur certains événements. Les artistes (également les noeuds) les plus susceptibles de se joindre à l'événement sont liés par un champ CCK nodereference à ce noeud. L'objectif est de permettre aux visiteurs de voir quels artistes ont été récemment ajoutés à la liste. Par ailleurs, j'ai très peu d'expérience avec la construction de modules personnalisés/hooks nodeapi. J'apprécierais vraiment si vous pouviez m'envoyer dans la bonne direction. À la votre! – Haiko

Questions connexes