Submitted by jptosi on
Bonjour,
je me mets à Drupal donc merci de votre aide.
Contexte : je dois créer un node par commercial qui affiche ses coordonnées et son secteur géographique de 1 à 5 départements français.
A la suite de ses infos de base, je dois afficher triées par départements ses références clients.
J'ai fait :
Un nouveau type de contenu "commerciaux" avec les champs souhaités dont secteur_geo avec un champ texte à entrées multiples. (merci CCK)
Ensuite, j'ai crée node-commerciaux.tpl.php ou je suis en train de remplacer $content par un affichage personnalisé de chaque champs.
J'ai crée un autre type de contenu "références" avec les champs titre, chantier, ville, département, typologie client.
je pense créer une view.
Questions:
J'ai plus de 3.000 références, comment faire pour les rentrer sans passer par l'éditeur.
Aurai je du plutôt créer une table à part?
Comment lier les deux types de contenu, c'est à dire récuperer les valeurs secteur_geo du commercial pour afficher les références de ses départements?
J'espère avoir été clair.
Merci d'avance
jean pierre
je reprends une réponse de
Permalien Soumis par jptosi le 11 Février, 2009 - 14:52
je reprends une réponse de Nyl sur un autre post : http://drupalfr.org/node/5571#comment-15774
Le module CCK ajoute une table par type de contenu, c'est assez bien foutu et pas spécialement consommateur de mon point de vue mais je suis pas du tout un pro du sql.
Pour afficher un node, drupal doit joindre les tables :
- node
- node revisions
- node comment (si commentaires)
- cck_ton_type_de_contenu (si CCK, appelle tous tes champs custom relatif à ton type de contenu)
En fait je vois pas en quoi ça gene de tout mettre dans la même table si tu peux trier comme tu veux et que tes requetes sont correctes, et que la table contient des clefs pour faciliter la vitesse d'éxécution sql.
En fait ces éléments on tendance à me rassurer. Je m'était basé sur un post appaement éronné qui indiquait qu'une seule table incluais tout les node.
J'ai vérifié et effectivemement, il y a bien une table créer par type de contenu. prefix_content_type_nomdutype.
Ce qui me genait c'est que pour generer une page avec 4 node de type story, la requete aurait pu attaquer une table avec 4.000 entrées. Bon meme si c'est pas énorme je pensait que sur un mutu cela pouvait avoir des implications sur les perfs.
Les exemples de site de Nyl sont de bon arguments.
La je comprends que ma table sur les 4.000 références ne sera utilisé que pour construire ma page "commercial".
Me voila rassuré
Bon après avoir enchainé
Permalien Soumis par jptosi le 11 Février, 2009 - 15:20
Bon après avoir enchainé sur le post de Nyl, voici un peu le résultat de ma nuit blanche.
J'ai commencé à regarder quelques webcast en français et anglais à 21h30 et quand j'ai ressenti une certaine lassitude, il était pas loin de 5H00 du Mat.
Il faut dire que 50 minutes sur imagecache cela passe vite.
Au bout du compte, et concernant mon souci d'affichage de références client par commercial, je suis arrivé à la conclusion CCK et View en D6.
Merci de votre avis.
Je compte utiliser : cck Node Reference
Je fait un content type "commerciaux"
Je fait un content type "départements" (numéro du departement, Nom du département et, commercial qui est un node reference qui pointe vers le content type commercial)
Je fait un content type "références" avec les champs titre, chantier, ville, typologie client et enfin un node référence département.
3 content type car le jour ou un commercial part ou change de secteur donc de département, je veux pas refaire les liens references <-> commerciaux.
Jusque la cela se tient. Non ?
Ensuite, je vais devoir me plonger dans les views pour :
Affiche la fiche d'un commercial
Inclure la liste des départements de ce commercial en listant les références.
Bon je vais voir pour comprendre ces fameuses view en D6.
Merci
Jean-Pierre
Débutant Drupal
quelques petites pistes à
Permalien Soumis par nyl auster le 11 Février, 2009 - 15:08
quelques petites pistes à explorer
-CCK node reference : permet de lier deux nodes puis de lier leurs informations avec une vue
view qui permet de créer trier par groupe (ici grouper par le champ CCK departement)
éventuellement, pourquoi ne pas créer des comptes membres pour chaque commerciaux, puis créer les fiches références à partir ces comptes? ainsi pour récupérer les références il suffit de trier par auteur. avec nodeprofile tu peux customiser les champs profils
-en cas de blocage : penser aux arguments pour les vues : c'est comme un filtre excepté qu'il passe par l'url et permet de filtrer les vues
J'ai été long à poster
Permalien Soumis par jptosi le 11 Février, 2009 - 15:55
J'ai été long à poster car j'ai eu entre temps un coup de fil mais je vois que j'avais une bonne poste avec Noderéference.
éventuellement, pourquoi ne pas créer des comptes membres pour chaque commerciaux
Je vais regarder cela car effeivement, il y a en projet de leur créer un espace membre privé. Je vais regarder Content profile qui remplace nodeprofile pour D6 .
Un seul bémol mais je l'ai ecrit après ton post, je ne veux pas lier une référence à un commercial au cas ou il change de département.
Ma liste de département, en CCK ou Taxonomy ?
Encore merci
Jean-Pierre
Débutant Drupal
salut, je peux plus t'aider
Permalien Soumis par nyl auster le 11 Février, 2009 - 16:15
salut, je peux plus t'aider aujourd'hui car j'ai un probleme très épineux à résoudre en drupal mais sans doute je repasserai demain matin.A priori je partirai plus sur du CCK qui permettrait de créer une liste déroulante avec pour clef les numéro de département et pour valeur les noms des départements mais je n'ai pas assez réfléchi à tout ça.
Bon courage.
Merci De toute façon, j'ai
Permalien Soumis par jptosi le 11 Février, 2009 - 16:28
Merci
De toute façon, j'ai encore beaucoup de chose à explorer et je pense que cette nuit va encore etre courte.
Je vais faire un peu de contenu de base ce soir, digérer la notion de menu et si je tombe pas trop tot regarder un peu les themes.
Jean-Pierre
Débutant Drupal
Bonsoir, 23h24 : j'ai
Permalien Soumis par jptosi le 11 Février, 2009 - 23:36
Bonsoir,
23h24 : j'ai commencé à saisir des infos et je parcours les tables.
Comme l'a expliqué Nyl, les éléments constituant un contenu sont répartis dans plusieurs tables.
node qui stocke le "title" du contenu
node_revisions qui reprend "title" "body" et "teaser"
content_type_nomdutype qui reprend les champs CCK.
Première constatation, je ne vois pas comment faire un import de la liste des départements vu qu'il y a des relations entre les 3 tables. Cela va etre donc long de saisir les 99 departements.
J'imagine meme pas le temps pour ajouter les 3.0000 références.
Va falloir trouver un moyen pour un import. Enfin,je reve peut être éveillé.
Jean-Pierre
Débutant Drupal
hello j'avais mal ciblé ton
Permalien Soumis par nyl auster le 12 Février, 2009 - 09:44
hello
j'avais mal ciblé ton probleme d'import.
Pour les 3000 références je comprends pas : tu voulais les importer directement mais à partir de quoi et de quel format?
On verra après pour ces histoires de listes de département; il faut d'abord voir cette histoire d'import mais il faut que tu nous dises en quel format sont tes données puisque apparemment tu disposes déjà de ces 3000 références sous une autre forme.
A partir de ça on pourra voir si drupal est réellement la bonne solution à ton souci.
Bonjour Merci Nyl. En fait
Permalien Soumis par jptosi le 12 Février, 2009 - 10:11
Bonjour
Merci Nyl.
En fait aujourd'hui, ces 3.000 références je les ai sous forme de table mysql :
nom de la commune, nom du chantier, date de réalisation, nom du commercial, département, type de client ....
Voila la base de départ.
Maintenant, "drupal est il réellement la bonne solution?"
En fait le choix du cms (modx, typolight ou drupal) est plutôt basé sur la globalité du projet. Il y a la volonté de créer un espace privé pour les commerciaux (exit Modx et sa gestion des droits), la réalisation d'enquête multipage (webform mieux qu'autoform de TL).
Maintenant, Nyl, est ce que la question n'est pas plutôt :
Est ce que CCK + View2 est la bonne solution pour l'affichage de références clients classées par département sur les node "commerciaux".
J'aurai tendance à dire non à cause :
Pour infos,cette nuit j'ai crée donc des commerciaux, quelques département et des références.
J'ai créer une vue liste_dept qui m'affiche sous forme de liste le numéro et le nom des département.
J'ai créer un display Block qui prend en argument le NID du node actif et utilise la relation (departement <-> commercial). J'ai affecté ce block à une région content-bottom.
Cela marche. quand je vais sur le node d'un commercial, le block affiche la liste des départements affectés au commercial.
Tu vois j'avance quand même. Maintenant, je vois pas comment inclure les références. Car la je dois faire une relation entre 3 content type, et obtenir une rupture au niveau des départements.
La question reste de l'import, tu as raison
Voila
Tu pourrais peut être faire
Permalien Soumis par ineation le 13 Février, 2009 - 07:43
Tu pourrais peut être faire avec panels. Panel est pas mal pour regrouper grace au "contexte" sur une page (le panel) des contenus reliés par des relations complexes .
1) Tu crées un panel pour les nodes de type "commerciaux"
2) Tu crées un contexte avec le node reference
3) Tu mets dans un bloc de ton panel le contenu du node "commerciaux"
4) Tu crées une view qui liste toutes les références clients, qui utilise un champs de regroupement département et qui filtre via un argument venant du contexte node référence (là cela devient un peu costaud)
4) Tu mets cette vue à un autre endroit du panel
5) Tu te retrouves avec un panel en 2 zone : 1 avec les info du commerciaux, 1 autre avec la liste des références de ce commercial regoupées par département.
PS: j'ai pas testé et cela fait quelques mois que je n'ai pas joué avec panel, mais a mon avis, en théorie cela peut marcher.
Sinon sans panel, ta
Permalien Soumis par ineation le 13 Février, 2009 - 07:49
Sinon sans panel, ta solution est bonne.
Il faut créer une vue qui va lister toutes les références, en list type champs, puis regrouper ces référence, par leur champs département, et prendre comme argument le node id.
Ce qui est important c'est la relation entre "ton commercial" et "sa référence client", il faut d'abord te concentrer pour afficher toutes les référence de ton commercial. Après ce n'est qu'une question de regroupement de cette liste par département.
Bonjour, Premièrement, j'ai
Permalien Soumis par jptosi le 13 Février, 2009 - 13:18
Bonjour,
Premièrement, j'ai fini l'import des mes 3000 références client dans Drupal t de la liste des départements par la meme occasions.
Pour infos, j'ai identifié dans ma base les derniers Nid et Vid utilisés.
Ensuite j'ai ouvert ma base de références client dans excel et l'ai copié sur 3 onglets.
En fait un onglet pour chaque table : node, node_revisions et content_type_references
Ensuite et bien un peu de copier coller, d'incrementation automatique de la valeur nid et vid.
j'ai pas fait une vérification pointu car je vais faire uns view pour avoir une vision sous forme de liste mas les quelques vérifications faites sont positives.
Me voila avec 3200 nodes et la possibilité pour les commerciaux de gérer eux meme leurs références. Drupal quoi.
Maintenant, il faut passer à l'étape suivante. l'affichage.
Merci Alex pour tes pistes. Panel et bien je l'ai installé et un message d'avertissement comme quoi c'est une alpha et que ce n'est pas recommandé en prod et bien cela me refroidi. surtout que sur le forum tu peux lire que les MAJ entre version alpha ne sont pas supporté. Donc je vais laisser si pas beoins.
J'ai regardé un peu plus coté view avec le petit engrenage a coté de style.
Je dois encore réfléchir un peu car j'ai :
Commercial.titre <-> departement.Node referer <-> departement.titre <-> referencesclient.Node referer <-> referencesclient.titre
Sur le node du commercial, je veux donc afficher, la liste des références sur les départements où il intervient et le tout classer par département avec comme titre de rupture le département.
mon souci c'est quand dans le content type reference client, j' n'ai aucun lien avec le commercial. (Le lien se fait via departement : reference appartient à departement qui appartient à commercial)
Pour ma view, je selectionne les champs dans le content "reference client", en argument je doit mettre le node id en cours, c'est à dire celui du commercial.
Pour le style, je choisi table et demande un regroupement par departement.
La view est faite, j'affiche un liste de références regroupée par département avec en caption le nom du département
Ensuite vient le souci de la relation?
Voila. j'ai sommeil et faim. Donc je vais manger en espérant que cela m'ouvre l'esprit.
Jean-Pierre
Débutant Drupal
J'avais mal compris ta
Permalien Soumis par ineation le 13 Février, 2009 - 14:01
J'avais mal compris ta demande.
Je vois mieux ton soucis maintenant.
Je n'ai pas le temps de répliquer ton cas, mais peux-tu me dire ce que tu as comme possibilité pour ajouter des relations à ta vue.
Dans la section "Relations" tu dois pouvoir ajouter le node reference ?
1) La relation node client: node departement doit te donner acces aux champs du type de contenu département.
2) Après est-ce que tu peux ajouter la deuxième relation node département : node commercial ? Si oui tu devrais pouvoir avoir accès à l'id du commercial pour filtrer.
a+
Alors cela marche, Dans les
Permalien Soumis par jptosi le 14 Février, 2009 - 01:21
Alors cela marche,
Dans les relations, de type contenu je peux ajouter les deux node reference
En clair, cela donne ça :
Relations
Contenu : Département - (field_c_departement)
(Département) Contenu : Commercial - (field_dept_comm)
Arguments
(Commercial) Node : Nid
Merci à vous tous et à bientôt pour la suite.
Jean-Pierre
Débutant Drupal
Super
Permalien Soumis par ineation le 14 Février, 2009 - 06:55
Super
Bonjour, Hier soir je valide
Permalien Soumis par jptosi le 23 Février, 2009 - 09:12
Bonjour,
Hier soir je valide avant de présenter la chose et cela ne marche plus.
Le regroupement ne se fait plus que sur 1 seul référence.
Avant
Département A
Référence1
Référence2
Référence3
Département B
Référence4
Référence5
Référence6
maintenant
Département A
Référence1
Département A
Référence2
Département A
Référence3
Département B
Référence4
Département B
Référence5
J'ai rien modifié et je comprends plus.
Dans les caractéristiques de l'affichage par tables, j'ai bien mis le regroupement.
Si je supprime le regroupement
Référence1 Département A
Référence2 Département A
Référence3 Département A
Référence4 Département B
Référence5 Département B
Référence6 Département B
Merci si vous avez des idées