comment faire le lien entre un bloc, des vocabulaires et des articles ?

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

drupal m'a l'air de bien correspondre à mes besoins, mais j'ai du mal à piger la philosophie.
Ce que je voudrais, c'est un site assez simple avec un bloc "Articles" contenant 5 catégories d'articles. Dans le bloc Articles, un clic sur le nom d'une catégorie mène à une liste des articles rattachés à ces catégories.

Masi voilà, entre les blocs, les menus, les vocabulaires et les contenus, je m'y perds complètement.

j'ai créé un vocabulaire appelé "Articles" et 5 termes.
J'ai aussi créé un bloc appelé "Articles", mais comment faire le lien entre le vocabulaire, les termes et ce bloc ?

bref, comment mes visiteurs pourront-ils atteindre les articles ?
Merci d'avance

Corinne, enthousiaste mais perdue

C'est relativement simple en utilisant la fonction de creation de menus.
Si tu vas ds cette option de l'interface d'administration, tu devrais voir l'ensemble des menus, notamment le menu navigation.
Donc il faut creer un nouveau menu (disons articles) et ensuite rajouter un "item de menu" la tu vas rajouter un a un chacun des "termes" que tu as cree pour tes categories.
Il faut donc que tu leur donnes :
- un titre (reprends le nom du term par exemple)
- un chemin "drupal" (pour cela, generalement tu vas ds le menu "categories", la tu edites les termes de ta categories et tu vas pouvoir voir leur "id". En gros le lien de chaque terme (pour l'edition) est du genre "admin/taxonomy/edit/term/1?destination=admin%2Ftaxonomy%2F1". Oubli ce qui est apres le "?".
Donc ici notre terme a l'id 1.
Donc son chemin drupal sera : "taxonomy/term/1". Tu peux essayer en rajoutant cela ds l'url pour voir si ca marche.
- un item parent, pour cela choisis le menu "Articles" que tu viens de creer.

Tu repetes l'operation pour chaque terme et te voila avec un beau menu.

Enfin il reste a valider le bloc nouvellement creer (la creation d'un menu entraine automatiquement la creation d'un bloc, elle est pas belle la vie ? :D ). Donc tu vas ds la section "bloc" et tu remarques qu'il y a un nouveau bloc qui porte le nom "Articles". Il suffit juste de l'activer, et voila ;)

Merci, ça marche : le menu et ses terms s'affichent bien.
Il ne reste plus qu'à lier les articles à tout ça :

Les articles sont stockés dans la table "node" : comment obtenir un sommaire ? Comment lier ce sommaire à l'article de menu ? je ne vois pas dans la structure de la table "node" de champs permettant de rattacher un article à un term.

As-tu des pistes ? Je ne trouve rien dans la doc.

merci d'avance
Corinne

Merci pour vos remarques :

oui, je crois que je vais creuser la notion de book, ca me semble répondre à mes besoins.

Sinon, en effet en créant mes catégories je n'avais pas ajouté de types de contenu, ce qui explique que je ne pouvais les lier.

Bref, vos explications m'ont bien éclairée et je commence à piger l'esprit : youpi !

Corinne

[quote]Je ne vois pas dans la structure de la table "node" de champs permettant de rattacher un article à un term.
[/quote]
En fait vu que la structure des "categories" (aka taxonomies) peut etre multiple 1-n, on passe par une table intermediaire : "term_node" qui avec les champs tid te donne l'id du terme (vior la table "term_data" pour le nom du term et nid l'id du node.

Cependant, je reprends ton idee d'afficher un sommaire... En fait comme alkahan, je ne comprends pas trop bien ce que tu veux faire...

[quote]Merci, ça marche : le menu et ses terms s'affichent bien.
Il ne reste plus qu'à lier les articles à tout ça :[/quote]
Si je comprends bien a priori tes articles ne sont pas classes par terme, je me trompe ?
Pour cela, il faut autoriser tes articles a recevoir une categorie.
Tu vas donc dans categories et tu edites ton vocabulaires articles, en lui ajoutant type de contenu "page" si c'est ce que tu ustilises pour creer tes articles.
Une fois ceci fait, chaque fois que tu vas creer une page, tu pourras choisir sa categorie, et du coup automatiquement, qd ds ton menu tu cliqueras sur ton terme, tu accederas a la liste de toutes les pages ecrites qui appartiennent a ce terme ;)

