Domanda

Sto creando un sistema di "riconoscimento" per il mio sito Web per incoraggiare la gestione di una community, in modo molto simile allo stack overflow che utilizza i badge.

Il sito è costruito in CakePHP, ho creato un modello di premio, controller ecc. attualmente i metodi per calcolare se un utente ha un premio sono contenuti nel controller di premio.

Tuttavia, non riesco a decidere il modo migliore per aggiornare i premi: ad esempio, fai un certo numero di commenti e ricevi un premio per questo, CRON non sarebbe sufficiente altrimenti l'utente potrebbe visitare il proprio profilo aspettandosi un premio e non averne uno fino a quando non viene eseguito il CRON.

Stavo pensando di utilizzare requestAction () per chiamare il metodo per aggiornare i premi nel controller del premio, ma questo non si adatta al modello di progettazione MVC e ho pensato che ci dovesse essere un modo migliore!

È stato utile?

Soluzione

Se l'unico modo per ottenere un premio è attraverso la creazione di un commento, ignorerei Model :: save per determinare se è stato aggiunto un nuovo commento. In tal caso, chiamare il modello dei premi per aggiornare il premio.

Se ci sono più azioni che possono assegnare premi, puoi attingere a ciascun modello per eseguire questo controllo o modificare AppModel in modo che ogni salvataggio comporti una chiamata a checkNewAwards () ...

O forse non capisco la domanda?

Altri suggerimenti

crea una funzione nell'helper e inseriscila nel tuo layout in modo che venga eseguita ogni volta che viene eseguito il rendering del layout.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top