2010-01-26 8 views
1

Je travaille sur un système d'enregistrement où l'on peut entrer le nombre de participants, ils apporteront dans un champ CCK. Je veux, à chaque fois qu'un type de nœud avec ce champ CCK est ajouté, saisir la valeur de ce champ, puis l'ajouter à une valeur variable que j'ai dans ma table de variables.Drupal: comment obtenir une valeur de champ CCK lors de l'insertion d'un noeud?

La valeur CCK insérée dans la table du champ dans la db avant mon module personnalisé en cours d'exécution lorsque quelque chose $ op est « insérer » pour hook_nodeapi? Ou existe-t-il un autre moyen de saisir directement la valeur de ce champ?

+0

Je ne comprends pas bien vous. Si vous êtes dans hook_nodeapi> insert, vous devriez avoir accès aux valeurs du formulaire soumis et, à ce moment-là, écrire une requête (ou utiliser variable_get/set) pour mettre à jour votre table. – sprugman

+1

J'allais à l'origine faire cela, mais j'ai finalement décidé d'utiliser les règles. Les règles sont assez puissantes! – geerlingguy

+0

J'étais sur le point de faire des recherches sur tout ça, quand je vous ai vu parler de règles. C'est tout ce que j'ai besoin d'entendre. – Matt

Répondre

1

Voici comment j'ai résolu ceci: J'ai utilisé le module Règles et mis en place un jeu de règles pour mettre à jour le nombre de points d'enregistrement réservés en sommant le champ CCK contenant le numéro réservé de chaque groupe. Ensuite, j'ai créé des règles pour les ajouts, les mises à jour et les suppressions de nœuds, de sorte que le numéro soit mis à jour automatiquement à tout moment.

Il était beaucoup plus facile que d'utiliser hook_nodeapi, et sera beaucoup plus facile à maintenir ...

0

oui, hook_nodeapi. Mais ce n'est pas une bonne façon de sauvegarder les données des utilisateurs dans les données de variables (chaque nouvel utilisateur ajoute une nouvelle ligne pour les variables). Juste le garder dans les champs cck.

+0

Il me semble qu'il garde un total cumulé d'inscrits ou quelque chose comme ça. S'il ajoute à une autre table, ou une valeur dans la table de variables avec la valeur d'un champ cck, il pourrait simplement mettre à jour une seule valeur à chaque fois. – sprugman

+0

je pense, il pour stocker une autre valeur. Nombre d'utilisateurs faciles à prendre à partir d'interroger la table des utilisateurs. Pour asker: soyez clair ... – Nikit

+0

sprugman avait raison - j'essayais de garder un total de déclarants, et pour obtenir cela, je voulais permettre aux utilisateurs de donner un nombre arbitraire d'inscrits par groupe. – geerlingguy