Submitted by lottie14 on
Bonjour,
J'utilise Drupal 5.5. Je ne peux pas mettre le lien du site car c'est un intranet protégé par mot de passe.
J'ai créé un nouveau type de contenu ("inscrits aux projection") grâce au super module CCK. Chaque occurrence de ce type de contenu peut être créée et gérée via l'admin de Drupal bien sûr, mais j'ai aussi créé un formulaire, qui est sur un site public totalement extérieur à Drupal, pour que les gens puisse s'inscrire en ligne directement.
Pour cela j'ai donc tout simplement fait des requêtes MySql pour agir directement sur la base de données à partir des données du formulaire validé. Jusqu'ici tout va bien, car les contenus sont bien enregistrées en base, et la vue que j'ai créée dans l'admin de Drupal pour voir la liste de tous les inscrits fonctionne parfaitement. Là où il y a un problème, c'est que je ne peux pas voir/éditer/supprimer les nodes (j'arrive sur "page non trouvée") qui ont été créés via le formulaire externe. Pour les inscrits créés via l'admin de Drupal, aucun problème.
Je me dis donc que j'ai oublié certaines données à enregistrer en base, mais je ne trouve ni quoi ni dans quelles tables. Dans mes requêtes actuelles, je fais des INSERT INTO à la fois dans la table de mon type de contenu et dans la table générale node. Dans ces 2 tables, je ne vois aucune différences de données entre les nodes qui fonctionnent (ceux créés via Drupal) et les nodes qui ne fonctionnent pas (ceux créés via le formulaire externe). J'ai pensé aux alias d'URL, mais normalement ils ne sont pas obligatoire, et ça n'a pas l'air d'être ça.
Est-ce que quelqu'un a une idée de ce que j'aurais pu oublier de faire ? Merci pour ceux qui m'ont lue jusqu'au bout, j'espère que j'ai expliqué clairement mon problème.
il faut aussi faire des
Permalien Soumis par emerya le 16 Juin, 2010 - 17:30
il faut aussi faire des insert dans la table node_revision.
Mais pourquoi ne pas avoir fait un petit iframe pour l'insérer dans ton site, et donné les accès aux anonyme de soumettre le formulaire?
Merci beaucoup pour cette
Permalien Soumis par lottie14 le 16 Juin, 2010 - 17:43
Merci beaucoup pour cette réponse ultra rapide ! Je vais tester avec node_revision.
Une iframe n'était pas possible car l'intranet Drupal est protégé par un login et un mot de passe globaux au niveau du serveur, en plus de la connexion des utilisateurs (double sécurité).
Par ailleurs, ne maîtrisant pas totalement Drupal, il est plus facile pour moi de personnaliser à fond le formulaire public (qui n'est pas le même que le formulaire d'admin), surtout que je voudrais en faire d'autres plus tard agissant sur les mêmes bases mais dans des contextes encore différents.
Encore merci en tout cas.
Pourquoi n’utilises-tu pas
Permalien Soumis par tostinni le 16 Juin, 2010 - 18:15
Pourquoi n'utilises-tu pas l'API de Drupal ?
http://acquia.com/blog/migrating-drupal-way-part-i-creating-node
Je pense qu'entre la 5 et la 6 les fonctions de node_save et autres n'ont pas du trop changer...
Merci pour l’info, je ne
Permalien Soumis par lottie14 le 16 Juin, 2010 - 18:28
Merci pour l'info, je ne connaissais pas. Je jetterai un oeil la prochaine fois. En tout cas maintenant ça marche avec l'insertion dans node_revisions.