ciao, spiego brevemente quello che devo fare:
ho creato un nuovo tipo di dato: 'asta'.
Ho fatto diverse modifiche al file comment.module.php per gestire questo tipo di contenuto come un asta
quello che ora mi manca è far si che dopo il primo commento il nodo che inizialmente ha un tag: 'asta non iniziata'
passi automaticamente ad un altro tag: 'asta in corso'
il vocabolario associato prevede 3 termini: 'asta non iniziata', 'asta in corso', 'asta chiusa'
ho studiato un po il modulo che gestisce la tassonomia....sembra che debba utilizzare la funzione: taxonomy_nodeapi($node, $op, $arg = 0)
o al massimo la funzione: taxonomy_node_save($node, $terms)
arrivo al punto:
nel file comment.module.php
faccio un controllo nella funzione: comment_save($edit)
per capire se il commento che si sta inserenso è il primo per questo nodo
a questo punto potrei chiamare una delle due funzioni che ho indicato prima ma il problema è che
il parametro $node (delle due funzioni di taxonomy.module.php)
è un oggetto diverso da quello che potrei ottenere con: node_load($edit['nid']) all'interno della funzione comment_save($edit).
e qui mi sono bloccato.....chi mi sa dire come fare?
sono fuori strada? esiste un modo più semplice per cambiare i tag di un nodo 'al volo' quando si inserisce il primo commento??
grazie. Francesco.
Hemm... no scusa, ripensa un attimo alla tua politica di gestione del tutto... incominciamo a dire che un commento non è un nodo, nel tuo caso perché non hai usato un nodo anziché un commento? Molte più funzionalità e sopratutto il commento non è ciò che ti serve.
Altra cosa che non avrei sicuramente fatto è di modificare il modulo comment (sopratutto pesantemente), piuttosto un nuovo modulo che crea il tuo contenuto aste, sicuramente più pulito, portabile e facilmente integrabile (pensa alle fasi di aggiornamento successive!)
Se proprio non puoi andare a fare la modifica (ripeto, pensaci seriamente, non c'è modo semplice di agire, altrimenti), potresti pensare di andare a modificare anche taxonomy (tanto modificato per modificato) per far usare CID anziché NID, ma IMHO è una pessima scelta.
PS: ti ho già sconsigliato di usare comment? :D
Ciao
Marco
--
My blog
Working at @agavee
ciao,
sicuramente mi sono espresso malissimo....rileggendo il post a me sembra chiaro ma solo perchè l'ho scritto io :P
allora cerco di spiegarmi meglio...
innanzitutto ti do pienamente ragione che un nuovo modulo 'aste' sarebbe stata la scelta più intelligente anche e soprattutto in prospettiva di aggiornamenti futuri e riciclo del codice....purtroppo ho scelto di modificare i moduli esistenti per chiudere il lavoro in pochi giorni....è un sito che gestirà le aste del fantacalcio....e avrà non più di 12 utenti....
la politica è questa:
creo un nuovo tipo di dato: aste
a cui associo dei vocabolari tra cui uno chiamato stato dell'asta che ha come termini: asta chiusa, asta in corso, asta non iniziata
quindi ogni calciatore per cui si svolgerà l'asta sarà un nuovo nodo di tipo asta
quando inserisco il calciatore (creando il nuovo nodo) gli associo il tag: asta non iniziata
e quindi ogni commento al nodo x rappresenterà un offerta per quel calciatore x...
quindi ho modificato il comment.module.php con piccole sciocchezze....un paio di if cioè:
si stà per inserire un commento? se il commento è associato ad un nodo di tipo asta controlla che si inserisca un numero intero e superiore ai commenti precedenti....se questo non accade non faccio inserire il commento notificando con watchdog e drupal_set_message il motivo....
ora il mio problema è che nel momento dell'inserimento del primo commento per il nodo x
(che equivale a dire: nel momento in cui per il calciatore x è stata fatta la prima offerta)
vorrei che si cambiasse il tag di quel nodo....da asta non iniziata ad asta in corso
quindi cosa ho pensato di fare...
sempre nel file comment.module.php nella funzione: comment_save($edit)
prima di inserire il commento per il nodo x vorrei modificare la taxonomy del nodo x cambiando il tag come detto sopra....
qual'è il problema che mi ha bloccato?
dopo aver capito che devo utilizzare una delle 2 funzioni: taxonomy_nodeapi($node, $op, $arg = 0) o taxonomy_node_save($node, $terms) presenti nel file taxonomy.module.php
ho fatto un print_r del parametro $node all'inizio delle due funzioni e ho notato che l'oggetto è diverso da quello che mi restituisce node_load()
quindi io non saprei come passargli i parametri a queste due funzioni del modulo taxonomy...
per capirci se il parametro $node fosse il l'ID del nodo (NID) credo che non ci sarebbero problemi....ma poichè $node è l'oggetto rappresentativo del nodo....non so come passarglielo....
spero di aver spiegato un po meglio la cosa....
grazie 1000, Francesco.
ok, problema risolto: taxonomy_node_save($node, $terms)
con il parametro $terms contenente un array con 'vid' come indice e 'tid' come valore
ciao.
forse ho capito, per recuperare il nodo dal NId devi usare
Ciao
Marco
--
My blog
Working at @agavee