Avec beaucoup de categories, tu peux par exemple utiliser le module taxonomy_menu qui va te creer automatiquement les menus que tu veux (y a taxonomy_block aussi).

Sinon pour la gestion des blocks, je pensais que ma reponse a ton precedent sujet te conviennait ?

J'ai déjà essayé avec taxonomy_block mais j'ai une erreur. En fait j'ai une catégorie principal (vocabulaire : Documentations) ensuite j'ai ajouté un premier terme (Informatique) lié à Documentations, et en dessous j'ai encore un autre terme (Hylafax) qui a pour parent "Informatique".

Documentations
- Informatique
-- Hylafax

Lorsque je veux accéder à la sous-sous-catégories Hylafax j'ai l'erreur suivante :

warning: Wrong parameter count for array_merge() in /var/www/html/drupal/modules/taxonomy.module on line 838.

warning: Bad arguments to implode() in /var/www/html/drupal/modules/taxonomy.module on line 838.

user error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') AND n.status = 1' at line 1
query: SELECT COUNT(DISTINCT(n.nid)) FROM node n INNER JOIN term_node tn ON n.nid = tn.nid WHERE tn.tid IN () AND n.status = 1 in /var/www/html/drupal/includes/database.mysql.inc on line 66.

user error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') AND n.status = 1 ORDER BY n.sticky DESC, n.created DESC LIMIT
query: SELECT DISTINCT(n.nid), n.sticky, n.title, n.created FROM node n INNER JOIN term_node tn ON n.nid = tn.nid WHERE tn.tid IN () AND n.status = 1 ORDER BY n.sticky DESC, n.created DESC LIMIT 0, 10 in /var/www/html/drupal/includes/database.mysql.inc on line 66.

Pour ce qui est de la réponse que tu m'a donné ici (http://drupalfrancais.zapto.org/?q=forum/drupal/217-gestion_des_blocks) cela marche mais c'est vraiment du Mc Gyver :(

Hehe, je suis le McGyver de Drupal ;)
Bon plus serieusement, ok ma suggestion etait un peu McGyver comme tu dis, encore que je la trouvais plutot laborieuse, mais bon ca marche bien pour qques categories et c'etait le but du topic : 5 categories.

Passons aux choses serieuses.
- as-tu teste taxonomy_menu ? Perso je l'utilise et j'adore, c'est trop pratique.
- sinon voila du vrai McGyver de compete [url=http://drupal.org/node/23415]Display a list of category titles with links to the full term[/url] et plus generalement, regarde la page des [url=http://drupal.org/node/23220]snipets PHP[/url] c'est bien pratique et en plus ca permet de comprendre un ti peu plus la machinerie de Drupal.

Bon courage.

PS: n'hesite pas a donner plus d'info je pourrais ptet t'aider.

ouppps pardon dans mon message précédent c'était pas taxonomy_block qu'il fallait lire mais taxonomy_menu et j'obtient l'erreur cité ci-dessus mais c'est à cause de ma version de php qui est en 4.2 alors qu'il faut la version 4.3 au minimum. :(

Alors pour la page Display... c'est plus du looping ;) Bon j'arrête de déconner avec les séries TV. Je trouve quand même bizar pour un CMS en version 4 que l'on soit encore obligé de "bricoler" des trucs pareil juste pour afficher la liste des catégories :( Il est aussi très difficile de gérer les droits d'accès à ces catégories.

C'est dommage parce que drupal est vraiment léger à faire fonctionner, le code n'a pas l'air trop complexe à comprendre. Pour le moment c'est cette histoire de catégories qui m'empêche de l'adopter définitivement.

Le truc c que Drupal a besoin de php 4.3.3 minimum pour fonctionner, donc si ca fait ce que tu veux, mais c juste que t'as pas le bon PHP du coup => bricolage ;)

Pour le coup des droits d'acces, taxonomy_access est pas mal.
Bon la version actuelle est galere a cause du patch de taxonomy, par contre y a une version pour la 4.7 qui marche sans patch ;)