Question

Je suis en train de créer un système de "récompense" pour mon site Web afin d'encourager la communauté à falsifier, de la même manière que le débordement de pile utilise des badges.

Le site est construit dans CakePHP, j'ai créé un modèle Award, un contrôleur, etc. - actuellement, les méthodes permettant de déterminer si un utilisateur a une récompense sont contenues dans le contrôleur Award.

Toutefois, je ne peux pas choisir le meilleur moyen de mettre à jour les récompenses. Par exemple, si vous faites un certain nombre de commentaires et recevez une récompense, CRON ne serait pas suffisant, sinon l'utilisateur pourrait consulter son profil dans l'attente. une récompense et ne pas en avoir une avant que le CRON soit exécuté.

Je pensais utiliser requestAction () pour appeler la méthode de mise à jour des attributions dans le contrôleur Award, mais cela ne correspond pas vraiment au modèle de conception de MVC et je pensais qu'il devait y avoir un meilleur moyen!

Était-ce utile?

La solution

Si le seul moyen d’obtenir une récompense est de faire un commentaire, je remplacerais simplement Model :: save pour déterminer s’il s’agissait d’un nouveau commentaire. Si tel est le cas, appelez le modèle de récompense pour mettre à jour la récompense.

S'il existe plusieurs actions pouvant donner des récompenses, vous pouvez exploiter chaque modèle pour effectuer cette vérification ou modifier AppModel afin que chaque enregistrement enregistre un appel à checkNewAwards () ...

Ou peut-être que je ne comprends pas la question?

Autres conseils

créez une fonction dans l'assistant et placez-la dans votre mise en page afin qu'elle s'exécute à chaque rendu de la mise en page.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top